CSL
6.0
|
Sample bank player instrument. More...
#include <SndFileInstrument.h>
Public Member Functions | |
SampleBankInstrument () | |
~SampleBankInstrument () | |
void | addSample (SoundFile &sndFile, unsigned midi=0, double freq=0.0, double minRatio=0.75) |
void | play () |
play note More... | |
void | playOSC (int argc, void **argv, const char *types) |
void | playNote (float ampl=1, float rate=1, float pos=0, int start=-1, int stop=-1, float attack=0.0, float decay=0.0) |
void | setParameter (unsigned selector, int argc, void **argv, const char *types) |
Plug functions. More... | |
virtual void | playNote (int argc, void **argv, const char *types) |
Play a note (subclasses refine) More... | |
void | playMIDI (int chan, int key, int vel) |
These are the UGens of the DSP graph (i.e., the sndfile player instrument) More... | |
virtual void | playMIDI (float dur, int chan, int key, int vel) |
UnitGenerator * | graph () |
Accessors. More... | |
UGenMap * | genMap () |
my UGen graph More... | |
UGenVector * | envelopes () |
the map of ugens in the graph by name More... | |
const string | name () |
the vector of envelopes to query or trigger More... | |
UnitGenerator * | genNamed (string name) |
answer my name answer the number of channels More... | |
AccessorVector | getAccessors () |
Accessor management. More... | |
unsigned | numAccessors () |
answer the accessor vector More... | |
virtual void | nextBuffer (Buffer &outputBuffer) throw (CException) |
set a named parameter 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 | isActive () |
Envelope query and re-trigger. More... | |
virtual void | release () |
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 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... | |
virtual void | trigger () |
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) |
Public Attributes | |
SoundFile | mPlayer |
sample player More... | |
AR | mEnvelope |
AR envelope. More... | |
Panner | mPanner |
stereo panner More... | |
StaticVariable | mRate |
plugs playback rate (ignored for now) More... | |
int | mStart |
int | mStop |
start/stop sample indices More... | |
Protected Member Functions | |
void | initialize (string path) |
void | zeroBuffer (Buffer &outputBuffer, unsigned outBufNum) |
utility method to zero out an outputBuffer More... | |
Protected Attributes | |
UnitGenerator * | mGraph |
Caches. More... | |
string | mName |
my name More... | |
UGenMap | mUGens |
the map of ugens in the graph by name More... | |
UGenVector | mEnvelopes |
the vector of envelopes to query or trigger More... | |
AccessorVector | mAccessors |
the accessor vector 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... | |
Sample bank player instrument.
Definition at line 82 of file SndFileInstrument.h.
csl::SampleBankInstrument::SampleBankInstrument | ( | ) |
csl::SampleBankInstrument::~SampleBankInstrument | ( | ) |
void csl::SampleBankInstrument::addSample | ( | SoundFile & | sndFile, |
unsigned | midi = 0 , |
||
double | freq = 0.0 , |
||
double | minRatio = 0.75 |
||
) |
|
virtual |
play note
Reimplemented from csl::SndFileInstrument.
|
virtual |
Reimplemented from csl::SndFileInstrument.
void csl::SampleBankInstrument::playNote | ( | float | ampl = 1 , |
float | rate = 1 , |
||
float | pos = 0 , |
||
int | start = -1 , |
||
int | stop = -1 , |
||
float | attack = 0.0 , |
||
float | decay = 0.0 |
||
) |
|
virtualinherited |
Plug functions.
Reimplemented from csl::Instrument.
Definition at line 66 of file SndFileInstrument.cpp.
References csl::kLogError, csl::logMsg(), csl::SndFileInstrument::mEnvelope, csl::SndFileInstrument::mPanner, csl::SndFileInstrument::mPlayer, csl::SndFileInstrument::mRate, set_amplitude_f, set_attack_f, set_decay_f, set_file_f, set_position_f, set_rate_f, set_start_f, set_stop_f, csl::AR::setAttack(), csl::AR::setDuration(), csl::Panner::setPosition(), csl::AR::setRelease(), csl::Scalable::setScale(), and csl::StaticVariable::setValue().
|
inlinevirtualinherited |
Play a note (subclasses refine)
Definition at line 82 of file Instrument.h.
|
inherited |
These are the UGens of the DSP graph (i.e., the sndfile player instrument)
|
inlinevirtualinherited |
Reimplemented in csl::VAdditiveInstrument, csl::FancyFMInstrument, csl::FMInstrument, and csl::AdditiveInstrument.
Definition at line 83 of file Instrument.h.
Referenced by csl::MIDIPlayer::start().
|
protectedinherited |
Definition at line 31 of file SndFileInstrument.cpp.
References CSL_FLOAT_TYPE, CSL_INT_TYPE, CSL_STRING_TYPE, csl::kLogError, csl::logMsg(), csl::Instrument::mAccessors, csl::SndFileInstrument::mEnvelope, csl::Instrument::mGraph, csl::CException::mMessage, csl::Instrument::mName, csl::UnitGenerator::mNumChannels, csl::SndFileInstrument::mPanner, csl::SndFileInstrument::mPlayer, csl::SndFileInstrument::mRate, csl::Instrument::mUGens, set_amplitude_f, set_attack_f, set_decay_f, set_file_f, set_position_f, set_rate_f, set_start_f, set_stop_f, and csl::Scalable::setScale().
Referenced by csl::SndFileInstrument::SndFileInstrument().
|
inlineinherited |
|
inlineinherited |
my UGen graph
Definition at line 64 of file Instrument.h.
References csl::Instrument::mUGens.
Referenced by csl::Instrument::Instrument().
|
inlineinherited |
the map of ugens in the graph by name
Definition at line 65 of file Instrument.h.
References csl::Instrument::mEnvelopes.
Referenced by csl::Instrument::Instrument().
|
inlineinherited |
the vector of envelopes to query or trigger
Definition at line 67 of file Instrument.h.
References csl::Instrument::mName.
Referenced by setupOSCInstrLibrary().
|
inherited |
answer my name answer the number of channels
get a UGen from the graph
Definition at line 47 of file Instrument.cpp.
References csl::Instrument::mUGens.
|
inlineinherited |
Accessor management.
Definition at line 72 of file Instrument.h.
References csl::Instrument::mAccessors.
Referenced by csl::Instrument::Instrument(), and setupOSCInstrLibrary().
|
inlineinherited |
answer the accessor vector
Definition at line 73 of file Instrument.h.
References csl::Instrument::mAccessors.
Referenced by setupOSCInstrLibrary().
|
virtualinherited |
set a named parameter
get a UGen from the graph
Sample creation
Reimplemented from csl::UnitGenerator.
Definition at line 41 of file Instrument.cpp.
|
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.
|
virtualinherited |
Envelope query and re-trigger.
Reimplemented from csl::UnitGenerator.
Definition at line 57 of file Instrument.cpp.
References FALSE, csl::UnitGenerator::isActive(), csl::Instrument::mEnvelopes, csl::Instrument::mGraph, and TRUE.
Referenced by csl::MIDIPlayer::start().
|
virtualinherited |
Definition at line 76 of file Instrument.cpp.
References csl::Instrument::mEnvelopes, and csl::UnitGenerator::trigger().
|
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().
|
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().
|
inlinevirtualinherited |
Reimplemented in csl::Joiner, csl::Effect, csl::RandEnvelope, csl::SoundCue, csl::Abst_SoundFile, csl::Envelope, csl::LineSegment, and csl::KarplusString.
Definition at line 288 of file CSL_Core.h.
Referenced by csl::Instrument::play(), csl::Instrument::release(), and csl::Port::trigger().
|
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 |
sample player
Definition at line 55 of file SndFileInstrument.h.
Referenced by csl::SndFileInstrument::initialize(), csl::SndFileInstrument::play(), csl::SndFileInstrument::playNote(), csl::SndFileInstrument::playOSC(), and csl::SndFileInstrument::setParameter().
|
inherited |
AR envelope.
Definition at line 56 of file SndFileInstrument.h.
Referenced by csl::SndFileInstrument::initialize(), csl::SndFileInstrument::play(), csl::SndFileInstrument::playNote(), csl::SndFileInstrument::playOSC(), and csl::SndFileInstrument::setParameter().
|
inherited |
stereo panner
Definition at line 57 of file SndFileInstrument.h.
Referenced by csl::SndFileInstrument::initialize(), csl::SndFileInstrument::playNote(), csl::SndFileInstrument::playOSC(), and csl::SndFileInstrument::setParameter().
|
inherited |
plugs playback rate (ignored for now)
Definition at line 58 of file SndFileInstrument.h.
Referenced by csl::SndFileInstrument::initialize(), csl::SndFileInstrument::playNote(), csl::SndFileInstrument::playOSC(), and csl::SndFileInstrument::setParameter().
|
inherited |
Definition at line 59 of file SndFileInstrument.h.
|
inherited |
start/stop sample indices
Definition at line 59 of file SndFileInstrument.h.
|
protectedinherited |
Caches.
my UGen graph
Definition at line 87 of file Instrument.h.
Referenced by csl::FMInstrument::FMInstrument(), csl::Instrument::graph(), csl::AdditiveInstrument::init(), csl::SndFileInstrument::initialize(), and csl::Instrument::isActive().
|
protectedinherited |
my name
Definition at line 88 of file Instrument.h.
Referenced by csl::FancyFMInstrument::FancyFMInstrument(), csl::FMInstrument::FMInstrument(), csl::AdditiveInstrument::init(), csl::SndFileInstrument::initialize(), and csl::Instrument::name().
|
protectedinherited |
the map of ugens in the graph by name
Definition at line 89 of file Instrument.h.
Referenced by csl::FancyFMInstrument::FancyFMInstrument(), csl::FMInstrument::FMInstrument(), csl::Instrument::genMap(), csl::Instrument::genNamed(), csl::AdditiveInstrument::init(), csl::SndFileInstrument::initialize(), and csl::Instrument::Instrument().
|
protectedinherited |
the vector of envelopes to query or trigger
Definition at line 90 of file Instrument.h.
Referenced by csl::Instrument::envelopes(), csl::FancyFMInstrument::FancyFMInstrument(), csl::FMInstrument::FMInstrument(), csl::AdditiveInstrument::init(), csl::Instrument::Instrument(), csl::Instrument::isActive(), csl::Instrument::play(), and csl::Instrument::release().
|
protectedinherited |
the accessor vector
Definition at line 91 of file Instrument.h.
Referenced by csl::FMInstrument::FMInstrument(), csl::Instrument::getAccessors(), csl::AdditiveInstrument::init(), csl::SndFileInstrument::initialize(), csl::Instrument::Instrument(), and csl::Instrument::numAccessors().
|
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.