-
Notifications
You must be signed in to change notification settings - Fork 6
/
hack.js
648 lines (558 loc) · 48.3 KB
/
hack.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
var angeloRomData = ["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AAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOABjAgBjY2NjMjIyMgAIIwAAADEYICAgICAgICAgIGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AGMCAGNjY2MyMjIyAAgjAAAAMRggICAgICAgICAgY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAYwIAY2NjYzIyMjIACCMAAAAxGCAgICAgICAgICBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOABjAgBjY2NjMjIyMgAIIwAAADEYICAgICAgICAgIDn3"];
var pi = 3.14;
var globalVoice = 0;
var globalBank = 0;
var freqCoarseDebug = [];
var midiToFrequency = [
8.176,
8.662,
9.177,
9.723,
10.301,
10.913,
11.562,
12.25,
12.978,
13.75,
14.568,
15.434,
16.352,
17.324,
18.354,
19.445,
20.602,
21.827,
23.125,
24.5,
25.957,
27.5,
29.135,
30.868,
32.703,
34.648,
36.708,
38.891,
41.203,
43.654,
46.249,
48.999,
51.913,
55,
58.27,
61.735,
65.406,
69.296,
73.416,
77.782,
82.407,
87.307,
92.499,
97.999,
103.826,
110,
116.541,
123.471,
130.813,
138.591,
146.832,
155.563,
164.814,
174.614,
184.997,
195.998,
207.652,
220,
233.082,
246.942,
261.626,
277.183,
293.665,
311.127,
329.628,
349.228,
369.994,
391.995,
415.305,
440,
466.164,
493.883,
523.251,
554.365,
587.33,
622.254,
659.255,
698.456,
739.989,
783.991,
830.609,
880,
932.328,
987.767,
1046.502,
1108.731,
1174.659,
1244.508,
1318.51,
1396.913,
1479.978,
1567.982,
1661.219,
1760,
1864.655,
1975.533,
2093.005,
2217.461,
2349.318,
2489.016,
2637.02,
2793.826,
2959.955,
3135.963,
3322.438,
3520,
3729.31,
3951.066,
4186.009,
4434.922,
4698.636,
4978.032,
5274.041,
5587.652,
5919.911,
6271.927,
6644.875,
7040,
7458.62,
7902.133,
8372.018,
8869.844,
9397.273,
9956.063,
10548.08,
11175.3,
11839.82,
12543.85
];
function extractPatchFromRom(romData, patchId) {
var dataStart = 128 * patchId + 6;
var dataEnd = dataStart + 128;
var voiceData = romData.substring(dataStart, dataEnd);
var parameters = [{},{},{},{},{},{}];
for(var i = 5; i >= 0; --i) {
var oscStart = (5 - i) * 17;
var oscEnd = oscStart + 17;
var oscData = voiceData.substring(oscStart, oscEnd);
parameters[i]["outputLevel"] = oscData.charCodeAt(14);
var freqCoarse = Math.floor(oscData.charCodeAt(15) / 2);
if(freqCoarse == 0) {
freqCoarse = 0.5;
}
var freqFine = oscData.charCodeAt(16);
parameters[i]["freqCoarseRaw"] = Math.floor(oscData.charCodeAt(15) / 2);
if(oscData.charCodeAt(15) % 2 == 0) {
parameters[i]["oscMode"] = 0;
parameters[i]["frequencyRatio"] = freqCoarse * (1 + freqFine / 100);
}
else {
parameters[i]["oscMode"] = 1;
parameters[i]["fixedFrequency"] = Math.pow(10, Math.floor(oscData.charCodeAt(15) / 2)) * (1 + (freqFine / 99)*8.772);
}
parameters[i]["envelope"] = {
"levels" : [oscData.charCodeAt(4), oscData.charCodeAt(5), oscData.charCodeAt(6), oscData.charCodeAt(7)],
"rates" : [oscData.charCodeAt(0), oscData.charCodeAt(1), oscData.charCodeAt(2), oscData.charCodeAt(3)]
}
}
return {
"algorithm": voiceData.charCodeAt(110),
"feedback": voiceData.charCodeAt(111) % 8,
"parameters": parameters,
"name": voiceData.substring(118, 128),
"lfoSpeed": voiceData.charCodeAt(112),
"lfoDelay": voiceData.charCodeAt(113),
"lfoPitchModulationDepth": voiceData.charCodeAt(114),
"lfoAmplitudeModulationDepth": voiceData.charCodeAt(115),
"lfoWaveform": Math.floor(voiceData.charCodeAt(116) / 2) % 8,
"pitchEnvelope": {
"levels" : [voiceData.charCodeAt(106), voiceData.charCodeAt(107), voiceData.charCodeAt(108), voiceData.charCodeAt(109)],
"rates" : [voiceData.charCodeAt(102), voiceData.charCodeAt(103), voiceData.charCodeAt(104), voiceData.charCodeAt(105)]
}
};
}
var sampleRate = 44100;
var programs = [
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3], [4], [5], [5]] }, //1
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3], [4], [5], []] }, //2
{ "outputMix": [0,3],
"modulationPatches": [[1], [2], [], [4], [5], [5]] }, //3
{ "outputMix": [0,3],
"modulationPatches": [[1], [2], [], [4], [5], [3]] }, //4
{ "outputMix": [0,2,4],
"modulationPatches": [[1], [], [3], [], [5], [5]] }, //5
{ "outputMix": [0,2,4],
"modulationPatches": [[1], [], [3], [], [5], [4]] }, //6
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3,4], [], [5], [5]] }, //7
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3,4], [3], [5], []] }, //8
{ "outputMix": [0,2],
"modulationPatches": [[1], [1], [3,4], [], [5], []] }, //9
{ "outputMix": [0,3],
"modulationPatches": [[1], [2], [2], [4,5], [], []] }, //10
{ "outputMix": [0,3],
"modulationPatches": [[1], [2], [], [4,5], [], [5]] }, //11
{ "outputMix": [0,2],
"modulationPatches": [[1], [1], [3,4,5], [], [], []] }, //12
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3,4,5], [], [], [5]] }, //13
{ "outputMix": [0,2],
"modulationPatches": [[1], [], [3], [4,5], [], [5]] }, //14
{ "outputMix": [0,2],
"modulationPatches": [[1], [1], [3], [4,5], [], []] }, //15
{ "outputMix": [0],
"modulationPatches": [[1,2,4], [], [3], [], [5], [5]] }, //16
{ "outputMix": [0],
"modulationPatches": [[1,2,4], [1], [3], [], [5], []] }, //17
{ "outputMix": [0],
"modulationPatches": [[1,2,3], [], [2], [4], [5], []] }, //18
{ "outputMix": [0,3,4],
"modulationPatches": [[1], [2], [], [5], [5], [5]] }, //19
{ "outputMix": [0,1,3],
"modulationPatches": [[2], [2], [2], [4,5], [], []] }, //20
{ "outputMix": [0,1,3,4],
"modulationPatches": [[2], [2], [2], [5], [5], []] }, //21
{ "outputMix": [0,2,3,4],
"modulationPatches": [[1], [], [5], [5], [5], [5]] }, //22
{ "outputMix": [0,1,3,4],
"modulationPatches": [[], [2], [], [5], [5], [5]] }, //23
{ "outputMix": [0,1,2,3,4],
"modulationPatches": [[], [], [5], [5], [5], [5]] }, //24
{ "outputMix": [0,1,2,3,4],
"modulationPatches": [[], [], [], [5], [5], [5]] }, //25
{ "outputMix": [0,1,3],
"modulationPatches": [[], [2], [], [4,5], [], [5]] }, //26
{ "outputMix": [0,1,3],
"modulationPatches": [[], [2], [2], [4,5], [], []] }, //27
{ "outputMix": [0,2,5],
"modulationPatches": [[1], [], [3], [4], [4], []] }, //28
{ "outputMix": [0,1,2,4],
"modulationPatches": [[], [], [3], [], [5], [5]] }, //29
{ "outputMix": [0,1,2,5],
"modulationPatches": [[], [], [3], [4], [4], []] }, //30
{ "outputMix": [0,1,2,3,4],
"modulationPatches": [[], [], [], [], [5], [5]] }, //31
{ "outputMix": [0,1,2,3,4,5],
"modulationPatches": [[], [], [], [], [], [5]] } //32
];
var dxModulationLookup = [
0,
0.000337,
0.000476,
0.000674,
0.000952,
0.001235,
0.001602,
0.001905,
0.002265,
0.002694,
0.003204,
0.003810,
0.004531,
0.005388,
0.006408,
0.007620,
0.008310,
0.009062,
0.010776,
0.011752,
0.013975,
0.015240,
0.016619,
0.018123,
0.019764,
0.021552,
0.023503,
0.025630,
0.027950,
0.030480,
0.033238,
0.036247,
0.039527,
0.043105,
0.047006,
0.051261,
0.055900,
0.060960,
0.066477,
0.072494,
0.079055,
0.086210,
0.094012,
0.102521,
0.111800,
0.121919,
0.132954,
0.144987,
0.158110,
0.172420,
0.188025,
0.205043,
0.223601,
0.243838,
0.265907,
0.289974,
0.316219,
0.344839,
0.376050,
0.410085,
0.447201,
0.487676,
0.531815,
0.579948,
0.632438,
0.689679,
0.752100,
0.820171,
0.894403,
0.975353,
1.063630,
1.159897,
1.264876,
1.379357,
1.504200,
1.640341,
1.788805,
1.950706,
2.127260,
2.319793,
2.529752,
2.758714,
3.008399,
3.280683,
3.577610,
3.901411,
4.254519,
4.639586,
5.059505,
5.517429,
6.016799,
6.561366,
7.155220,
7.802823,
8.509039,
9.279172,
10.119009,
11.034858,
12.033598,
13.122731
];
function getWaveform(type, phase) {
switch(type) {
case 0:
var cycles = phase/(2 * pi);
var fracCycles = cycles - Math.floor(cycles);
if(fracCycles < 0.25) {
return fracCycles * 4;
}
else if(fracCycles < 0.75) {
return 1 - ((fracCycles - 0.25) * 4);
}
else {
return (fracCycles - 1) * 4;
}
case 4:
return Math.sin(phase);
}
return Math.sin(phase);
// return 0;
}
var envDebug = [];
function generateSampleData(frequencyInHertz, dataFromRom) {
var data = [];
var length = 1;
var safety = 0.9;
var program = programs[dataFromRom["algorithm"]];
var parameters = dataFromRom["parameters"];
var numSamples = sampleRate * length;
var patch = program["modulationPatches"];
var output = program["outputMix"];
// envelopes[6] is the pitch envelope
var envelopes = [0,0,0,0,0,0,50];
var envelopeSegments = [0,0,0,0,0,0,0];
var outputs = [0,0,0,0,0,0];
var phis = [0,0,0,0,0,0];
for(var i = 0; i < numSamples; ++i) {
var t = i / sampleRate;
for(var operator2 = 5; operator2 >= 0; --operator2) {
outputs[operator2] *= dataFromRom["feedback"] / 50
}
var lfo = getWaveform(dataFromRom["lfoWaveform"], t * dataFromRom["lfoSpeed"] * 2 * pi / 4);
var baseOmega = frequencyInHertz * 2 * pi; // + 0.2 * lfo * dataFromRom["lfoPitchModulationDepth"] / 99;
baseOmega *= Math.pow(2,(envelopes[6] - 50) / 12.5);
var operatorFrequencies = [];
for(var operator = 0; operator < 6; ++operator) {
if(parameters[operator]["oscMode"] == 0) {
operatorFrequencies.push(baseOmega * parameters[operator]["frequencyRatio"]);
}
else {
operatorFrequencies.push(parameters[operator]["fixedFrequency"] * 2 * pi);
}
}
for(var operator = 5; operator >= 0; --operator) {
var modulationInput = 0;
phis[operator] += operatorFrequencies[operator] / sampleRate;
var phi = phis[operator];
for(var inputOperator = 0; inputOperator < patch[operator].length; ++inputOperator) {
phi += dxModulationLookup[parameters[patch[operator][inputOperator]]["outputLevel"]] * outputs[patch[operator][inputOperator]];
}
phi += dxModulationLookup[dataFromRom["lfoPitchModulationDepth"]] * lfo;
outputs[operator] = Math.sin(phi) * envelopes[operator];
var envelopeRates = parameters[operator]["envelope"]["rates"];
var envelopeLevels = parameters[operator]["envelope"]["levels"];
var envelopeSegment = envelopeSegments[operator];
var envelopeSign = (envelopeLevels[envelopeSegment]/99) - envelopes[operator];
if (envelopeSign != 0) {
envelopeSign /= Math.abs(envelopeSign);
}
if((envelopeSegment < 3) || ((envelopeSegment == 3) && (i > (numSamples / 2)))) {
envelopes[operator] += envelopeSign * envelopeRates[envelopeSegment] / (sampleRate * 10);
if(envelopes[operator] * envelopeSign >= (envelopeLevels[envelopeSegment]/99) * envelopeSign) {
envelopes[operator] = (envelopeLevels[envelopeSegment]/99);
envelopeSegments[operator] += 1;
}
}
}
var envelopeRates = dataFromRom["pitchEnvelope"]["rates"];
var envelopeLevels = dataFromRom["pitchEnvelope"]["levels"];
var envelopeSegment = envelopeSegments[6];
var envelopeSign = (envelopeLevels[envelopeSegment]) - envelopes[6];
if (envelopeSign != 0) {
envelopeSign /= Math.abs(envelopeSign);
}
if((envelopeSegment < 3) || ((envelopeSegment == 3) && (i > (numSamples / 2)))) {
envelopes[6] += envelopeSign * envelopeRates[envelopeSegment] / (sampleRate * 10);
if(envelopes[6] * envelopeSign >= (envelopeLevels[envelopeSegment]) * envelopeSign) {
envelopes[6] = (envelopeLevels[envelopeSegment]);
envelopeSegments[6] += 1;
}
}
var mixedOutput = 0;
var total = 0;
for(var k = 0; k < output.length; ++k) {
mixedOutput += outputs[output[k]] * parameters[output[k]]["outputLevel"];
total += parameters[output[k]]["outputLevel"];
}
mixedOutput /= total;
data.push(mixedOutput * safety * 32768 * (1 - (((lfo + 1)/4) * dataFromRom["lfoAmplitudeModulationDepth"] / 99)));
}
return data;
}
function encodeAudio16bit(data) {
var n = data.length;
var integer = 0, i;
// 16-bit mono WAVE header template
var header = "RIFF<##>WAVEfmt \x10\x00\x00\x00\x01\x00\x01\x00<##><##>\x02\x00\x10\x00data<##>";
// Helper to insert a 32-bit little endian int.
function insertLong(value) {
var bytes = "";
for (i = 0; i < 4; ++i) {
bytes += String.fromCharCode(value % 256);
value = Math.floor(value / 256);
}
header = header.replace('<##>', bytes);
}
// ChunkSize
insertLong(36 + n * 2);
// SampleRate
insertLong(sampleRate);
// ByteRate
insertLong(sampleRate * 2);
// Subchunk2Size
insertLong(n * 2);
// Output sound data
for (var i = 0; i < n; ++i) {
var sample = Math.round(data[i]);
if (sample < 0) {
sample += 65536; // 2's complement signed
}
header += String.fromCharCode(sample % 256);
header += String.fromCharCode(Math.floor(sample / 256));
}
return 'data:audio/wav;base64,' + btoa(header);
}
function generateAndPlaySample(noteNumber, voice) {
var dataFromRom = JSON.parse($('#patchDetails').val());
var data = generateSampleData(midiToFrequency[noteNumber], dataFromRom);
var sampleUrl = encodeAudio16bit(data);
audioPlayer = $('<audio>').attr({ src: sampleUrl });
$('body').append(audioPlayer);
audioPlayer[0].play();
return dataFromRom["name"];
}
function playScale(voice) {
generateAndPlaySample(60, voice);
generateAndPlaySample(62, voice);
generateAndPlaySample(64, voice);
generateAndPlaySample(65, voice);
generateAndPlaySample(67, voice);
generateAndPlaySample(69, voice);
generateAndPlaySample(71, voice);
generateAndPlaySample(72, voice);
}
function patchNames() {
var options = '';
for(var i = 0; i < 32; ++i) {
options += "<option value=\"" + i + "\">" + extractPatchFromRom(atob(angeloRomData[globalBank]), i)["name"] + "</option>";
}
$('#patchSelect').html(options);
}
window.addEventListener('load', function() {
$('#patchSelect').change( function() {
globalVoice = parseInt($('#patchSelect option:selected')[0].value);
$('#patchDetails').html( JSON.stringify(extractPatchFromRom(atob(angeloRomData[globalBank]), globalVoice), undefined, 2) )
} );
$('#bankSelect').change( function() {
globalBank = parseInt($('#bankSelect option:selected')[0].value);
patchNames();
$('#patchDetails').html( JSON.stringify(extractPatchFromRom(atob(angeloRomData[globalBank]), globalVoice), undefined, 2) )
} );
// midiBridge.connectAllInputs();
var noteNumbers = {
//white keys
65 : 60, //key a -> note c
83 : 62, //key s -> note d
68 : 64, //key d -> note e
70 : 65, //key f -> note f
71 : 67, //key g -> note g
72 : 69, //key h -> note a
74 : 71, //key j -> note b
75 : 72, //key k -> note c
76 : 74, //key l -> note d
186 : 76, //key ; -> note e
222 : 77, //key : -> note f
//black keys
87 : 61, //key w -> note c#/d
69 : 63, //key e -> note d#/e
84 : 66, //key t -> note f#/g
89 : 68, //key y -> note g#/a
85 : 70, //key u -> note a#/b
79 : 73, //key o -> note c#/d
80 : 75 //key p -> note d#/e
}
var keysPressed = {};
var connectKeyboard = function(){
document.addEventListener("keydown", function(e) {
if(noteNumbers[e.which] && !keysPressed[e.which]) {
generateAndPlaySample(noteNumbers[e.which], globalVoice);
}
}, false);
};
patchNames();
connectKeyboard();
}, false);