35 const unsigned short NXMAX = 12;
36 const unsigned short NYMAX = 12;
42 Mesh2D(
unsigned short nX,
unsigned short nY );
51 void setNX(
unsigned short lenX );
54 void setNY(
unsigned short lenY );
60 void setDecay( StkFloat decayFactor );
63 void noteOn( StkFloat frequency, StkFloat amplitude );
66 void noteOff( StkFloat amplitude );
78 StkFloat
tick(
unsigned int channel = 0 );
96 unsigned short NX_, NY_;
97 unsigned short xInput_, yInput_;
100 StkFloat v_[NXMAX-1][NYMAX-1];
101 StkFloat vxp_[NXMAX][NYMAX];
102 StkFloat vxm_[NXMAX][NYMAX];
103 StkFloat vyp_[NXMAX][NYMAX];
104 StkFloat vym_[NXMAX][NYMAX];
107 StkFloat vxp1_[NXMAX][NYMAX];
108 StkFloat vxm1_[NXMAX][NYMAX];
109 StkFloat vyp1_[NXMAX][NYMAX];
110 StkFloat vym1_[NXMAX][NYMAX];
117 unsigned int nChannels = lastFrame_.
channels();
118 #if defined(_STK_DEBUG_) 119 if ( channel > frames.
channels() - nChannels ) {
120 oStream_ <<
"Mesh2D::tick(): channel and StkFrames arguments are incompatible!";
125 StkFloat *samples = &frames[channel];
126 unsigned int j, hop = frames.
channels() - nChannels;
127 if ( nChannels == 1 ) {
128 for (
unsigned int i=0; i<frames.
frames(); i++, samples += hop )
132 for (
unsigned int i=0; i<frames.
frames(); i++, samples += hop ) {
134 for ( j=1; j<nChannels; j++ )
135 *samples++ = lastFrame_[j];
static void handleError(const char *message, StkError::Type type)
Static function for error reporting and handling using c-strings.
void setInputPosition(StkFloat xFactor, StkFloat yFactor)
Set the x, y input position on a 0.0 - 1.0 scale.
unsigned int frames(void) const
Return the number of sample frames represented by the data.
Definition: Stk.h:407
~Mesh2D(void)
Class destructor.
StkFloat tick(unsigned int channel=0)
Compute and return one output sample.
The STK namespace.
Definition: ADSR.h:6
STK one-pole filter class.
Definition: OnePole.h:20
Mesh2D(unsigned short nX, unsigned short nY)
Class constructor, taking the x and y dimensions in samples.
void setNX(unsigned short lenX)
Set the x dimension size in samples.
void setNY(unsigned short lenY)
Set the y dimension size in samples.
void clear(void)
Reset and clear all internal state.
StkFloat energy(void)
Calculate and return the signal energy stored in the mesh.
unsigned int channels(void) const
Return the number of channels represented by the data.
Definition: Stk.h:404
void setDecay(StkFloat decayFactor)
Set the loss filters gains (0.0 - 1.0).
An STK class to handle vectorized audio data.
Definition: Stk.h:275
STK instrument abstract base class.
Definition: Instrmnt.h:19
void noteOn(StkFloat frequency, StkFloat amplitude)
Impulse the mesh with the given amplitude (frequency ignored).
void controlChange(int number, StkFloat value)
Perform the control change specified by number and value (0.0 - 128.0).
Two-dimensional rectilinear waveguide mesh class.
Definition: Mesh2D.h:38
StkFloat inputTick(StkFloat input)
Input a sample to the mesh and compute one output sample.
void noteOff(StkFloat amplitude)
Stop a note with the given amplitude (speed of decay) ... currently ignored.