Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
FluidBufNNDSVD : FluidBufProcessor{
FluidBufNMFSeed : FluidBufProcessor{

*kr { |source, bases, activations, minComponents = 1, maxComponents = 200, coverage = 0.5, method = 0, windowSize = 1024, hopSize = -1, fftSize = -1, trig = 1, blocking = 0|

source.isNil.if {"FluidBufNNDSVD: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
source.isNil.if {"FluidBufNMFSeed: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
source = source.asUGenInput;
bases = bases.asUGenInput;
activations = activations.asUGenInput;

^FluidProxyUgen.kr1(\FluidBufNNDSVDTrigger, -1, source, bases, activations, minComponents, maxComponents, coverage, method, windowSize, hopSize, fftSize, fftSize, trig, blocking);
^FluidProxyUgen.kr1(\FluidBufNMFSeedTrigger, -1, source, bases, activations, minComponents, maxComponents, coverage, method, windowSize, hopSize, fftSize, fftSize, trig, blocking);
}


*process { |server, source, bases, activations, minComponents = 1, maxComponents = 200, coverage = 0.5, method = 0, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action|

source.isNil.if {"FluidBufNNDSVD: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
source.isNil.if {"FluidBufNMFSeed: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
source = source.asUGenInput;
bases = bases.asUGenInput;
activations = activations.asUGenInput;
Expand All @@ -31,9 +31,9 @@ FluidBufNNDSVD : FluidBufProcessor{

*processBlocking { |server, source, bases, activations, minComponents = 1, maxComponents = 200, coverage = 0.5, method = 0, windowSize = 1024, hopSize = -1, fftSize = -1, freeWhenDone = true, action|

source.isNil.if {"FluidBufNNDSVD: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNNDSVD: Invalid bases buffer".throw};
source.isNil.if {"FluidBufNMFSeed: Invalid source buffer".throw};
bases.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
activations.isNil.if {"FluidBufNMFSeed: Invalid bases buffer".throw};
source = source.asUGenInput;
bases = bases.asUGenInput;
activations = activations.asUGenInput;
Expand All @@ -45,4 +45,4 @@ FluidBufNNDSVD : FluidBufProcessor{
)
}
}
FluidBufNNDSVDTrigger : FluidProxyUgen {}
FluidBufNMFSeedTrigger : FluidProxyUgen {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
TITLE:: FluidBufNNDSVD
TITLE:: FluidBufNMFSeed
summary:: Non-Negative Double Singular Value Decomposition on a Buffer
categories:: Libraries>FluidCorpusManipulation
related:: Classes/FluidBufNMF
Expand Down Expand Up @@ -79,7 +79,7 @@ b = Buffer.read(s,FluidFilesPath("Nicol-LoopE-M.wav"));
//how many bases do I need to decompose the buffer with 90% accuracy
(
Routine{
FluidBufNNDSVD.process(s, b, ~bases, ~activations, coverage: 0.9, method: 1).wait;
FluidBufNMFSeed.process(s, b, ~bases, ~activations, coverage: 0.9, method: 1).wait;
"% bases".format(~bases.numChannels).postln;
}.play;
)
Expand All @@ -89,7 +89,7 @@ Routine{
//try the same process with less accuracy
(
Routine{
FluidBufNNDSVD.process(s, b, ~bases, ~activations, coverage: 0.5).wait;
FluidBufNMFSeed.process(s, b, ~bases, ~activations, coverage: 0.5).wait;
"% bases".format(~bases.numChannels).postln;
}.play
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ table::
##link::Classes/FluidSpectralShape:: || link::Classes/FluidBufSpectralShape:: || Seven Spectral Shape Descriptors
##link::Classes/FluidChroma:: || link::Classes/FluidBufChroma:: || Pitch Classes Descriptor
##link::Classes/FluidNMFMatch:: || || Real-time activation of link::Classes/FluidBufNMF##NMF:: bases
## || link::Classes/FluidBufNNDSVD::|| Quick starting estimates for link::Classes/FluidBufNMF##NMF:: components using Singular Value Decomposition
## || link::Classes/FluidBufNMFSeed::|| Quick starting estimates for link::Classes/FluidBufNMF##NMF:: components using Singular Value Decomposition
## || link::Classes/FluidBufSTFT:: || Perform STFT / ISTFT on link::Classes/Buffer::s
::

Expand Down