Home Information Classes Download Usage Mail List Requirements Links Tutorial

# Voicer.h

    00001 /***************************************************/
    00030 /***************************************************/
    00031
    00032 #if !defined(__VOICER_H)
    00033 #define __VOICER_H
    00034
    00035 #include "Stk.h"
    00036 #include "Instrmnt.h"
    00037
    00038 class Voicer : public Stk
    00039 {
    00040 public:
    00042   Voicer( int maxInstruments, MY_FLOAT decayTime=0.2 );
    00043
    00045   ~Voicer();
    00046
    00048
    00052   void addInstrument( Instrmnt *instrument, int channel=0 );
    00053
    00055
    00060   void removeInstrument( Instrmnt *instrument );
    00061
    00063
    00071   long noteOn( MY_FLOAT noteNumber, MY_FLOAT amplitude, int channel=0 );
    00072
    00074
    00077   void noteOff( MY_FLOAT noteNumber, MY_FLOAT amplitude, int channel=0 );
    00078
    00080
    00083   void noteOff( long tag, MY_FLOAT amplitude );
    00084
    00086
    00089   void setFrequency( MY_FLOAT noteNumber, int channel=0 );
    00090
    00092
    00095   void setFrequency( long tag, MY_FLOAT noteNumber );
    00096
    00098   void pitchBend( MY_FLOAT value, int channel=0 );
    00099
    00101   void pitchBend( long tag, MY_FLOAT value );
    00102
    00104   void controlChange( int number, MY_FLOAT value, int channel=0 );
    00105
    00107   void controlChange( long tag, int number, MY_FLOAT value );
    00108
    00110   void silence( void );
    00111
    00113   MY_FLOAT tick();
    00114
    00116   MY_FLOAT *tick(MY_FLOAT *vector, unsigned int vectorSize);
    00117
    00119   MY_FLOAT lastOut() const;
    00120
    00122   MY_FLOAT lastOutLeft() const;
    00123
    00125   MY_FLOAT lastOutRight() const;
    00126
    00127 protected:
    00128
    00129   typedef struct {
    00130     Instrmnt *instrument;
    00131     long tag;
    00132     MY_FLOAT noteNumber;
    00133     MY_FLOAT frequency;
    00134     int sounding;
    00135     int channel;
    00136   } Voice;
    00137
    00138   int  nVoices;
    00139   int maxVoices;
    00140   Voice *voices;
    00141   long tags;
    00142   int muteTime;
    00143   MY_FLOAT lastOutput;
    00144   MY_FLOAT lastOutputLeft;
    00145   MY_FLOAT lastOutputRight;
    00146 };
    00147
    00148 #endif

The Synthesis ToolKit in C++ (STK)
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.