|
|
TITLE:: FluidSTFTPass
|
|
|
SUMMARY:: Real-Time FFT/IFFT return trip.
|
|
|
CATEGORIES:: UGens>Algebraic, Libraries>FluidDecomposition, UGens>Buffer
|
|
|
RELATED:: Guides/FluCoMa, Guides/FluidDecomposition,Classes/UnaryOpFunction
|
|
|
|
|
|
|
|
|
DESCRIPTION::
|
|
|
This class implements a sanity test for the FluCoMa Real-Time Client FFT/IFFT 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 passed-through
|
|
|
|
|
|
ARGUMENT:: windowSize
|
|
|
The size of the buffered window to be analysed, in samples. It will add that much latency to the signal.
|
|
|
|
|
|
ARGUMENT:: hopSize
|
|
|
How much the buffered window moves forward, in samples. The -1 default value will default to half of windowSize (overlap of 2).
|
|
|
|
|
|
ARGUMENT:: fftSize
|
|
|
How large will the FFT be, zero-padding the buffer to the right size, which should be bigger than the windowSize argument, bigger than 4 samples, and should be a power of 2. This is a way to oversample the FFT for extra precision. The -1 default value will default to windowSize.
|
|
|
|
|
|
ARGUMENT:: maxFFTSize
|
|
|
How large can the FFT be, by allocating memory at instantiation time. This cannot be modulated.
|
|
|
|
|
|
|
|
|
RETURNS::
|
|
|
Same as input, delayed by the windowSize.
|
|
|
|
|
|
|
|
|
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:1024/s.sampleRate, mul: -1) + FluidSTFTPass.ar(source, 1024); }.play
|
|
|
::
|
|
|
Larger, oversampled, FFT
|
|
|
CODE::
|
|
|
{ FluidSTFTPass.ar(PinkNoise.ar(0.1), 2048, 128, 8192) }.play
|
|
|
::
|
|
|
Stereo Input Tests.
|
|
|
CODE::
|
|
|
{ FluidSTFTPass.ar([SinOsc.ar(222,mul: 0.1), PinkNoise.ar(Decay.ar(Impulse.ar(0.666,mul: 0.2), 0.5))], fftSize:1024)}.play
|
|
|
::
|
|
|
Stereo Parameter Tests.
|
|
|
CODE::
|
|
|
{ FluidSTFTPass.ar(SinOsc.ar(222,mul: 0.1), [1024,8192],256,8192)}.play
|
|
|
::
|
|
|
Modulating Window Param Tests.
|
|
|
CODE::
|
|
|
{ var source = SinOsc.ar(222,mul: 0.1); [source, FluidSTFTPass.ar(source,LFNoise0.kr(1).range(10,10000))] }.play
|
|
|
::
|
|
|
Very Short FFT test.
|
|
|
CODE::
|
|
|
{ var source = SinOsc.ar(222,mul: 0.1); [source, FluidSTFTPass.ar(source,10)] }.play
|
|
|
::
|