libsndfile-ocaml source files.
[Faustine.git] / interpretor / preprocessor / faust-0.9.47mr3 / examples / faust-stk / harpsichord.h
1 //Parameters for harpsichord.dsp
2 //©Romain Michon (rmichon@ccrma.stanford.edu), 2011
3 //licence: FAUST-STK
4
5 #include "instrument.h"
6
7 #define _LOOKUP_TABLE_H_
8
9 double DryTapAmpT60_points[16*2] = {
10 // NoteNumber(A440=69), T60(sec)
11 21.001,0.491,
12 26.587,0.498,
13 34.249,0.470,
14 40.794,0.441,
15 47.977,0.392,
16 55.000,0.370,
17 60.000,0.370,
18 66.000,0.370,
19 71.934,0.370,
20 78.000,0.370,
21 83.936,0.390,
22 88.557,0.387,
23 92.858,0.400,
24 97.319,0.469,
25 102.400,0.500,
26 107.198,0.494 };
27 extern LookupTable DryTapAmpT60;
28 LookupTable DryTapAmpT60(&DryTapAmpT60_points[0], 16);
29
30 float getValueDryTapAmpT60 (float index){
31 return DryTapAmpT60.getValue(index);
32 }
33
34 double releaseLoopGain_points[10*2] = {
35 21.000,0.865,
36 24.000,0.880,
37 29.000,0.896,
38 36.000,0.910,
39 48.000,0.920,
40 60.000,0.950,
41 72.000,0.965,
42 84.000,0.988,
43 88.000,0.997,
44 99.000,0.988 };
45 extern LookupTable releaseLoopGain;
46 LookupTable releaseLoopGain(&releaseLoopGain_points[0], 10);
47
48 float getValueReleaseLoopGain(float index){
49 return releaseLoopGain.getValue(index);
50 }
51
52 double loopFilterb0_points[18*2] = {
53 35.000,0.94373,
54 36.000,0.94731,
55 46.000,0.94731,
56 47.000,0.96202,
57 52.000,0.96202,
58 53.000,0.97477,
59 58.000,0.97477,
60 59.000,0.97733,
61 64.000,0.97733,
62 65.000,0.97971,
63 70.000,0.97971,
64 71.000,0.97971,
65 76.000,0.97971,
66 77.000,0.98698,
67 82.000,0.98698,
68 83.000,0.98462,
69 86.000,0.98462,
70 87.000,0.98611,
71 };
72 extern LookupTable loopFilterb0;
73 LookupTable loopFilterb0(&loopFilterb0_points[0], 18);
74
75 float getValueLoopFilterb0(float index){
76 return loopFilterb0.getValue(index);
77 }
78
79 double loopFilterb1_points[18*2] = {
80 35.000,0.60010,
81 36.000,-0.59124,
82 46.000,-0.59124,
83 47.000,-0.21243,
84 52.000,-0.21243,
85 53.000,-0.39280,
86 58.000,-0.39280,
87 59.000,-0.48307,
88 64.000,-0.48307,
89 65.000,0.51965,
90 70.000,0.51965,
91 71.000,0.51965,
92 76.000,0.51965,
93 77.000,-0.42463,
94 82.000,-0.42463,
95 83.000,0.85655,
96 86.000,0.85655,
97 87.000,0.68851,
98 };
99 extern LookupTable loopFilterb1;
100 LookupTable loopFilterb1(&loopFilterb1_points[0], 18);
101
102 float getValueLoopFilterb1(float index){
103 return loopFilterb1.getValue(index);
104 }
105
106 double loopFilterb2_points[18*2] = {
107 35.000,-0.00360,
108 36.000,-0.12249,
109 46.000,-0.12249,
110 47.000,-0.16044,
111 52.000,-0.16044,
112 53.000,-0.21680,
113 58.000,-0.21680,
114 59.000,-0.16346,
115 64.000,-0.16346,
116 65.000,0.22162,
117 70.000,0.22162,
118 71.000,0.22162,
119 76.000,0.22162,
120 77.000,-0.14973,
121 82.000,-0.14973,
122 83.000,0.24937,
123 86.000,0.24937,
124 87.000,0.14838,
125 };
126 extern LookupTable loopFilterb2;
127 LookupTable loopFilterb2(&loopFilterb2_points[0], 18);
128
129 float getValueLoopFilterb2(float index){
130 return loopFilterb2.getValue(index);
131 }
132
133 double loopFiltera1_points[18*2] = {
134 35.000,0.5941,
135 36.000,-0.65928,
136 46.000,-0.65928,
137 47.000,-0.24222,
138 52.000,-0.24222,
139 53.000,-0.41402,
140 58.000,-0.41402,
141 59.000,-0.50837,
142 64.000,-0.50837,
143 65.000,0.51263,
144 70.000,0.51263,
145 71.000,0.51263,
146 76.000,0.51263,
147 77.000,-0.43976,
148 82.000,-0.43976,
149 83.000,0.85396,
150 86.000,0.85396,
151 87.000,0.68332,
152 };
153 extern LookupTable loopFiltera1;
154 LookupTable loopFiltera1(&loopFiltera1_points[0], 18);
155
156 float getValueLoopFiltera1(float index){
157 return loopFiltera1.getValue(index);
158 }
159
160 double loopFiltera2_points[18*2] = {
161 35.000,-0.02641,
162 36.000,-0.10275,
163 46.000,-0.10275,
164 47.000,-0.15842,
165 52.000,-0.15842,
166 53.000,-0.21653,
167 58.000,-0.21653,
168 59.000,-0.15833,
169 64.000,-0.15833,
170 65.000,0.22025,
171 70.000,0.22025,
172 71.000,0.22025,
173 76.000,0.22025,
174 77.000,-0.14583,
175 82.000,-0.14583,
176 83.000,0.24405,
177 86.000,0.24405,
178 87.000,0.14370,
179 };
180 extern LookupTable loopFiltera2;
181 LookupTable loopFiltera2(&loopFiltera2_points[0], 18);
182
183 float getValueLoopFiltera2(float index){
184 return loopFiltera2.getValue(index);
185 }