Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DIFF_SPEC ensemble mode #1669

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

kFYatek
Copy link

@kFYatek kFYatek commented Dec 17, 2024

This is a simple algorithm usable with the Manual Ensemble that produces a "difference" between two audio files. For example if you have a full track and an official instrumental, you can use this mode to try extracting the vocal-only track by pure math, without going into any ML processing.

@RustoMCSpit
Copy link

RustoMCSpit commented Dec 22, 2024

youd need to make sure only two inputs are selected. also, the files would have to be perfectly in sync

@kFYatek
Copy link
Author

kFYatek commented Dec 30, 2024

@RustoMCSpit

youd need to make sure only two inputs are selected

Well, as implemented, when presented with more than two inputs, it will do... "something". More specifically, it will chain the diff operations, and since this is currently essentially a XOR operation (leaves sounds that are either in one or the other input but not in both), for three inputs it will do "(A XOR B) XOR C". So for example "(full track XOR instrumental) XOR instrumental with backing vocals" will yield "all vocals only XOR instrumental with backing vocals" in the first step and finally instrumental with lead vocals only, without backing vocals. Maybe not terribly useful, but not entirely meaningless.

But now that I think about it, a unidirectional subtraction would make more sense. I'll modify the PR to implement both.

also, the files would have to be perfectly in sync

Indeed, but that's true for all the "manual ensemble" modes.

Also, much like all the other manual ensemble modes, because this works in the frequency domain, they don't need to be "exactly perfectly" in sync, i.e. not down to the last sample. They can be a couple samples off.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants