|
CSL
6.0
|
Forward FFT unit generator is an Effect because it handles an input It puts spectral frames in the output buffer and then broadcasts a change message, so clients are expected to observe it. More...
#include <Spectral.h>
Inheritance diagram for csl::FFT:Public Member Functions | |
| FFT (UnitGenerator &in, int size=CGestalt::blockSize(), CSL_FFTType type=CSL_FFT_COMPLEX) | |
| Default size to the buffer size and flags to measure. More... | |
| ~FFT () | |
| void | nextBuffer (Buffer &outputBuffer) throw (CException) |
| we override the general-case version because this needs a mono input More... | |
| int | fftSize () |
| virtual bool | isActive () |
| am I active? More... | |
| void | setInput (UnitGenerator &inp) |
| set the receiver's input generator More... | |
| void | setInline () |
| set the Effect to be inline More... | |
| unsigned | frameRate () |
| void | setFrameRate (unsigned rate) |
| get/set the receiver's frame rate More... | |
| virtual unsigned | numChannels () |
| void | setNumChannels (unsigned ch) |
| get/set the receiver's number of outputs More... | |
| BufferCopyPolicy | copyPolicy () |
| void | setCopyPolicy (BufferCopyPolicy ch) |
| get/set the receiver's buffer copy policy More... | |
| virtual void | nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (CException) |
| really compute the next buffer given an offset base channel; this is called by nextBuffer, possibly multiple times More... | |
| virtual bool | isFixed () |
| query whether I'm fixed (StaticVariable overrides this) More... | |
| void | addOutput (UnitGenerator *ugen) |
| add to or return the UGen vector of outputs More... | |
| void | removeOutput (UnitGenerator *ugen) |
| UGenVector | outputs () |
| virtual unsigned | numOutputs () |
| bool | checkFanOut (Buffer &outputBuffer) throw (CException) |
| check for fan-out and copy previous buffer; return true if fanning out More... | |
| void | handleFanOut (Buffer &outputBuffer) throw (CException) |
| virtual void | setValue (sample theValue) |
| set/get the value (not allowed in the abstract, useful for static values) More... | |
| virtual sample | value () |
| virtual void | dump () |
| pretty-print the receiver More... | |
| void | attachObserver (Observer *) |
| (possibly notify obersvers on my death) More... | |
| void | detachObserver (Observer *) |
| void | changed (void *argument) |
| this is what I send to myself to notify my observers; It's not overridden in general. It results in the observers receiving update() calls < override evaluate to filter updates to the observer map More... | |
| virtual int | evaluate (void *argument) |
| Port * | getPort (CSL_MAP_KEY name) |
Public Attributes | |
| bool | mOverwriteOutput |
| no setter – create a new FFT to change size More... | |
| bool | isInline |
| whether to use input or buffer as source More... | |
Protected Member Functions | |
| void | pullInput (Buffer &outputBuffer) throw (CException) |
| void | pullInput (unsigned numFrames) throw (CException) |
| trigger passed on here More... | |
| void | pullInput (Port *thePort, unsigned numFrames) throw (CException) |
| method to read the control values (in case they're dynamic). this sends nextBuffer() to the input. More... | |
| void | pullInput (Port *thePort, Buffer &theBuffer) throw (CException) |
| virtual void | trigger () |
| trigger passed on here get the input port More... | |
| Port * | inPort () |
| virtual void | dump () |
| pretty-print the receiver's input/controls map More... | |
| void | zeroBuffer (Buffer &outputBuffer, unsigned outBufNum) |
| utility method to zero out an outputBuffer More... | |
| void | addInput (CSL_MAP_KEY name, UnitGenerator &ugen) |
| Plug in a unit generator to the named input slot. More... | |
| void | addInput (CSL_MAP_KEY name, float value) |
| Plug in a float to the named input slot. More... | |
Protected Attributes | |
| int | mFFTSize |
| This should be unsigned, but is signed for compatability with FFTW. More... | |
| FFT_Wrapper | mWrapper |
| actual FFT wrapper object More... | |
| Buffer | mInBuf |
| input buffer More... | |
| SampleBuffer | mWindowBuffer |
| Buffer to store window. More... | |
| SampleBuffer | mInputPtr |
| A pointer to my input's data. method to read the input value. More... | |
| unsigned | mFrameRate |
| trigger ignored here More... | |
| unsigned | mNumChannels |
| my "expected" number of output channels More... | |
| BufferCopyPolicy | mCopyPolicy |
| the policy I use if asked for more or fewer channels More... | |
| UGenVector | mOutputs |
| the vector of my output UGens More... | |
| unsigned | mNumOutputs |
| the number of outputs More... | |
| Buffer * | mOutputCache |
| my past output ring buffer (only used in case of fan-out) More... | |
| unsigned | mSequence |
| the highest-seen buffer seq number More... | |
| PortMap | mInputs |
| the map of my inputs or controls (used by the mix-in classes) More... | |
Forward FFT unit generator is an Effect because it handles an input It puts spectral frames in the output buffer and then broadcasts a change message, so clients are expected to observe it.
Definition at line 23 of file Spectral.h.
| FFT::FFT | ( | UnitGenerator & | in, |
| int | size = CGestalt::blockSize(), |
||
| CSL_FFTType | type = CSL_FFT_COMPLEX |
||
| ) |
Default size to the buffer size and flags to measure.
Forward FFT = analysis.
< Buffer to store samples
Definition at line 19 of file Spectral.cpp.
References csl::Buffer::allocateBuffers(), mFFTSize, mInBuf, mOverwriteOutput, mWindowBuffer, and csl::Window::window().
| FFT::~FFT | ( | ) |
Definition at line 30 of file Spectral.cpp.
References mWindowBuffer.
|
virtual | ||||||||||||||
we override the general-case version because this needs a mono input
Reimplemented from csl::UnitGenerator.
Definition at line 36 of file Spectral.cpp.
References csl::kSpectra.
|
inline |
Definition at line 32 of file Spectral.h.
References mFFTSize.
|
virtualinherited |
am I active?
Reimplemented from csl::UnitGenerator.
Reimplemented in csl::Joiner, and csl::Stereoverb.
Definition at line 1105 of file CSL_Core.cpp.
References CSL_INPUT, csl::Port::isActive(), and csl::Controllable::mInputs.
Referenced by csl::Stereoverb::isActive().
|
inherited |
set the receiver's input generator
Definition at line 1112 of file CSL_Core.cpp.
References csl::Controllable::addInput(), CSL_INPUT, csl::Effect::isInline, and csl::logMsg().
|
inlineinherited |
set the Effect to be inline
Definition at line 476 of file CSL_Core.h.
|
protectedinherited | ||||||||||||||
Definition at line 1122 of file CSL_Core.cpp.
References CSL_INPUT, csl::logMsg(), and csl::Controllable::pullInput().
Referenced by csl::Convolver2::nextBuffer(), csl::Convolver::nextBuffer(), csl::InOut::nextBuffer(), csl::RingBuffer::nextBuffer(), csl::Panner::nextBuffer(), csl::FIR::nextBuffer(), csl::DynamicVariable::nextBuffer(), csl::Filter::nextBuffer(), csl::NtoMPanner::nextBuffer(), csl::StereoWidth::nextBuffer(), csl::Biquad::nextBuffer(), and SAFliter::nextBuffer().
|
protectedinherited | ||||||||||||||
trigger passed on here
Definition at line 1137 of file CSL_Core.cpp.
References csl::Buffer::buffer(), CSL_INPUT, csl::logMsg(), csl::Port::mBuffer, and csl::Controllable::pullInput().
|
protectedinherited | ||||||||||||||||||||
method to read the control values (in case they're dynamic). this sends nextBuffer() to the input.
Definition at line 847 of file CSL_Core.cpp.
References csl::kSamples, csl::logMsg(), csl::Buffer::mIsPopulated, csl::Buffer::mNumFrames, csl::Buffer::mType, csl::UnitGenerator::nextBuffer(), and csl::Buffer::zeroBuffers().
Referenced by csl::Panner::nextBuffer(), csl::NtoMPanner::nextBuffer(), and csl::Effect::pullInput().
|
protectedinherited | ||||||||||||||||||||
Definition at line 879 of file CSL_Core.cpp.
References csl::UnitGenerator::nextBuffer().
|
protectedvirtualinherited |
trigger passed on here get the input port
Reimplemented from csl::UnitGenerator.
Reimplemented in csl::Joiner.
Definition at line 1148 of file CSL_Core.cpp.
References CSL_INPUT, and csl::Controllable::mInputs.
|
inlineprotectedinherited |
Definition at line 485 of file CSL_Core.h.
References CSL_INPUT.
Referenced by csl::BinaryOp::dump(), and csl::BinaryOp::inputIsFixed().
|
inlineinherited |
Definition at line 249 of file CSL_Core.h.
References csl::UnitGenerator::mFrameRate.
Referenced by csl::CASoundFile::dump(), csl::Abst_SoundFile::dump(), and csl::SoundCue::dump().
|
inlineinherited |
get/set the receiver's frame rate
Definition at line 250 of file CSL_Core.h.
References csl::UnitGenerator::mFrameRate.
|
inlinevirtualinherited |
Reimplemented in csl::Splitter, and csl::Stereoverb.
Definition at line 252 of file CSL_Core.h.
References csl::UnitGenerator::mNumChannels.
Referenced by csl::AmbisonicMixer::addInput(), csl::BlockResizer::BlockResizer(), csl::Port::checkBuffer(), csl::Effect::Effect(), csl::AmbisonicRotator::initialize(), csl::AmbisonicDecoder::initialize(), csl::Mixer::nextBuffer(), csl::Convolver2::setIRFile(), csl::Convolver::setIRFile(), and csl::SpatialSource::SpatialSource().
|
inlineinherited |
get/set the receiver's number of outputs
Definition at line 253 of file CSL_Core.h.
References csl::UnitGenerator::mNumChannels.
Referenced by csl::BinauralPanner::BinauralPanner(), csl::Spatializer::Spatializer(), csl::VBAP::speakerLayoutChanged(), and csl::VBAP::VBAP().
|
inlineinherited |
Definition at line 255 of file CSL_Core.h.
References csl::UnitGenerator::mCopyPolicy.
|
inlineinherited |
get/set the receiver's buffer copy policy
Definition at line 256 of file CSL_Core.h.
References csl::UnitGenerator::mCopyPolicy.
Referenced by csl::AmbisonicPanner::AmbisonicPanner(), csl::BinauralPanner::BinauralPanner(), csl::AmbisonicUnitGenerator::initOrder(), csl::Noise::Noise(), csl::PinkNoise::PinkNoise(), csl::Spatializer::Spatializer(), and csl::VBAP::VBAP().
|
virtualinherited | ||||||||||||||||||||
really compute the next buffer given an offset base channel; this is called by nextBuffer, possibly multiple times
Reimplemented in csl::Joiner, csl::Splitter, csl::FanOut, SAFliter, csl::RandEnvelope, csl::Moog, csl::AmbisonicDecoder, csl::Biquad, csl::Impulse, csl::Square, csl::AmbisonicEncoder, csl::Sawtooth, csl::FSine, csl::MulOp, csl::Envelope, csl::Filter, csl::Sine, csl::DynamicVariable, csl::AmbisonicRotator, csl::BufferStream, csl::CompOrCacheOscillator, csl::AddOp, csl::FIR, csl::WavetableOscillator, csl::PinkNoise, csl::VBAP, csl::SineAsScaled, csl::SpatialSource, csl::LineSegment, csl::StaticVariable, csl::AmbisonicMixer, csl::WhiteNoise, csl::SineAsPhased, csl::SpatialPanner, csl::Window, csl::RingBufferTap, csl::BinaryOp, csl::Freeverb, csl::KarplusString, csl::Clipper, csl::Lorenz, csl::SimpleSine, csl::DistanceSimulator, and csl::WaveShaper.
Definition at line 755 of file CSL_Core.cpp.
|
inlinevirtualinherited |
query whether I'm fixed (StaticVariable overrides this)
Reimplemented in csl::StaticVariable, and csl::BinaryOp.
Definition at line 271 of file CSL_Core.h.
|
inherited |
add to or return the UGen vector of outputs
Definition at line 670 of file CSL_Core.cpp.
References csl::Buffer::allocateBuffers(), csl::CGestalt::blockSize(), csl::UnitGenerator::mNumOutputs, csl::UnitGenerator::mOutputCache, and csl::UnitGenerator::mOutputs.
Referenced by csl::Mixer::addInput(), csl::Controllable::addInput(), csl::AmbisonicRotator::initialize(), csl::AmbisonicDecoder::initialize(), csl::AmbisonicEncoder::setInput(), and csl::IO::setRoot().
|
inherited |
Definition at line 680 of file CSL_Core.cpp.
References csl::UnitGenerator::mNumOutputs, and csl::UnitGenerator::mOutputs.
Referenced by csl::IO::clearRoot(), csl::AmbisonicEncoder::setInput(), csl::AmbisonicDecoder::~AmbisonicDecoder(), and csl::AmbisonicRotator::~AmbisonicRotator().
|
inlineinherited |
Definition at line 277 of file CSL_Core.h.
References csl::UnitGenerator::mOutputs.
|
inlinevirtualinherited |
Definition at line 278 of file CSL_Core.h.
References csl::UnitGenerator::mNumOutputs.
|
inherited | ||||||||||||||
check for fan-out and copy previous buffer; return true if fanning out
Definition at line 699 of file CSL_Core.cpp.
|
inherited | ||||||||||||||
Definition at line 713 of file CSL_Core.cpp.
References csl_max.
|
inlinevirtualinherited |
set/get the value (not allowed in the abstract, useful for static values)
Reimplemented in csl::DynamicVariable, and csl::StaticVariable.
Definition at line 284 of file CSL_Core.h.
|
inlinevirtualinherited |
Reimplemented in csl::StaticVariable.
Definition at line 285 of file CSL_Core.h.
|
virtualinherited |
pretty-print the receiver
Reimplemented in csl::RandEnvelope, csl::SumOfSines, csl::SoundCue, csl::Abst_SoundFile, csl::Filter, csl::Envelope, csl::BufferStream, csl::VBAP, csl::SineAsScaled, csl::LineSegment, csl::SpatialSource, csl::SineAsPhased, csl::Mixer, csl::Window, csl::KarplusString, csl::Oscillator, csl::AmbisonicPanner, csl::BinaryOp, csl::Lorenz, csl::Clipper, csl::Noise, and csl::CASoundFile.
Definition at line 693 of file CSL_Core.cpp.
References csl::logMsg(), and csl::UnitGenerator::mOutputs.
Referenced by csl::Noise::dump(), csl::Clipper::dump(), csl::Filter::dump(), csl::Port::dump(), dumpTest(), and testSimpleSines().
|
protectedvirtualinherited |
pretty-print the receiver's input/controls map
Reimplemented in csl::RandEnvelope, csl::SumOfSines, csl::Abst_SoundFile, csl::Filter, csl::Envelope, csl::SineAsScaled, csl::SpatialSource, csl::SineAsPhased, csl::Mixer, csl::KarplusString, csl::Oscillator, csl::BinaryOp, csl::Clipper, csl::Noise, and csl::CASoundFile.
Definition at line 926 of file CSL_Core.cpp.
References CSL_FREQUENCY, CSL_INPUT, CSL_OFFSET, CSL_SCALE, csl::logMsg(), and csl::Controllable::mInputs.
Referenced by csl::Noise::dump(), csl::KarplusString::dump(), csl::Oscillator::dump(), csl::SineAsPhased::dump(), csl::SineAsScaled::dump(), csl::Envelope::dump(), csl::Filter::dump(), and csl::SumOfSines::dump().
|
protectedinherited |
utility method to zero out an outputBuffer
Definition at line 663 of file CSL_Core.cpp.
References csl::Buffer::buffer(), and csl::Buffer::mMonoBufferByteSize.
|
inherited |
(possibly notify obersvers on my death)
register/remove observers
Definition at line 502 of file CGestalt.cpp.
References csl::logMsg(), csl::Observer::mKey, and csl::Observer::mPeriod.
Referenced by CSLMIDIComponent::CSLMIDIComponent(), and csl::SpatialPanner::setSpeakerLayout().
|
inherited |
Definition at line 518 of file CGestalt.cpp.
References csl::logMsg().
Referenced by csl::SpatialPanner::setSpeakerLayout(), and csl::SpatialPanner::~SpatialPanner().
|
inherited |
this is what I send to myself to notify my observers; It's not overridden in general. It results in the observers receiving update() calls < override evaluate to filter updates to the observer map
Definition at line 540 of file CGestalt.cpp.
References csl::logMsg().
Referenced by csl::SpeakerLayout::addSpeaker(), csl::MIDIIn::handleIncomingMidiMessage(), and csl::SpeakerLayout::setDefaultSpeakerLayout().
|
inlinevirtualinherited |
Reimplemented in csl::MIDIIn.
Definition at line 270 of file CGestalt.h.
|
inherited |
Definition at line 920 of file CSL_Core.cpp.
References csl::Controllable::mInputs.
Referenced by csl::FrequencyAmount::getFrequency(), and csl::VSTIO::getParameter().
|
protectedinherited |
Plug in a unit generator to the named input slot.
Definition at line 894 of file CSL_Core.cpp.
References csl::UnitGenerator::addOutput(), csl::logMsg(), and csl::Controllable::mInputs.
Referenced by csl::Joiner::addInput(), csl::BinaryOp::BinaryOp(), csl::DistanceSimulator::DistanceSimulator(), csl::Effect::Effect(), csl::InOut::InOut(), csl::Joiner::Joiner(), csl::NtoMPanner::NtoMPanner(), csl::Panner::Panner(), csl::Phased::Phased(), csl::Scalable::Scalable(), csl::FrequencyAmount::setAmount(), csl::FrequencyAmount::setFrequency(), csl::Phased::setFrequency(), csl::Effect::setInput(), csl::Scalable::setOffset(), csl::Panner::setPosition(), csl::Abst_SoundFile::setRate(), csl::Scalable::setScale(), csl::NtoMPanner::setX(), csl::NtoMPanner::setY(), and csl::SpatialSource::SpatialSource().
|
protectedinherited |
Plug in a float to the named input slot.
Definition at line 906 of file CSL_Core.cpp.
References csl::logMsg(), csl::Controllable::mInputs, and csl::Port::mValue.
| bool csl::FFT::mOverwriteOutput |
no setter – create a new FFT to change size
whether to replace the output with the input (or the spectrum) after signalling observers
Definition at line 34 of file Spectral.h.
Referenced by FFT().
|
protected |
This should be unsigned, but is signed for compatability with FFTW.
Definition at line 37 of file Spectral.h.
|
protected |
actual FFT wrapper object
Definition at line 38 of file Spectral.h.
|
protected |
|
protected |
|
inherited |
whether to use input or buffer as source
Definition at line 475 of file CSL_Core.h.
Referenced by csl::Effect::Effect(), and csl::Effect::setInput().
|
protectedinherited |
A pointer to my input's data. method to read the input value.
Definition at line 479 of file CSL_Core.h.
|
protectedinherited |
trigger ignored here
the frame rate – initialized to be the default by the constructor
Definition at line 288 of file CSL_Core.h.
Referenced by csl::Abst_SoundFile::convertRate(), csl::Lorenz::dump(), csl::Abst_SoundFile::durationInSecs(), csl::UnitGenerator::frameRate(), csl::Filter::init(), csl::CASoundFile::initFromSndfile(), csl::JSoundFile::initFromSndfile(), csl::LSoundFile::initFromSndfile(), csl::RandEnvelope::nextSegment(), csl::SquareBL::nextWaveInto(), csl::SumOfSines::nextWaveInto(), csl::DelayLine::setDelayTime(), csl::UnitGenerator::setFrameRate(), csl::Abst_SoundFile::setStartSec(), csl::Abst_SoundFile::setStopSec(), csl::Butter::setupCoeffs(), csl::Formant::setupCoeffs(), csl::Notch::setupCoeffs(), and csl::Moog::setupCoeffs().
|
protectedinherited |
my "expected" number of output channels
Definition at line 292 of file CSL_Core.h.
Referenced by csl::AmbisonicMixer::addInput(), csl::Mixer::allocateOpBuffer(), csl::AmbisonicDecoder::asProjection(), csl::AmbisonicDecoder::asPseudoInverse(), csl::BlockResizer::BlockResizer(), csl::Abst_SoundFile::channels(), csl::Abst_SoundFile::checkBuffer(), csl::FMInstrument::FMInstrument(), csl::GrainPlayer::GrainPlayer(), csl::AdditiveInstrument::init(), csl::JSoundFile::initFromSndfile(), csl::LSoundFile::initFromSndfile(), csl::AmbisonicMixer::initialize(), csl::SndFileInstrument::initialize(), csl::AmbisonicRotator::initialize(), csl::AmbisonicEncoder::initialize(), csl::AmbisonicDecoder::initialize(), csl::AmbisonicUnitGenerator::initOrder(), csl::RemoteStream::initPacket(), csl::Joiner::isActive(), csl::Joiner::Joiner(), csl::AmbisonicDecoder::makeInPhase(), csl::AmbisonicDecoder::makeMaxRE(), csl::Abst_SoundFile::mergeToMono(), csl::Mixer::Mixer(), csl::UnitGenerator::numChannels(), csl::Panner::Panner(), csl::CASoundFile::readBufferFromFile(), csl::JSoundFile::readBufferFromFile(), csl::LSoundFile::readBufferFromFile(), csl::RemoteStream::RemoteStream(), csl::UnitGenerator::setNumChannels(), csl::WavetableOscillator::setWaveform(), csl::Joiner::trigger(), and csl::AmbisonicRotator::~AmbisonicRotator().
|
protectedinherited |
the policy I use if asked for more or fewer channels
Definition at line 293 of file CSL_Core.h.
Referenced by csl::UnitGenerator::copyPolicy(), and csl::UnitGenerator::setCopyPolicy().
|
protectedinherited |
the vector of my output UGens
Definition at line 294 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput(), csl::UnitGenerator::dump(), csl::UnitGenerator::outputs(), and csl::UnitGenerator::removeOutput().
|
protectedinherited |
the number of outputs
Definition at line 295 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput(), csl::UnitGenerator::numOutputs(), and csl::UnitGenerator::removeOutput().
|
protectedinherited |
my past output ring buffer (only used in case of fan-out)
Definition at line 296 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput().
|
protectedinherited |
the highest-seen buffer seq number
Definition at line 297 of file CSL_Core.h.
|
protectedinherited |
the map of my inputs or controls (used by the mix-in classes)
Definition at line 378 of file CSL_Core.h.
Referenced by csl::Controllable::addInput(), csl::BinaryOp::dump(), csl::Controllable::dump(), csl::Controllable::getPort(), csl::Biquad::incrBoost(), csl::Biquad::incrFrq(), csl::Effect::isActive(), csl::Joiner::isActive(), csl::SquareBL::nextWaveInto(), csl::BinaryOp::operandIsFixed(), csl::Phased::Phased(), csl::DistanceSimulator::positionChanged(), csl::Scalable::Scalable(), csl::Biquad::setBoost(), csl::Biquad::setFrq(), csl::BinaryOp::setOperand(), csl::Abst_SoundFile::setRate(), csl::Butter::setupCoeffs(), csl::Formant::setupCoeffs(), csl::Notch::setupCoeffs(), csl::Allpass::setupCoeffs(), csl::Moog::setupCoeffs(), csl::Scalable::trigger(), csl::Effect::trigger(), csl::Joiner::trigger(), and csl::Controllable::~Controllable().