A sanity test for the FluCoMa Real-Time Client Wrapper footnote::This was made possible thanks to the FluCoMa project (http://www.flucoma.org/) funded by the European Research Council (https://erc.europa.eu/) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 725899).::
CLASSMETHODS::
METHOD:: ar
The audio rate version of the object.
ARGUMENT:: in
The input to be processed
ARGUMENT:: frameSize
The size of the real-time i/o buffer. It will add that much latency to the signal.
ARGUMENT:: gain
Audio or control rate change of the gain.
returns:: nothing
INSTANCEMETHODS::
METHOD:: checkInputs
This makes sure the value and phase inputs are both at audio rate.
returns::
A slap on the wrist, should it not be the case.
EXAMPLES::
Summing with the inverse (gain of -1) with a delay of the latency gives us CPU-expensive silence.
code::
{ var source = PinkNoise.ar(0.1); DelayN.ar(source,delaytime:1000/s.sampleRate) + FDGain.ar(source,1000,-1); }.play
summary:: Non-Negative Matrix Factorisation on Spectral Frames
categories:: Libraries>FluidDecomposition
related:: Overviews/FluCoMa
DESCRIPTION::
This Class performs Non-Negative Matrix Factorisation (NMF for short) on buffers on the non-real-time thread. It is a good way to get different components out of a buffered signal. It is part of the Fluid Decomposition Toolkit of the FluCoMa project. footnote::
This was made possible thanks to the FluCoMa project (http://www.flucoma.org/) funded by the European Research Council (https://erc.europa.eu/) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 725899).::
The algo will take a buffer in, and will divide it in a number of ranks. It can provide back either or all of the following: LIST::
## a spectral contour of each rank in the form of a magnitude spectrogramme (called a dictionary in NMF lingo);
## an amplitude envoloppe of each rank in the form of gains for each consecutive frames of the unterlying FFT (called an activation in NMF lingo)
## a reconstruction of each rank in audio domain. ::
The whole process can be related to a vocoder, where each filter is instead a spectrograme of magnitudes (no phase information). More information for musicianly uses of NMF are availabe on this website, and in the LINK::Overviews/FluCoMa:: overview file.
CLASSMETHODS::
METHOD:: nmf
(describe method here)
ARGUMENT:: server
(describe argument here)
ARGUMENT:: srcBuf
(describe argument here)
ARGUMENT:: startAt
(describe argument here)
ARGUMENT:: nFrames
(describe argument here)
ARGUMENT:: startChan
(describe argument here)
ARGUMENT:: nChans
(describe argument here)
ARGUMENT:: dstBuf
(describe argument here)
ARGUMENT:: dictBuf
(describe argument here)
ARGUMENT:: dictFlag
(describe argument here)
ARGUMENT:: actBuf
(describe argument here)
ARGUMENT:: actFlag
(describe argument here)
ARGUMENT:: rank
(describe argument here)
ARGUMENT:: iterations
(describe argument here)
ARGUMENT:: sortFlag
(describe argument here)
ARGUMENT:: windowSize
(describe argument here)
ARGUMENT:: hopSize
(describe argument here)
ARGUMENT:: fftSize
(describe argument here)
returns:: (describe returnvalue here)
INSTANCEMETHODS::
EXAMPLES::
code::
b = Buffer.read(s,"../../AudioFiles/01-mix.wav".resolveRelative);