move shared definitions into mdaPianoCommon
authorrekado <rekado@elephly.net>
Mon, 14 Jan 2013 09:37:35 +0000 (17:37 +0800)
committerrekado <rekado@elephly.net>
Mon, 14 Jan 2013 09:46:52 +0000 (17:46 +0800)
src/mdaPiano.cpp
src/mdaPiano.h
src/mdaPianoCommon.h [new file with mode: 0644]

index f88e062..71a8189 100644 (file)
@@ -13,6 +13,7 @@
  * ==================================================
  */
 
+#include "mdaPianoCommon.h"
 #include "mdaPiano.h"
 
 #include <stdio.h>
index d8449c7..f902efc 100644 (file)
@@ -1,64 +1,13 @@
 //See associated .cpp file for copyright and other info
 
-#ifndef __mdaPiano__
-#define __mdaPiano__
+#ifndef MDA_PIANO_H
+#define MDA_PIANO_H
 
 #pragma GCC system_header
 #include "mdaPianoVoice.h"
 #include "mdaPiano.peg"
 #include <lv2synth.hpp>
-#include <string.h>
 
-#define NPARAMS 12       //number of parameters
-#define NPROGS   8       //number of programs
-#define NOUTS    2       //number of outputs
-#define NVOICES 32       //max polyphony
-#define SUSTAIN 128
-#define SILENCE 0.0001f  //voice choking
-#define WAVELEN 586348   //wave data bytes
-
-class mdaPianoProgram
-{
-  friend class mdaPiano;
-public:
-  mdaPianoProgram();
-  ~mdaPianoProgram() {}
-
-private:
-  float param[NPARAMS];
-  char  name[24];
-};
-
-
-struct VOICE  //voice state
-{
-  uint32_t  delta;  //sample playback
-  uint32_t  frac;
-  uint32_t  pos;
-  uint32_t  end;
-  uint32_t  loop;
-  
-  float env;  //envelope
-  float dec;
-
-  float f0;   //first-order LPF
-  float f1;
-  float ff;
-
-  float outl;
-  float outr;
-  uint32_t  note; //remember what note triggered this
-};
-
-
-struct KGRP  //keygroup
-{
-  uint32_t  root;  //MIDI root note
-  uint32_t  high;  //highest note
-  uint32_t  pos;
-  uint32_t  end;
-  uint32_t  loop;
-};
 
 class mdaPiano : public LV2::Synth<mdaPianoVoice, mdaPiano> {
 public:
diff --git a/src/mdaPianoCommon.h b/src/mdaPianoCommon.h
new file mode 100644 (file)
index 0000000..ed0c01d
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef MDA_PIANO_COMMON_H
+#define MDA_PIANO_COMMON_H
+
+#define NPARAMS 12       //number of parameters
+#define NOUTS    2       //number of outputs
+#define NVOICES 64       //max polyphony
+#define SUSTAIN 128
+#define SILENCE 0.0001f  //voice choking
+#define PARAM_OFFSET 3 //offset for param enum
+
+struct KGRP  //keygroup
+{
+  long root;  //MIDI root note
+  long high;  //highest note
+  long pos;
+  long end;
+  long loop;
+};
+
+static float scale_midi_to_f(unsigned char data)
+{
+  return 0.0078f * (float)(data);
+}
+
+static unsigned char p_offset(unsigned char i)
+{
+  return (i - PARAM_OFFSET);
+}
+
+#endif