This is a commandline program that lets you decompose a sound into additive components in the spectral domain.
what it does is:
1) generate the sound’s spectrogram
2) decompose the spectrogram into N layers
3) resynthesize each layer and the residual to a separate soundfile
nmfdemix [-m] [-s] [-o long] [-c double] [-i long] [-f long] [--] [-v] [-h] filename #components
-o , –overlap overlap factor (default 4)
-c , –criteria stopping criteria (default 0.001)
-i , –maxiterations max number of iterations (default 1000)
-f , –fftsize fftsize (default 4096)
-m, –matrixout output W and H matrices
-s, –silent don’t be verbose
this tool takes some time to converge to a good solution and can be very heavy on CPU.
I only have tested it with files containing a few bars and less than 10 components/layers.