/*
   Risc os Digital Signal Processor
   (C) 2017 A.V.Bartram

  THIS SOFTWARE IS PROVIDED  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  IN NO EVENT SHALL A.V.Bartram BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL
  ,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO
  ),PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS
  ;OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/

#include "synth.h"


// Fixed point 14 binary places
unsigned int _toneTable[] = {
357609, // Idx = 0 For frequency = 21.826764
362811, // Idx = 1 For frequency = 22.144242
368088, // Idx = 2 For frequency = 22.466337
373442, // Idx = 3 For frequency = 22.793118
378874, // Idx = 4 For frequency = 23.124651
384385, // Idx = 5 For frequency = 23.461007
389976, // Idx = 6 For frequency = 23.802255
395648, // Idx = 7 For frequency = 24.148467
401403, // Idx = 8 For frequency = 24.499715
407241, // Idx = 9 For frequency = 24.856071
413165, // Idx = 10 For frequency = 25.217611
419174, // Idx = 11 For frequency = 25.584410
425272, // Idx = 12 For frequency = 25.956544
431457, // Idx = 13 For frequency = 26.334090
437733, // Idx = 14 For frequency = 26.717128
444100, // Idx = 15 For frequency = 27.105738
450559, // Idx = 16 For frequency = 27.500000
457113, // Idx = 17 For frequency = 27.899997
463762, // Idx = 18 For frequency = 28.305812
470507, // Idx = 19 For frequency = 28.717529
477351, // Idx = 20 For frequency = 29.135235
484294, // Idx = 21 For frequency = 29.559017
491339, // Idx = 22 For frequency = 29.988963
498485, // Idx = 23 For frequency = 30.425162
505736, // Idx = 24 For frequency = 30.867706
513092, // Idx = 25 For frequency = 31.316687
520555, // Idx = 26 For frequency = 31.772199
528127, // Idx = 27 For frequency = 32.234336
535809, // Idx = 28 For frequency = 32.703196
543602, // Idx = 29 For frequency = 33.178875
551509, // Idx = 30 For frequency = 33.661472
559531, // Idx = 31 For frequency = 34.151090
567670, // Idx = 32 For frequency = 34.647829
575926, // Idx = 33 For frequency = 35.151793
584304, // Idx = 34 For frequency = 35.663088
592802, // Idx = 35 For frequency = 36.181819
601425, // Idx = 36 For frequency = 36.708096
610173, // Idx = 37 For frequency = 37.242028
619048, // Idx = 38 For frequency = 37.783725
628052, // Idx = 39 For frequency = 38.333302
637188, // Idx = 40 For frequency = 38.890873
646456, // Idx = 41 For frequency = 39.456554
655859, // Idx = 42 For frequency = 40.030463
665398, // Idx = 43 For frequency = 40.612719
675077, // Idx = 44 For frequency = 41.203445
684896, // Idx = 45 For frequency = 41.802763
694858, // Idx = 46 For frequency = 42.410798
704965, // Idx = 47 For frequency = 43.027677
715219, // Idx = 48 For frequency = 43.653529
725622, // Idx = 49 For frequency = 44.288484
736176, // Idx = 50 For frequency = 44.932675
746884, // Idx = 51 For frequency = 45.586236
757748, // Idx = 52 For frequency = 46.249303
768770, // Idx = 53 For frequency = 46.922014
779952, // Idx = 54 For frequency = 47.604511
791296, // Idx = 55 For frequency = 48.296934
802806, // Idx = 56 For frequency = 48.999429
814483, // Idx = 57 For frequency = 49.712143
826330, // Idx = 58 For frequency = 50.435222
838349, // Idx = 59 For frequency = 51.168820
850544, // Idx = 60 For frequency = 51.913087
862915, // Idx = 61 For frequency = 52.668180
875466, // Idx = 62 For frequency = 53.434257
888200, // Idx = 63 For frequency = 54.211476
901119, // Idx = 64 For frequency = 55.000000
914227, // Idx = 65 For frequency = 55.799993
927524, // Idx = 66 For frequency = 56.611623
941015, // Idx = 67 For frequency = 57.435058
954703, // Idx = 68 For frequency = 58.270470
968589, // Idx = 69 For frequency = 59.118034
982678, // Idx = 70 For frequency = 59.977925
996971, // Idx = 71 For frequency = 60.850324
1011473, // Idx = 72 For frequency = 61.735413
1026185, // Idx = 73 For frequency = 62.633375
1041111, // Idx = 74 For frequency = 63.544398
1056254, // Idx = 75 For frequency = 64.468673
1071618, // Idx = 76 For frequency = 65.406391
1087205, // Idx = 77 For frequency = 66.357749
1103019, // Idx = 78 For frequency = 67.322945
1119062, // Idx = 79 For frequency = 68.302180
1135340, // Idx = 80 For frequency = 69.295658
1151853, // Idx = 81 For frequency = 70.303586
1168608, // Idx = 82 For frequency = 71.326176
1185605, // Idx = 83 For frequency = 72.363639
1202850, // Idx = 84 For frequency = 73.416192
1220346, // Idx = 85 For frequency = 74.484055
1238097, // Idx = 86 For frequency = 75.567451
1256105, // Idx = 87 For frequency = 76.666604
1274376, // Idx = 88 For frequency = 77.781746
1292912, // Idx = 89 For frequency = 78.913107
1311718, // Idx = 90 For frequency = 80.060925
1330797, // Idx = 91 For frequency = 81.225438
1350154, // Idx = 92 For frequency = 82.406889
1369792, // Idx = 93 For frequency = 83.605525
1389717, // Idx = 94 For frequency = 84.821595
1409930, // Idx = 95 For frequency = 86.055354
1430438, // Idx = 96 For frequency = 87.307058
1451245, // Idx = 97 For frequency = 88.576968
1472353, // Idx = 98 For frequency = 89.865350
1493769, // Idx = 99 For frequency = 91.172472
1515497, // Idx = 100 For frequency = 92.498606
1537540, // Idx = 101 For frequency = 93.844029
1559904, // Idx = 102 For frequency = 95.209022
1582593, // Idx = 103 For frequency = 96.593869
1605613, // Idx = 104 For frequency = 97.998859
1628967, // Idx = 105 For frequency = 99.424285
1652661, // Idx = 106 For frequency = 100.870445
1676699, // Idx = 107 For frequency = 102.337639
1701088, // Idx = 108 For frequency = 103.826174
1725830, // Idx = 109 For frequency = 105.336361
1750933, // Idx = 110 For frequency = 106.868514
1776401, // Idx = 111 For frequency = 108.422952
1802239, // Idx = 112 For frequency = 110.000000
1828454, // Idx = 113 For frequency = 111.599987
1855049, // Idx = 114 For frequency = 113.223246
1882031, // Idx = 115 For frequency = 114.870116
1909406, // Idx = 116 For frequency = 116.540940
1937179, // Idx = 117 For frequency = 118.236067
1965356, // Idx = 118 For frequency = 119.955851
1993943, // Idx = 119 For frequency = 121.700649
2022946, // Idx = 120 For frequency = 123.470825
2052370, // Idx = 121 For frequency = 125.266750
2082222, // Idx = 122 For frequency = 127.088797
2112509, // Idx = 123 For frequency = 128.937346
2143236, // Idx = 124 For frequency = 130.812783
2174410, // Idx = 125 For frequency = 132.715498
2206038, // Idx = 126 For frequency = 134.645890
2238125, // Idx = 127 For frequency = 136.604359
2270680, // Idx = 128 For frequency = 138.591315
2303707, // Idx = 129 For frequency = 140.607173
2337216, // Idx = 130 For frequency = 142.652351
2371211, // Idx = 131 For frequency = 144.727277
2405701, // Idx = 132 For frequency = 146.832384
2440693, // Idx = 133 For frequency = 148.968110
2476194, // Idx = 134 For frequency = 151.134901
2512211, // Idx = 135 For frequency = 153.333209
2548752, // Idx = 136 For frequency = 155.563492
2585824, // Idx = 137 For frequency = 157.826215
2623436, // Idx = 138 For frequency = 160.121850
2661595, // Idx = 139 For frequency = 162.450876
2700308, // Idx = 140 For frequency = 164.813778
2739585, // Idx = 141 For frequency = 167.211050
2779434, // Idx = 142 For frequency = 169.643191
2819861, // Idx = 143 For frequency = 172.110708
2860877, // Idx = 144 For frequency = 174.614116
2902490, // Idx = 145 For frequency = 177.153937
2944707, // Idx = 146 For frequency = 179.730700
2987539, // Idx = 147 For frequency = 182.344943
3030994, // Idx = 148 For frequency = 184.997211
3075081, // Idx = 149 For frequency = 187.688058
3119809, // Idx = 150 For frequency = 190.418043
3165187, // Idx = 151 For frequency = 193.187738
3211226, // Idx = 152 For frequency = 195.997718
3257934, // Idx = 153 For frequency = 198.848570
3305322, // Idx = 154 For frequency = 201.740890
3353399, // Idx = 155 For frequency = 204.675278
3402176, // Idx = 156 For frequency = 207.652349
3451661, // Idx = 157 For frequency = 210.672722
3501867, // Idx = 158 For frequency = 213.737027
3552803, // Idx = 159 For frequency = 216.845904
3604479, // Idx = 160 For frequency = 220.000000
3656908, // Idx = 161 For frequency = 223.199974
3710099, // Idx = 162 For frequency = 226.446492
3764063, // Idx = 163 For frequency = 229.740232
3818813, // Idx = 164 For frequency = 233.081881
3874359, // Idx = 165 For frequency = 236.472135
3930713, // Idx = 166 For frequency = 239.911701
3987886, // Idx = 167 For frequency = 243.401297
4045892, // Idx = 168 For frequency = 246.941651
4104740, // Idx = 169 For frequency = 250.533500
4164445, // Idx = 170 For frequency = 254.177593
4225018, // Idx = 171 For frequency = 257.874692
4286473, // Idx = 172 For frequency = 261.625565
4348821, // Idx = 173 For frequency = 265.430997
4412076, // Idx = 174 For frequency = 269.291780
4476251, // Idx = 175 For frequency = 273.208719
4541360, // Idx = 176 For frequency = 277.182631
4607415, // Idx = 177 For frequency = 281.214345
4674432, // Idx = 178 For frequency = 285.304702
4742423, // Idx = 179 For frequency = 289.454554
4811403, // Idx = 180 For frequency = 293.664768
4881387, // Idx = 181 For frequency = 297.936220
4952388, // Idx = 182 For frequency = 302.269802
5024422, // Idx = 183 For frequency = 306.666418
5097504, // Idx = 184 For frequency = 311.126984
5171649, // Idx = 185 For frequency = 315.652430
5246872, // Idx = 186 For frequency = 320.243700
5323190, // Idx = 187 For frequency = 324.901752
5400617, // Idx = 188 For frequency = 329.627557
5479171, // Idx = 189 For frequency = 334.422100
5558868, // Idx = 190 For frequency = 339.286382
5639723, // Idx = 191 For frequency = 344.221416
5721755, // Idx = 192 For frequency = 349.228231
5804980, // Idx = 193 For frequency = 354.307873
5889415, // Idx = 194 For frequency = 359.461400
5975079, // Idx = 195 For frequency = 364.689886
6061988, // Idx = 196 For frequency = 369.994423
6150162, // Idx = 197 For frequency = 375.376116
6239618, // Idx = 198 For frequency = 380.836087
6330375, // Idx = 199 For frequency = 386.375475
6422453, // Idx = 200 For frequency = 391.995436
6515869, // Idx = 201 For frequency = 397.697141
6610645, // Idx = 202 For frequency = 403.481779
6706799, // Idx = 203 For frequency = 409.350557
6804352, // Idx = 204 For frequency = 415.304698
6903323, // Idx = 205 For frequency = 421.345444
7003734, // Idx = 206 For frequency = 427.474054
7105606, // Idx = 207 For frequency = 433.691807
7208960, // Idx = 208 For frequency = 440.000000
7313816, // Idx = 209 For frequency = 446.399947
7420198, // Idx = 210 For frequency = 452.892984
7528127, // Idx = 211 For frequency = 459.480464
7637627, // Idx = 212 For frequency = 466.163762
7748718, // Idx = 213 For frequency = 472.944270
7861426, // Idx = 214 For frequency = 479.823402
7975773, // Idx = 215 For frequency = 486.802594
8091784, // Idx = 216 For frequency = 493.883301
8209481, // Idx = 217 For frequency = 501.066999
8328891, // Idx = 218 For frequency = 508.355187
8450037, // Idx = 219 For frequency = 515.749383
8572946, // Idx = 220 For frequency = 523.251131
8697642, // Idx = 221 For frequency = 530.861994
8824153, // Idx = 222 For frequency = 538.583559
8952503, // Idx = 223 For frequency = 546.417437
9082720, // Idx = 224 For frequency = 554.365262
9214831, // Idx = 225 For frequency = 562.428690
9348864, // Idx = 226 For frequency = 570.609404
9484846, // Idx = 227 For frequency = 578.909109
9622807, // Idx = 228 For frequency = 587.329536
9762774, // Idx = 229 For frequency = 595.872441
9904776, // Idx = 230 For frequency = 604.539605
10048845, // Idx = 231 For frequency = 613.332836
10195009, // Idx = 232 For frequency = 622.253967
10343298, // Idx = 233 For frequency = 631.304860
10493745, // Idx = 234 For frequency = 640.487400
10646380, // Idx = 235 For frequency = 649.803504
10801235, // Idx = 236 For frequency = 659.255114
10958343, // Idx = 237 For frequency = 668.844200
11117736, // Idx = 238 For frequency = 678.572763
11279447, // Idx = 239 For frequency = 688.442831
11443510, // Idx = 240 For frequency = 698.456463
11609960, // Idx = 241 For frequency = 708.615746
11778831, // Idx = 242 For frequency = 718.922799
11950158, // Idx = 243 For frequency = 729.379772
12123977, // Idx = 244 For frequency = 739.988845
12300324, // Idx = 245 For frequency = 750.752231
12479236, // Idx = 246 For frequency = 761.672174
12660751, // Idx = 247 For frequency = 772.750951
12844906, // Idx = 248 For frequency = 783.990872
13031739, // Idx = 249 For frequency = 795.394282
13221290, // Idx = 250 For frequency = 806.963558
13413599, // Idx = 251 For frequency = 818.701113
13608704, // Idx = 252 For frequency = 830.609395
13806647, // Idx = 253 For frequency = 842.690887
14007469, // Idx = 254 For frequency = 854.948108
14211213, // Idx = 255 For frequency = 867.383615
14417920, // Idx = 256 For frequency = 880.000000
14627633, // Idx = 257 For frequency = 892.799895
14840397, // Idx = 258 For frequency = 905.785968
15056255, // Idx = 259 For frequency = 918.960929
15275254, // Idx = 260 For frequency = 932.327523
15497437, // Idx = 261 For frequency = 945.888539
15722853, // Idx = 262 For frequency = 959.646805
15951547, // Idx = 263 For frequency = 973.605189
16183568, // Idx = 264 For frequency = 987.766603
16418963, // Idx = 265 For frequency = 1002.133999
16657782, // Idx = 266 For frequency = 1016.710373
16900075, // Idx = 267 For frequency = 1031.498766
17145893, // Idx = 268 For frequency = 1046.502261
17395285, // Idx = 269 For frequency = 1061.723987
17648306, // Idx = 270 For frequency = 1077.167118
17905006, // Idx = 271 For frequency = 1092.834875
18165440, // Idx = 272 For frequency = 1108.730524
18429663, // Idx = 273 For frequency = 1124.857381
18697728, // Idx = 274 For frequency = 1141.218808
18969693, // Idx = 275 For frequency = 1157.818218
19245614, // Idx = 276 For frequency = 1174.659072
19525548, // Idx = 277 For frequency = 1191.744881
19809553, // Idx = 278 For frequency = 1209.079210
20097690, // Idx = 279 For frequency = 1226.665672
20390018, // Idx = 280 For frequency = 1244.507935
20686597, // Idx = 281 For frequency = 1262.609720
20987491, // Idx = 282 For frequency = 1280.974801
21292761, // Idx = 283 For frequency = 1299.607008
21602471, // Idx = 284 For frequency = 1318.510228
21916686, // Idx = 285 For frequency = 1337.688401
22235472, // Idx = 286 For frequency = 1357.145526
22558894, // Idx = 287 For frequency = 1376.885663
22887021, // Idx = 288 For frequency = 1396.912926
23219920, // Idx = 289 For frequency = 1417.231492
23557662, // Idx = 290 For frequency = 1437.845599
23900316, // Idx = 291 For frequency = 1458.759545
24247954, // Idx = 292 For frequency = 1479.977691
24600649, // Idx = 293 For frequency = 1501.504462
24958473, // Idx = 294 For frequency = 1523.344347
25321503, // Idx = 295 For frequency = 1545.501901
25689812, // Idx = 296 For frequency = 1567.981744
26063479, // Idx = 297 For frequency = 1590.788564
26442581, // Idx = 298 For frequency = 1613.927116
26827198, // Idx = 299 For frequency = 1637.402227
27217408, // Idx = 300 For frequency = 1661.218790
27613294, // Idx = 301 For frequency = 1685.381774
28014939, // Idx = 302 For frequency = 1709.896216
28422426, // Idx = 303 For frequency = 1734.767230
28835840, // Idx = 304 For frequency = 1760.000000
29255266, // Idx = 305 For frequency = 1785.599789
29680794, // Idx = 306 For frequency = 1811.571936
30112511, // Idx = 307 For frequency = 1837.921857
30550508, // Idx = 308 For frequency = 1864.655046
30994875, // Idx = 309 For frequency = 1891.777078
31445706, // Idx = 310 For frequency = 1919.293609
31903094, // Idx = 311 For frequency = 1947.210378
32367136, // Idx = 312 For frequency = 1975.533205
32837926, // Idx = 313 For frequency = 2004.267997
33315565, // Idx = 314 For frequency = 2033.420746
33800151, // Idx = 315 For frequency = 2062.997532
34291786, // Idx = 316 For frequency = 2093.004522
34790571, // Idx = 317 For frequency = 2123.447974
35296612, // Idx = 318 For frequency = 2154.334236
35810013, // Idx = 319 For frequency = 2185.669749
36330881, // Idx = 320 For frequency = 2217.461048
36859326, // Idx = 321 For frequency = 2249.714761
37395457, // Idx = 322 For frequency = 2282.437616
37939387, // Idx = 323 For frequency = 2315.636436
38491228, // Idx = 324 For frequency = 2349.318143
39051096, // Idx = 325 For frequency = 2383.489763
39619107, // Idx = 326 For frequency = 2418.158420
40195380, // Idx = 327 For frequency = 2453.331344
40780036, // Idx = 328 For frequency = 2489.015870
41373195, // Idx = 329 For frequency = 2525.219439
41974982, // Idx = 330 For frequency = 2561.949602
42585522, // Idx = 331 For frequency = 2599.214017
43204943, // Idx = 332 For frequency = 2637.020455
43833373, // Idx = 333 For frequency = 2675.376801
44470944, // Idx = 334 For frequency = 2714.291053
45117789, // Idx = 335 For frequency = 2753.771325
45774042, // Idx = 336 For frequency = 2793.825851
46439841, // Idx = 337 For frequency = 2834.462984
47115324, // Idx = 338 For frequency = 2875.691198
47800632, // Idx = 339 For frequency = 2917.519089
48495908, // Idx = 340 For frequency = 2959.955382
49201298, // Idx = 341 For frequency = 3003.008924
49916947, // Idx = 342 For frequency = 3046.688695
50643006, // Idx = 343 For frequency = 3091.003802
51379625, // Idx = 344 For frequency = 3135.963488
52126959, // Idx = 345 For frequency = 3181.577127
52885163, // Idx = 346 For frequency = 3227.854232
53654396, // Idx = 347 For frequency = 3274.804453
54434817, // Idx = 348 For frequency = 3322.437581
55226589, // Idx = 349 For frequency = 3370.763548
56029879, // Idx = 350 For frequency = 3419.792433
56844852, // Idx = 351 For frequency = 3469.534459
57671680, // Idx = 352 For frequency = 3520.000000
58510533, // Idx = 353 For frequency = 3571.199579
59361589, // Idx = 354 For frequency = 3623.143873
60225023, // Idx = 355 For frequency = 3675.843714
61101016, // Idx = 356 For frequency = 3729.310092
61989751, // Idx = 357 For frequency = 3783.554157
62891412, // Idx = 358 For frequency = 3838.587219
63806189, // Idx = 359 For frequency = 3894.420756
64734272, // Idx = 360 For frequency = 3951.066410
65675853, // Idx = 361 For frequency = 4008.535994
66631131, // Idx = 362 For frequency = 4066.841493
67600303, // Idx = 363 For frequency = 4125.995065
68583572, // Idx = 364 For frequency = 4186.009045
};

unsigned int _sampleFreqTable[] = {
812, // Idx = 0 For frequency = 0.049606
824, // Idx = 1 For frequency = 0.050328
836, // Idx = 2 For frequency = 0.051060
848, // Idx = 3 For frequency = 0.051803
861, // Idx = 4 For frequency = 0.052556
873, // Idx = 5 For frequency = 0.053320
886, // Idx = 6 For frequency = 0.054096
899, // Idx = 7 For frequency = 0.054883
912, // Idx = 8 For frequency = 0.055681
925, // Idx = 9 For frequency = 0.056491
939, // Idx = 10 For frequency = 0.057313
952, // Idx = 11 For frequency = 0.058146
966, // Idx = 12 For frequency = 0.058992
980, // Idx = 13 For frequency = 0.059850
994, // Idx = 14 For frequency = 0.060721
1009, // Idx = 15 For frequency = 0.061604
1023, // Idx = 16 For frequency = 0.062500
1038, // Idx = 17 For frequency = 0.063409
1054, // Idx = 18 For frequency = 0.064331
1069, // Idx = 19 For frequency = 0.065267
1084, // Idx = 20 For frequency = 0.066216
1100, // Idx = 21 For frequency = 0.067180
1116, // Idx = 22 For frequency = 0.068157
1132, // Idx = 23 For frequency = 0.069148
1149, // Idx = 24 For frequency = 0.070154
1166, // Idx = 25 For frequency = 0.071174
1183, // Idx = 26 For frequency = 0.072210
1200, // Idx = 27 For frequency = 0.073260
1217, // Idx = 28 For frequency = 0.074325
1235, // Idx = 29 For frequency = 0.075407
1253, // Idx = 30 For frequency = 0.076503
1271, // Idx = 31 For frequency = 0.077616
1290, // Idx = 32 For frequency = 0.078745
1308, // Idx = 33 For frequency = 0.079890
1327, // Idx = 34 For frequency = 0.081052
1347, // Idx = 35 For frequency = 0.082231
1366, // Idx = 36 For frequency = 0.083427
1386, // Idx = 37 For frequency = 0.084641
1406, // Idx = 38 For frequency = 0.085872
1427, // Idx = 39 For frequency = 0.087121
1448, // Idx = 40 For frequency = 0.088388
1469, // Idx = 41 For frequency = 0.089674
1490, // Idx = 42 For frequency = 0.090978
1512, // Idx = 43 For frequency = 0.092302
1534, // Idx = 44 For frequency = 0.093644
1556, // Idx = 45 For frequency = 0.095006
1579, // Idx = 46 For frequency = 0.096388
1602, // Idx = 47 For frequency = 0.097790
1625, // Idx = 48 For frequency = 0.099213
1649, // Idx = 49 For frequency = 0.100656
1673, // Idx = 50 For frequency = 0.102120
1697, // Idx = 51 For frequency = 0.103605
1722, // Idx = 52 For frequency = 0.105112
1747, // Idx = 53 For frequency = 0.106641
1772, // Idx = 54 For frequency = 0.108192
1798, // Idx = 55 For frequency = 0.109766
1824, // Idx = 56 For frequency = 0.111362
1851, // Idx = 57 For frequency = 0.112982
1878, // Idx = 58 For frequency = 0.114626
1905, // Idx = 59 For frequency = 0.116293
1933, // Idx = 60 For frequency = 0.117984
1961, // Idx = 61 For frequency = 0.119700
1989, // Idx = 62 For frequency = 0.121441
2018, // Idx = 63 For frequency = 0.123208
2047, // Idx = 64 For frequency = 0.125000
2077, // Idx = 65 For frequency = 0.126818
2108, // Idx = 66 For frequency = 0.128663
2138, // Idx = 67 For frequency = 0.130534
2169, // Idx = 68 For frequency = 0.132433
2201, // Idx = 69 For frequency = 0.134359
2233, // Idx = 70 For frequency = 0.136313
2265, // Idx = 71 For frequency = 0.138296
2298, // Idx = 72 For frequency = 0.140308
2332, // Idx = 73 For frequency = 0.142349
2366, // Idx = 74 For frequency = 0.144419
2400, // Idx = 75 For frequency = 0.146520
2435, // Idx = 76 For frequency = 0.148651
2470, // Idx = 77 For frequency = 0.150813
2506, // Idx = 78 For frequency = 0.153007
2543, // Idx = 79 For frequency = 0.155232
2580, // Idx = 80 For frequency = 0.157490
2617, // Idx = 81 For frequency = 0.159781
2655, // Idx = 82 For frequency = 0.162105
2694, // Idx = 83 For frequency = 0.164463
2733, // Idx = 84 For frequency = 0.166855
2773, // Idx = 85 For frequency = 0.169282
2813, // Idx = 86 For frequency = 0.171744
2854, // Idx = 87 For frequency = 0.174242
2896, // Idx = 88 For frequency = 0.176777
2938, // Idx = 89 For frequency = 0.179348
2981, // Idx = 90 For frequency = 0.181957
3024, // Idx = 91 For frequency = 0.184603
3068, // Idx = 92 For frequency = 0.187288
3113, // Idx = 93 For frequency = 0.190013
3158, // Idx = 94 For frequency = 0.192776
3204, // Idx = 95 For frequency = 0.195580
3250, // Idx = 96 For frequency = 0.198425
3298, // Idx = 97 For frequency = 0.201311
3346, // Idx = 98 For frequency = 0.204239
3394, // Idx = 99 For frequency = 0.207210
3444, // Idx = 100 For frequency = 0.210224
3494, // Idx = 101 For frequency = 0.213282
3545, // Idx = 102 For frequency = 0.216384
3596, // Idx = 103 For frequency = 0.219532
3649, // Idx = 104 For frequency = 0.222725
3702, // Idx = 105 For frequency = 0.225964
3756, // Idx = 106 For frequency = 0.229251
3810, // Idx = 107 For frequency = 0.232586
3866, // Idx = 108 For frequency = 0.235969
3922, // Idx = 109 For frequency = 0.239401
3979, // Idx = 110 For frequency = 0.242883
4037, // Idx = 111 For frequency = 0.246416
4095, // Idx = 112 For frequency = 0.250000
4155, // Idx = 113 For frequency = 0.253636
4216, // Idx = 114 For frequency = 0.257326
4277, // Idx = 115 For frequency = 0.261068
4339, // Idx = 116 For frequency = 0.264866
4402, // Idx = 117 For frequency = 0.268718
4466, // Idx = 118 For frequency = 0.272627
4531, // Idx = 119 For frequency = 0.276592
4597, // Idx = 120 For frequency = 0.280616
4664, // Idx = 121 For frequency = 0.284697
4732, // Idx = 122 For frequency = 0.288838
4801, // Idx = 123 For frequency = 0.293039
4870, // Idx = 124 For frequency = 0.297302
4941, // Idx = 125 For frequency = 0.301626
5013, // Idx = 126 For frequency = 0.306013
5086, // Idx = 127 For frequency = 0.310464
5160, // Idx = 128 For frequency = 0.314980
5235, // Idx = 129 For frequency = 0.319562
5311, // Idx = 130 For frequency = 0.324210
5389, // Idx = 131 For frequency = 0.328926
5467, // Idx = 132 For frequency = 0.333710
5547, // Idx = 133 For frequency = 0.338564
5627, // Idx = 134 For frequency = 0.343488
5709, // Idx = 135 For frequency = 0.348485
5792, // Idx = 136 For frequency = 0.353553
5876, // Idx = 137 For frequency = 0.358696
5962, // Idx = 138 For frequency = 0.363913
6049, // Idx = 139 For frequency = 0.369207
6137, // Idx = 140 For frequency = 0.374577
6226, // Idx = 141 For frequency = 0.380025
6316, // Idx = 142 For frequency = 0.385553
6408, // Idx = 143 For frequency = 0.391161
6501, // Idx = 144 For frequency = 0.396850
6596, // Idx = 145 For frequency = 0.402623
6692, // Idx = 146 For frequency = 0.408479
6789, // Idx = 147 For frequency = 0.414420
6888, // Idx = 148 For frequency = 0.420448
6988, // Idx = 149 For frequency = 0.426564
7090, // Idx = 150 For frequency = 0.432768
7193, // Idx = 151 For frequency = 0.439063
7298, // Idx = 152 For frequency = 0.445449
7404, // Idx = 153 For frequency = 0.451929
7512, // Idx = 154 For frequency = 0.458502
7621, // Idx = 155 For frequency = 0.465171
7732, // Idx = 156 For frequency = 0.471937
7844, // Idx = 157 For frequency = 0.478802
7958, // Idx = 158 For frequency = 0.485766
8074, // Idx = 159 For frequency = 0.492832
8191, // Idx = 160 For frequency = 0.500000
8311, // Idx = 161 For frequency = 0.507273
8432, // Idx = 162 For frequency = 0.514651
8554, // Idx = 163 For frequency = 0.522137
8679, // Idx = 164 For frequency = 0.529732
8805, // Idx = 165 For frequency = 0.537437
8933, // Idx = 166 For frequency = 0.545254
9063, // Idx = 167 For frequency = 0.553185
9195, // Idx = 168 For frequency = 0.561231
9328, // Idx = 169 For frequency = 0.569394
9464, // Idx = 170 For frequency = 0.577676
9602, // Idx = 171 For frequency = 0.586079
9741, // Idx = 172 For frequency = 0.594604
9883, // Idx = 173 For frequency = 0.603252
10027, // Idx = 174 For frequency = 0.612027
10173, // Idx = 175 For frequency = 0.620929
10321, // Idx = 176 For frequency = 0.629961
10471, // Idx = 177 For frequency = 0.639124
10623, // Idx = 178 For frequency = 0.648420
10778, // Idx = 179 For frequency = 0.657851
10935, // Idx = 180 For frequency = 0.667420
11094, // Idx = 181 For frequency = 0.677128
11255, // Idx = 182 For frequency = 0.686977
11419, // Idx = 183 For frequency = 0.696969
11585, // Idx = 184 For frequency = 0.707107
11753, // Idx = 185 For frequency = 0.717392
11924, // Idx = 186 For frequency = 0.727827
12098, // Idx = 187 For frequency = 0.738413
12274, // Idx = 188 For frequency = 0.749154
12452, // Idx = 189 For frequency = 0.760050
12633, // Idx = 190 For frequency = 0.771105
12817, // Idx = 191 For frequency = 0.782321
13003, // Idx = 192 For frequency = 0.793701
13193, // Idx = 193 For frequency = 0.805245
13385, // Idx = 194 For frequency = 0.816958
13579, // Idx = 195 For frequency = 0.828841
13777, // Idx = 196 For frequency = 0.840896
13977, // Idx = 197 For frequency = 0.853128
14180, // Idx = 198 For frequency = 0.865537
14387, // Idx = 199 For frequency = 0.878126
14596, // Idx = 200 For frequency = 0.890899
14808, // Idx = 201 For frequency = 0.903857
15024, // Idx = 202 For frequency = 0.917004
15242, // Idx = 203 For frequency = 0.930342
15464, // Idx = 204 For frequency = 0.943874
15689, // Idx = 205 For frequency = 0.957603
15917, // Idx = 206 For frequency = 0.971532
16149, // Idx = 207 For frequency = 0.985663
16384, // Idx = 208 For frequency = 1.000000 plays back at normal speed
16622, // Idx = 209 For frequency = 1.014545
16864, // Idx = 210 For frequency = 1.029302
17109, // Idx = 211 For frequency = 1.044274
17358, // Idx = 212 For frequency = 1.059463
17610, // Idx = 213 For frequency = 1.074873
17866, // Idx = 214 For frequency = 1.090508
18126, // Idx = 215 For frequency = 1.106370
18390, // Idx = 216 For frequency = 1.122462
18657, // Idx = 217 For frequency = 1.138789
18929, // Idx = 218 For frequency = 1.155353
19204, // Idx = 219 For frequency = 1.172158
19483, // Idx = 220 For frequency = 1.189207
19767, // Idx = 221 For frequency = 1.206505
20054, // Idx = 222 For frequency = 1.224054
20346, // Idx = 223 For frequency = 1.241858
20642, // Idx = 224 For frequency = 1.259921
20942, // Idx = 225 For frequency = 1.278247
21247, // Idx = 226 For frequency = 1.296840
21556, // Idx = 227 For frequency = 1.315703
21870, // Idx = 228 For frequency = 1.334840
22188, // Idx = 229 For frequency = 1.354256
22510, // Idx = 230 For frequency = 1.373954
22838, // Idx = 231 For frequency = 1.393938
23170, // Idx = 232 For frequency = 1.414214
23507, // Idx = 233 For frequency = 1.434784
23849, // Idx = 234 For frequency = 1.455653
24196, // Idx = 235 For frequency = 1.476826
24548, // Idx = 236 For frequency = 1.498307
24905, // Idx = 237 For frequency = 1.520100
25267, // Idx = 238 For frequency = 1.542211
25635, // Idx = 239 For frequency = 1.564643
26007, // Idx = 240 For frequency = 1.587401
26386, // Idx = 241 For frequency = 1.610490
26770, // Idx = 242 For frequency = 1.633915
27159, // Idx = 243 For frequency = 1.657681
27554, // Idx = 244 For frequency = 1.681793
27955, // Idx = 245 For frequency = 1.706255
28361, // Idx = 246 For frequency = 1.731073
28774, // Idx = 247 For frequency = 1.756252
29192, // Idx = 248 For frequency = 1.781797
29617, // Idx = 249 For frequency = 1.807714
30048, // Idx = 250 For frequency = 1.834008
30485, // Idx = 251 For frequency = 1.860684
30928, // Idx = 252 For frequency = 1.887749
31378, // Idx = 253 For frequency = 1.915207
31835, // Idx = 254 For frequency = 1.943064
32298, // Idx = 255 For frequency = 1.971326
32768, // Idx = 256 For frequency = 2.000000
33244, // Idx = 257 For frequency = 2.029091
33728, // Idx = 258 For frequency = 2.058604
34218, // Idx = 259 For frequency = 2.088548
34716, // Idx = 260 For frequency = 2.118926
35221, // Idx = 261 For frequency = 2.149747
35733, // Idx = 262 For frequency = 2.181015
36253, // Idx = 263 For frequency = 2.212739
36780, // Idx = 264 For frequency = 2.244924
37315, // Idx = 265 For frequency = 2.277577
37858, // Idx = 266 For frequency = 2.310705
38409, // Idx = 267 For frequency = 2.344315
38967, // Idx = 268 For frequency = 2.378414
39534, // Idx = 269 For frequency = 2.413009
40109, // Idx = 270 For frequency = 2.448107
40693, // Idx = 271 For frequency = 2.483716
41285, // Idx = 272 For frequency = 2.519842
41885, // Idx = 273 For frequency = 2.556494
42494, // Idx = 274 For frequency = 2.593679
43112, // Idx = 275 For frequency = 2.631405
43740, // Idx = 276 For frequency = 2.669680
44376, // Idx = 277 For frequency = 2.708511
45021, // Idx = 278 For frequency = 2.747907
45676, // Idx = 279 For frequency = 2.787877
46340, // Idx = 280 For frequency = 2.828427
47014, // Idx = 281 For frequency = 2.869568
47698, // Idx = 282 For frequency = 2.911306
48392, // Idx = 283 For frequency = 2.953652
49096, // Idx = 284 For frequency = 2.996614
49810, // Idx = 285 For frequency = 3.040201
50535, // Idx = 286 For frequency = 3.084422
51270, // Idx = 287 For frequency = 3.129286
52015, // Idx = 288 For frequency = 3.174802
52772, // Idx = 289 For frequency = 3.220981
53540, // Idx = 290 For frequency = 3.267831
54318, // Idx = 291 For frequency = 3.315363
55108, // Idx = 292 For frequency = 3.363586
55910, // Idx = 293 For frequency = 3.412510
56723, // Idx = 294 For frequency = 3.462146
57548, // Idx = 295 For frequency = 3.512504
58385, // Idx = 296 For frequency = 3.563595
59235, // Idx = 297 For frequency = 3.615429
60096, // Idx = 298 For frequency = 3.668016
60970, // Idx = 299 For frequency = 3.721369
61857, // Idx = 300 For frequency = 3.775497
62757, // Idx = 301 For frequency = 3.830413
63670, // Idx = 302 For frequency = 3.886128
64596, // Idx = 303 For frequency = 3.942653
65536, // Idx = 304 For frequency = 4.000000
66489, // Idx = 305 For frequency = 4.058181
67456, // Idx = 306 For frequency = 4.117209
68437, // Idx = 307 For frequency = 4.177095
69432, // Idx = 308 For frequency = 4.237852
70442, // Idx = 309 For frequency = 4.299493
71467, // Idx = 310 For frequency = 4.362031
72507, // Idx = 311 For frequency = 4.425478
73561, // Idx = 312 For frequency = 4.489848
74631, // Idx = 313 For frequency = 4.555155
75717, // Idx = 314 For frequency = 4.621411
76818, // Idx = 315 For frequency = 4.688631
77935, // Idx = 316 For frequency = 4.756828
79069, // Idx = 317 For frequency = 4.826018
80219, // Idx = 318 For frequency = 4.896214
81386, // Idx = 319 For frequency = 4.967431
82570, // Idx = 320 For frequency = 5.039684
83771, // Idx = 321 For frequency = 5.112988
84989, // Idx = 322 For frequency = 5.187358
86225, // Idx = 323 For frequency = 5.262810
87480, // Idx = 324 For frequency = 5.339359
88752, // Idx = 325 For frequency = 5.417022
90043, // Idx = 326 For frequency = 5.495815
91353, // Idx = 327 For frequency = 5.575753
92681, // Idx = 328 For frequency = 5.656854
94029, // Idx = 329 For frequency = 5.739135
95397, // Idx = 330 For frequency = 5.822613
96785, // Idx = 331 For frequency = 5.907305
98193, // Idx = 332 For frequency = 5.993228
99621, // Idx = 333 For frequency = 6.080402
101070, // Idx = 334 For frequency = 6.168843
102540, // Idx = 335 For frequency = 6.258571
104031, // Idx = 336 For frequency = 6.349604
105545, // Idx = 337 For frequency = 6.441961
107080, // Idx = 338 For frequency = 6.535662
108637, // Idx = 339 For frequency = 6.630725
110217, // Idx = 340 For frequency = 6.727171
111821, // Idx = 341 For frequency = 6.825020
113447, // Idx = 342 For frequency = 6.924292
115097, // Idx = 343 For frequency = 7.025009
116771, // Idx = 344 For frequency = 7.127190
118470, // Idx = 345 For frequency = 7.230857
120193, // Idx = 346 For frequency = 7.336032
121941, // Idx = 347 For frequency = 7.442737
123715, // Idx = 348 For frequency = 7.550995
125514, // Idx = 349 For frequency = 7.660826
127340, // Idx = 350 For frequency = 7.772256
129192, // Idx = 351 For frequency = 7.885306
131072, // Idx = 352 For frequency = 8.000000
132978, // Idx = 353 For frequency = 8.116363
134912, // Idx = 354 For frequency = 8.234418
136875, // Idx = 355 For frequency = 8.354190
138865, // Idx = 356 For frequency = 8.475705
140885, // Idx = 357 For frequency = 8.598987
142935, // Idx = 358 For frequency = 8.724062
145014, // Idx = 359 For frequency = 8.850956
147123, // Idx = 360 For frequency = 8.979696
149263, // Idx = 361 For frequency = 9.110309
151434, // Idx = 362 For frequency = 9.242822
153637, // Idx = 363 For frequency = 9.377262
155871, // Idx = 364 For frequency = 9.513657
};

