TITLE:: FDNMF 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); thisProcess.nowExecutingPath b.play ::