Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_MESH2D_H 00002 #define STK_MESH2D_H 00003 00004 #include "Instrmnt.h" 00005 #include "OnePole.h" 00006 00007 namespace stk { 00008 00009 /***************************************************/ 00033 /***************************************************/ 00034 00035 const short NXMAX = 12; 00036 const short NYMAX = 12; 00037 00038 class Mesh2D : public Instrmnt 00039 { 00040 public: 00042 Mesh2D( short nX, short nY ); 00043 00045 ~Mesh2D( void ); 00046 00048 void clear( void ); 00049 00051 void setNX( short lenX ); 00052 00054 void setNY( short lenY ); 00055 00057 void setInputPosition( StkFloat xFactor, StkFloat yFactor ); 00058 00060 void setDecay( StkFloat decayFactor ); 00061 00063 void noteOn( StkFloat frequency, StkFloat amplitude ); 00064 00066 void noteOff( StkFloat amplitude ); 00067 00069 StkFloat energy( void ); 00070 00072 StkFloat inputTick( StkFloat input ); 00073 00075 void controlChange( int number, StkFloat value ); 00076 00078 StkFloat tick( unsigned int channel = 0 ); 00079 00080 protected: 00081 00082 StkFloat tick0(); 00083 StkFloat tick1(); 00084 void clearMesh(); 00085 00086 short NX_, NY_; 00087 short xInput_, yInput_; 00088 OnePole filterX_[NXMAX]; 00089 OnePole filterY_[NYMAX]; 00090 StkFloat v_[NXMAX-1][NYMAX-1]; // junction velocities 00091 StkFloat vxp_[NXMAX][NYMAX]; // positive-x velocity wave 00092 StkFloat vxm_[NXMAX][NYMAX]; // negative-x velocity wave 00093 StkFloat vyp_[NXMAX][NYMAX]; // positive-y velocity wave 00094 StkFloat vym_[NXMAX][NYMAX]; // negative-y velocity wave 00095 00096 // Alternate buffers 00097 StkFloat vxp1_[NXMAX][NYMAX]; // positive-x velocity wave 00098 StkFloat vxm1_[NXMAX][NYMAX]; // negative-x velocity wave 00099 StkFloat vyp1_[NXMAX][NYMAX]; // positive-y velocity wave 00100 StkFloat vym1_[NXMAX][NYMAX]; // negative-y velocity wave 00101 00102 int counter_; // time in samples 00103 }; 00104 00105 } // stk namespace 00106 00107 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |