--- /dev/null
+//Parameters for harpsichord.dsp
+//©Romain Michon (rmichon@ccrma.stanford.edu), 2011
+//licence: FAUST-STK
+
+#include "instrument.h"
+
+#define _LOOKUP_TABLE_H_
+
+double DryTapAmpT60_points[16*2] = {
+// NoteNumber(A440=69), T60(sec)
+ 21.001,0.491,
+ 26.587,0.498,
+ 34.249,0.470,
+ 40.794,0.441,
+ 47.977,0.392,
+ 55.000,0.370,
+ 60.000,0.370,
+ 66.000,0.370,
+ 71.934,0.370,
+ 78.000,0.370,
+ 83.936,0.390,
+ 88.557,0.387,
+ 92.858,0.400,
+ 97.319,0.469,
+ 102.400,0.500,
+ 107.198,0.494 };
+extern LookupTable DryTapAmpT60;
+LookupTable DryTapAmpT60(&DryTapAmpT60_points[0], 16);
+
+float getValueDryTapAmpT60 (float index){
+ return DryTapAmpT60.getValue(index);
+}
+
+double releaseLoopGain_points[10*2] = {
+ 21.000,0.865,
+ 24.000,0.880,
+ 29.000,0.896,
+ 36.000,0.910,
+ 48.000,0.920,
+ 60.000,0.950,
+ 72.000,0.965,
+ 84.000,0.988,
+ 88.000,0.997,
+ 99.000,0.988 };
+extern LookupTable releaseLoopGain;
+LookupTable releaseLoopGain(&releaseLoopGain_points[0], 10);
+
+float getValueReleaseLoopGain(float index){
+ return releaseLoopGain.getValue(index);
+}
+
+double loopFilterb0_points[18*2] = {
+ 35.000,0.94373,
+ 36.000,0.94731,
+ 46.000,0.94731,
+ 47.000,0.96202,
+ 52.000,0.96202,
+ 53.000,0.97477,
+ 58.000,0.97477,
+ 59.000,0.97733,
+ 64.000,0.97733,
+ 65.000,0.97971,
+ 70.000,0.97971,
+ 71.000,0.97971,
+ 76.000,0.97971,
+ 77.000,0.98698,
+ 82.000,0.98698,
+ 83.000,0.98462,
+ 86.000,0.98462,
+ 87.000,0.98611,
+};
+extern LookupTable loopFilterb0;
+LookupTable loopFilterb0(&loopFilterb0_points[0], 18);
+
+float getValueLoopFilterb0(float index){
+ return loopFilterb0.getValue(index);
+}
+
+double loopFilterb1_points[18*2] = {
+ 35.000,0.60010,
+ 36.000,-0.59124,
+ 46.000,-0.59124,
+ 47.000,-0.21243,
+ 52.000,-0.21243,
+ 53.000,-0.39280,
+ 58.000,-0.39280,
+ 59.000,-0.48307,
+ 64.000,-0.48307,
+ 65.000,0.51965,
+ 70.000,0.51965,
+ 71.000,0.51965,
+ 76.000,0.51965,
+ 77.000,-0.42463,
+ 82.000,-0.42463,
+ 83.000,0.85655,
+ 86.000,0.85655,
+ 87.000,0.68851,
+};
+extern LookupTable loopFilterb1;
+LookupTable loopFilterb1(&loopFilterb1_points[0], 18);
+
+float getValueLoopFilterb1(float index){
+ return loopFilterb1.getValue(index);
+}
+
+double loopFilterb2_points[18*2] = {
+ 35.000,-0.00360,
+ 36.000,-0.12249,
+ 46.000,-0.12249,
+ 47.000,-0.16044,
+ 52.000,-0.16044,
+ 53.000,-0.21680,
+ 58.000,-0.21680,
+ 59.000,-0.16346,
+ 64.000,-0.16346,
+ 65.000,0.22162,
+ 70.000,0.22162,
+ 71.000,0.22162,
+ 76.000,0.22162,
+ 77.000,-0.14973,
+ 82.000,-0.14973,
+ 83.000,0.24937,
+ 86.000,0.24937,
+ 87.000,0.14838,
+};
+extern LookupTable loopFilterb2;
+LookupTable loopFilterb2(&loopFilterb2_points[0], 18);
+
+float getValueLoopFilterb2(float index){
+ return loopFilterb2.getValue(index);
+}
+
+double loopFiltera1_points[18*2] = {
+ 35.000,0.5941,
+ 36.000,-0.65928,
+ 46.000,-0.65928,
+ 47.000,-0.24222,
+ 52.000,-0.24222,
+ 53.000,-0.41402,
+ 58.000,-0.41402,
+ 59.000,-0.50837,
+ 64.000,-0.50837,
+ 65.000,0.51263,
+ 70.000,0.51263,
+ 71.000,0.51263,
+ 76.000,0.51263,
+ 77.000,-0.43976,
+ 82.000,-0.43976,
+ 83.000,0.85396,
+ 86.000,0.85396,
+ 87.000,0.68332,
+};
+extern LookupTable loopFiltera1;
+LookupTable loopFiltera1(&loopFiltera1_points[0], 18);
+
+float getValueLoopFiltera1(float index){
+ return loopFiltera1.getValue(index);
+}
+
+double loopFiltera2_points[18*2] = {
+ 35.000,-0.02641,
+ 36.000,-0.10275,
+ 46.000,-0.10275,
+ 47.000,-0.15842,
+ 52.000,-0.15842,
+ 53.000,-0.21653,
+ 58.000,-0.21653,
+ 59.000,-0.15833,
+ 64.000,-0.15833,
+ 65.000,0.22025,
+ 70.000,0.22025,
+ 71.000,0.22025,
+ 76.000,0.22025,
+ 77.000,-0.14583,
+ 82.000,-0.14583,
+ 83.000,0.24405,
+ 86.000,0.24405,
+ 87.000,0.14370,
+};
+extern LookupTable loopFiltera2;
+LookupTable loopFiltera2(&loopFiltera2_points[0], 18);
+
+float getValueLoopFiltera2(float index){
+ return loopFiltera2.getValue(index);
+}