statically declare comb array
[software/lv2-mdametapiano.git] / src / mdaPianoVoice.h
index c7b2e43..7df0076 100644 (file)
@@ -21,6 +21,11 @@ class mdaPianoVoice : public LV2::Voice {
     short *waves;
     float default_preset[NPARAMS]; // contains the default preset
     short sustain;
+    float comb[256];
+    float cdep, width, trim;
+    float fine, random, stretch;
+    float volume, muff, muffvel, sizevel, velsens;
+    uint32_t cpos, size, poly;
 
     // voice state
     uint32_t  delta;  //sample playback
@@ -41,13 +46,25 @@ class mdaPianoVoice : public LV2::Voice {
     uint32_t  note; //remember what note triggered this
     // end of voice state
 
+  protected:
+    unsigned char m_key;
 
   public:
     mdaPianoVoice(double, short*, KGRP*);
+    void set_sustain(unsigned short v) { sustain = v; }
+    void set_volume(float v) { volume = v; }
+    void set_muff(float v) { muff = v; }
 
     float p_helper(unsigned short, Param);
     void update(Param); // recalculates internal variables
+    void on(unsigned char key, unsigned char velocity);
+    void release(unsigned char velocity);
     void reset(void);
+    bool is_sustained(void) { return (note == SUSTAIN); }
+    unsigned char get_key(void) const { return m_key; }
+
+    // generates the sound for this voice
+    void render(uint32_t, uint32_t);
 };
 
 #endif