20 unsigned s_rate,
unsigned b_size,
21 unsigned in_chans,
unsigned out_chans)
22 :
IO(s_rate, b_size, 0, 0, in_chans, out_chans),
23 AudioEffectX (audioMaster, 1, 1) {
24 setNumInputs(in_chans);
25 setNumOutputs(out_chans);
26 setUniqueID (
'CSL_BP_Filter');
27 canProcessReplacing ();
35 mFilter->setName(
"CSL B-P Filter");
57 vst_strncpy ((
char *)
mGraph->name()->c_str(), name, kVstMaxProgNameLen);
61 vst_strncpy (name,
"CSL B-P Filter", kVstMaxProgNameLen);
82 vst_strncpy(label,
"Hz", kVstMaxParamStrLen);
86 Hz2string(
mFreq, text, kVstMaxParamStrLen);
90 vst_strncpy(text,
"Freq", kVstMaxParamStrLen);
94 vst_strncpy(name,
"CSL B-P Filter", kVstMaxEffectNameLen);
99 vst_strncpy(text,
"CREATE / UCSB", kVstMaxVendorStrLen);
104 vst_strncpy(text,
"CSL B-P Filter", kVstMaxProductStrLen);
154 return new VSTInst (audioMaster, inst);
157 VSTInst::VSTInst()
IO(), AudioEffectX (audioMaster, 1, 1) { }
159 VSTInst:: VSTInst(audioMasterCallback audioMaster,
Instrument * theInstrument,
160 unsigned s_rate,
unsigned b_size,
161 unsigned in_chans,
unsigned out_chans)
162 :
IO(s_rate, b_size, 0, 0, in_chans, out_chans),
163 AudioEffectX (audioMaster, 1, 1) {
164 setNumInputs (in_chans);
165 setNumOutputs (out_chans);
166 setUniqueID (
'Gain');
167 canProcessReplacing ();
170 VSTInst::~VSTInst() { }
182 void VSTInst::setProgramName (
char* name) {
183 vst_strncpy (mInstrument->mName, name, kVstMaxProgNameLen);
186 void VSTInst::getProgramName (
char* name) {
187 vst_strncpy (name, mInstrument->mName, kVstMaxProgNameLen);
192 void VSTInst::setParameter (VstInt32 index,
float value) {
196 float VSTInst::getParameter (VstInt32 index) {
202 void VSTInst::getParameterLabel (VstInt32 index,
char* label) {
203 vst_strncpy (label,
"dB", kVstMaxParamStrLen);
206 void VSTInst::getParameterDisplay (VstInt32 index,
char* text) {
207 dB2string (fGain, text, kVstMaxParamStrLen);
210 void VSTInst::getParameterName (VstInt32 index,
char* text) {
211 vst_strncpy (label,
"Gain", kVstMaxParamStrLen);
214 bool VSTInst::getEffectName (
char* name) {
215 vst_strncpy (name,
"Gain", kVstMaxEffectNameLen);
219 bool VSTInst::getVendorString (
char* text) {
220 vst_strncpy (text,
"CREATE / UCSB", kVstMaxVendorStrLen);
224 bool VSTInst::getProductString (
char* text) {
225 vst_strncpy (text,
"Gain", kVstMaxProductStrLen);
229 VSTInst::VstInt32 getVendorVersion () {
235 void VSTInst::processReplacing (
float** inputs,
float** outputs, VstInt32 sampleFrames) {
236 float* in1 = inputs[0];
237 float* in2 = inputs[1];
238 float* out1 = outputs[0];
239 float* out2 = outputs[1];
241 while (--sampleFrames >= 0) {
242 (*out1++) = (*in1++) * fGain;
243 (*out2++) = (*in2++) * fGain;
InOut class copies the IO port's input buffer to the output buffer, possibly with channel remap and s...
void logMsg(const char *format,...)
These are the public logging messages.
virtual void getParameterName(VstInt32 index, char *text)
float mFreq
Example: filter center freq.
#define CSL_FILTER_FREQUENCY
virtual void setBuffer(unsigned bufNum, SampleBuffer sPtr)
AdditiveInstrument.h – Sum-of-sines synthesis instrument class.
void pullInput(Buffer &outBuffer, SampleBuffer out=0)
get a buffer from the CSL graph
void open()
open/close start/stop methods
virtual bool getVendorString(char *text)
static unsigned numOutChannels()
default number of output channels
virtual void processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
virtual SampleBuffer buffer(unsigned bufNum)
convenience accessors for sample buffers
bool mInterleaved
flag if IO is interleaved
virtual void setProgramName(char *name)
virtual VstInt32 getVendorVersion()
void setSize(unsigned numChannels, unsigned numFrames)
void close()
open/close start/stop methods
float nextValue()
answer the next value (dynamic or constant)
UnitGenerator * mGraph
the root of my client DSP graph, often a mixer or panner
static unsigned blockSize()
the default block size
VSTIO is an IO that answers the VST processReplacing() call by calling its CSL graph.
IO – the abstract I/O scheduling class; subclasses interface to specific I/O APIs.
static unsigned frameRate()
default frame rate
VSTIO * createEffectInstance(audioMasterCallback audioMaster)
static unsigned numInChannels()
default number of input channels
void stop()
stop the timer thread
Instrument class (abstract)
void start()
start my timer thread
virtual void getParameterLabel(VstInt32 index, char *label)
virtual float getParameter(VstInt32 index)
virtual void getProgramName(char *name)
unsigned mNumOutChannels
outputs
InOut * mInOut
the in-out object
virtual bool getProductString(char *text)
void checkBuffers()
allocate if not already there
virtual void getParameterDisplay(VstInt32 index, char *text)
void setFrequency(UnitGenerator &frequency)
set the receiver's frequency to a UGen or a float
Butterworth IIR (2nd order recursive) filter.
void setRoot(UnitGenerator &root)
set/clear my graph root generator
Buffer mOutputBuffer
the output buffer I use (passed to nextBuffer calls)
virtual void setParameter(VstInt32 index, float value)
Buffer mInputBuffer
the most recent input buffer (if it's turned on)
Port * getPort(CSL_MAP_KEY name)
virtual bool getEffectName(char *name)
Port – used to represent constant, control-rate or signal inputs and outputs in named maps; holds a ...
Filter * mFilter
BPF filter.
Base class of CSL exceptions (written upper-case). Has a string message.