@marmooo/midy 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/midy-GM1.d.ts +2 -2
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +15 -15
- package/esm/midy-GM2.d.ts +28 -16
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +268 -132
- package/esm/midy-GMLite.d.ts +2 -2
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +15 -15
- package/esm/midy.d.ts +24 -12
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +252 -116
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +2 -2
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +15 -15
- package/script/midy-GM2.d.ts +28 -16
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +268 -132
- package/script/midy-GMLite.d.ts +2 -2
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +15 -15
- package/script/midy.d.ts +24 -12
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +252 -116
package/script/midy-GMLite.d.ts
CHANGED
|
@@ -128,7 +128,7 @@ export class MidyGMLite {
|
|
|
128
128
|
delayVibLFO: (_channel: any, _note: any, _prevValue: any) => void;
|
|
129
129
|
freqVibLFO: (_channel: any, _note: any, _prevValue: any) => void;
|
|
130
130
|
};
|
|
131
|
-
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array
|
|
131
|
+
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
|
|
132
132
|
applyVoiceParams(channel: any, controllerType: any): void;
|
|
133
133
|
createControlChangeHandlers(): {
|
|
134
134
|
1: (channelNumber: any, modulation: any) => void;
|
|
@@ -180,7 +180,7 @@ declare class Note {
|
|
|
180
180
|
constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
|
|
181
181
|
bufferSource: any;
|
|
182
182
|
filterNode: any;
|
|
183
|
-
|
|
183
|
+
volumeEnvelopeNode: any;
|
|
184
184
|
volumeDepth: any;
|
|
185
185
|
modulationLFO: any;
|
|
186
186
|
modulationDepth: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAmFA;IAoBE;;;;;;;;;MASE;IAEF,+BAQC;IAtCD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAClB,iCAA8B;IAc5B,kBAAgC;IAChC,gBAA4C;IAC5C;;;;;;;;;;;MAA2D;IAC3D;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,6DA2BC;IAED,iEAUC;IAED,2EA+CC;IAED,mCAOC;IAED,0BAkDC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAgEC;IAED,+EAmBC;IAED,qDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,2BAEC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,iCAWC;IAED,mCAgBC;IAED,kCAqBC;IAED,6CAIC;IAED,mCAuBC;IAED,+DAoBC;IAED,gHA2BC;IAED,kGAgDC;IAED,0EAGC;IAED,qFAwBC;IAED,6HAuBC;IAED,0FAGC;IAED,kEAeC;IAED,gFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,mDASC;IAED,gDASC;IAED,qCAMC;IAED,mCAQC;IAED,gCAOC;IAED,+BAMC;IAED;;;;;;;;;;;MAqBC;IAED
|
|
1
|
+
{"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAmFA;IAoBE;;;;;;;;;MASE;IAEF,+BAQC;IAtCD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAClB,iCAA8B;IAc5B,kBAAgC;IAChC,gBAA4C;IAC5C;;;;;;;;;;;MAA2D;IAC3D;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,6DA2BC;IAED,iEAUC;IAED,2EA+CC;IAED,mCAOC;IAED,0BAkDC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAgEC;IAED,+EAmBC;IAED,qDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,2BAEC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,iCAWC;IAED,mCAgBC;IAED,kCAqBC;IAED,6CAIC;IAED,mCAuBC;IAED,+DAoBC;IAED,gHA2BC;IAED,kGAgDC;IAED,0EAGC;IAED,qFAwBC;IAED,6HAuBC;IAED,0FAGC;IAED,kEAeC;IAED,gFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,mDASC;IAED,gDASC;IAED,qCAMC;IAED,mCAQC;IAED,gCAOC;IAED,+BAMC;IAED;;;;;;;;;;;MAqBC;IAED,oFAMC;IAED,0DA6CC;IAED;;;;;;;;;;;;;MAeC;IAED,+EASC;IAED,qCAiBC;IAED,8DAKC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,wCAWC;IAED,sDAKC;IAED,kFAeC;IAED,oCAYC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,kDAKC;IAED,wEAOC;IAED,+CAEC;IAED,8CAqBC;IAED,+CAEC;IAED,4DAgBC;IAED,oBAMC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AArtCD;IAQE,0FAMC;IAbD,kBAAa;IACb,gBAAW;IACX,wBAAmB;IACnB,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAGd,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,WAAkB;IAClB,iBAA8B;CAEjC"}
|
package/script/midy-GMLite.js
CHANGED
|
@@ -17,7 +17,7 @@ class Note {
|
|
|
17
17
|
writable: true,
|
|
18
18
|
value: void 0
|
|
19
19
|
});
|
|
20
|
-
Object.defineProperty(this, "
|
|
20
|
+
Object.defineProperty(this, "volumeEnvelopeNode", {
|
|
21
21
|
enumerable: true,
|
|
22
22
|
configurable: true,
|
|
23
23
|
writable: true,
|
|
@@ -620,7 +620,7 @@ class MidyGMLite {
|
|
|
620
620
|
const volAttack = volDelay + voiceParams.volAttack;
|
|
621
621
|
const volHold = volAttack + voiceParams.volHold;
|
|
622
622
|
const volDecay = volHold + voiceParams.volDecay;
|
|
623
|
-
note.
|
|
623
|
+
note.volumeEnvelopeNode.gain
|
|
624
624
|
.cancelScheduledValues(now)
|
|
625
625
|
.setValueAtTime(0, startTime)
|
|
626
626
|
.setValueAtTime(1e-6, volDelay) // exponentialRampToValueAtTime() requires a non-zero value
|
|
@@ -696,14 +696,14 @@ class MidyGMLite {
|
|
|
696
696
|
note.modulationLFO.connect(note.modulationDepth);
|
|
697
697
|
note.modulationDepth.connect(note.bufferSource.detune);
|
|
698
698
|
note.modulationLFO.connect(note.volumeDepth);
|
|
699
|
-
note.volumeDepth.connect(note.
|
|
699
|
+
note.volumeDepth.connect(note.volumeEnvelopeNode.gain);
|
|
700
700
|
}
|
|
701
701
|
async createNote(channel, voice, noteNumber, velocity, startTime, isSF3) {
|
|
702
702
|
const state = channel.state;
|
|
703
703
|
const voiceParams = voice.getAllParams(state.array);
|
|
704
704
|
const note = new Note(noteNumber, velocity, startTime, voice, voiceParams);
|
|
705
705
|
note.bufferSource = await this.createNoteBufferNode(voiceParams, isSF3);
|
|
706
|
-
note.
|
|
706
|
+
note.volumeEnvelopeNode = new GainNode(this.audioContext);
|
|
707
707
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
708
708
|
type: "lowpass",
|
|
709
709
|
Q: voiceParams.initialFilterQ / 10, // dB
|
|
@@ -715,7 +715,7 @@ class MidyGMLite {
|
|
|
715
715
|
this.startModulation(channel, note, startTime);
|
|
716
716
|
}
|
|
717
717
|
note.bufferSource.connect(note.filterNode);
|
|
718
|
-
note.filterNode.connect(note.
|
|
718
|
+
note.filterNode.connect(note.volumeEnvelopeNode);
|
|
719
719
|
note.bufferSource.start(startTime);
|
|
720
720
|
return note;
|
|
721
721
|
}
|
|
@@ -731,8 +731,8 @@ class MidyGMLite {
|
|
|
731
731
|
if (!voice)
|
|
732
732
|
return;
|
|
733
733
|
const note = await this.createNote(channel, voice, noteNumber, velocity, startTime, isSF3);
|
|
734
|
-
note.
|
|
735
|
-
note.
|
|
734
|
+
note.volumeEnvelopeNode.connect(channel.gainL);
|
|
735
|
+
note.volumeEnvelopeNode.connect(channel.gainR);
|
|
736
736
|
const exclusiveClass = note.voiceParams.exclusiveClass;
|
|
737
737
|
if (exclusiveClass !== 0) {
|
|
738
738
|
if (this.exclusiveClassMap.has(exclusiveClass)) {
|
|
@@ -760,7 +760,7 @@ class MidyGMLite {
|
|
|
760
760
|
}
|
|
761
761
|
stopNote(endTime, stopTime, scheduledNotes, index) {
|
|
762
762
|
const note = scheduledNotes[index];
|
|
763
|
-
note.
|
|
763
|
+
note.volumeEnvelopeNode.gain
|
|
764
764
|
.cancelScheduledValues(endTime)
|
|
765
765
|
.linearRampToValueAtTime(0, stopTime);
|
|
766
766
|
note.ending = true;
|
|
@@ -771,8 +771,8 @@ class MidyGMLite {
|
|
|
771
771
|
note.bufferSource.onended = () => {
|
|
772
772
|
scheduledNotes[index] = null;
|
|
773
773
|
note.bufferSource.disconnect();
|
|
774
|
-
note.volumeNode.disconnect();
|
|
775
774
|
note.filterNode.disconnect();
|
|
775
|
+
note.volumeEnvelopeNode.disconnect();
|
|
776
776
|
if (note.modulationDepth) {
|
|
777
777
|
note.volumeDepth.disconnect();
|
|
778
778
|
note.modulationDepth.disconnect();
|
|
@@ -865,12 +865,12 @@ class MidyGMLite {
|
|
|
865
865
|
setModLfoToPitch(channel, note) {
|
|
866
866
|
const now = this.audioContext.currentTime;
|
|
867
867
|
const modLfoToPitch = note.voiceParams.modLfoToPitch;
|
|
868
|
-
const
|
|
868
|
+
const baseDepth = Math.abs(modLfoToPitch) +
|
|
869
869
|
channel.state.modulationDepth;
|
|
870
|
-
const
|
|
870
|
+
const modulationDepth = baseDepth * Math.sign(modLfoToPitch);
|
|
871
871
|
note.modulationDepth.gain
|
|
872
872
|
.cancelScheduledValues(now)
|
|
873
|
-
.setValueAtTime(modulationDepth
|
|
873
|
+
.setValueAtTime(modulationDepth, now);
|
|
874
874
|
}
|
|
875
875
|
setModLfoToFilterFc(note) {
|
|
876
876
|
const now = this.audioContext.currentTime;
|
|
@@ -882,11 +882,11 @@ class MidyGMLite {
|
|
|
882
882
|
setModLfoToVolume(note) {
|
|
883
883
|
const now = this.audioContext.currentTime;
|
|
884
884
|
const modLfoToVolume = note.voiceParams.modLfoToVolume;
|
|
885
|
-
const
|
|
886
|
-
const
|
|
885
|
+
const baseDepth = this.cbToRatio(Math.abs(modLfoToVolume)) - 1;
|
|
886
|
+
const volumeDepth = baseDepth * Math.sign(modLfoToVolume);
|
|
887
887
|
note.volumeDepth.gain
|
|
888
888
|
.cancelScheduledValues(now)
|
|
889
|
-
.setValueAtTime(volumeDepth
|
|
889
|
+
.setValueAtTime(volumeDepth, now);
|
|
890
890
|
}
|
|
891
891
|
setDelayModLFO(note) {
|
|
892
892
|
const now = this.audioContext.currentTime;
|
package/script/midy.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export class Midy {
|
|
|
3
3
|
currentBufferSource: null;
|
|
4
4
|
detune: number;
|
|
5
5
|
scaleOctaveTuningTable: any[];
|
|
6
|
+
pressureTable: Uint8Array<ArrayBuffer>;
|
|
7
|
+
keyBasedInstrumentControlTable: Int8Array<ArrayBuffer>;
|
|
6
8
|
program: number;
|
|
7
9
|
bank: number;
|
|
8
10
|
bankMSB: number;
|
|
@@ -81,8 +83,8 @@ export class Midy {
|
|
|
81
83
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
82
84
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
83
85
|
modLfoToVolume: (channel: any, note: any) => void;
|
|
84
|
-
chorusEffectsSend: (
|
|
85
|
-
reverbEffectsSend: (
|
|
86
|
+
chorusEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
87
|
+
reverbEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
86
88
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
87
89
|
freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
88
90
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
@@ -200,6 +202,7 @@ export class Midy {
|
|
|
200
202
|
calcChannelDetune(channel: any): any;
|
|
201
203
|
calcNoteDetune(channel: any, note: any): any;
|
|
202
204
|
updateDetune(channel: any): void;
|
|
205
|
+
getPortamentoTime(channel: any): number;
|
|
203
206
|
setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
|
|
204
207
|
setVolumeEnvelope(channel: any, note: any): void;
|
|
205
208
|
setPitchEnvelope(note: any): void;
|
|
@@ -220,15 +223,16 @@ export class Midy {
|
|
|
220
223
|
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<any>;
|
|
221
224
|
handlePolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any): void;
|
|
222
225
|
handleProgramChange(channelNumber: any, program: any): void;
|
|
223
|
-
handleChannelPressure(channelNumber: any,
|
|
226
|
+
handleChannelPressure(channelNumber: any, value: any): void;
|
|
227
|
+
setChannelPressure(channel: any, note: any): void;
|
|
224
228
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
225
229
|
setPitchBend(channelNumber: any, value: any): void;
|
|
226
230
|
setModLfoToPitch(channel: any, note: any): void;
|
|
227
231
|
setVibLfoToPitch(channel: any, note: any): void;
|
|
228
|
-
setModLfoToFilterFc(note: any): void;
|
|
229
|
-
setModLfoToVolume(note: any): void;
|
|
230
|
-
|
|
231
|
-
|
|
232
|
+
setModLfoToFilterFc(channel: any, note: any): void;
|
|
233
|
+
setModLfoToVolume(channel: any, note: any): void;
|
|
234
|
+
setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
235
|
+
setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
232
236
|
setDelayModLFO(note: any): void;
|
|
233
237
|
setFreqModLFO(note: any): void;
|
|
234
238
|
createVoiceParamsHandlers(): {
|
|
@@ -236,14 +240,14 @@ export class Midy {
|
|
|
236
240
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
237
241
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
238
242
|
modLfoToVolume: (channel: any, note: any) => void;
|
|
239
|
-
chorusEffectsSend: (
|
|
240
|
-
reverbEffectsSend: (
|
|
243
|
+
chorusEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
244
|
+
reverbEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
241
245
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
242
246
|
freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
243
247
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
244
248
|
freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
|
|
245
249
|
};
|
|
246
|
-
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array
|
|
250
|
+
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
|
|
247
251
|
applyVoiceParams(channel: any, controllerType: any): void;
|
|
248
252
|
createControlChangeHandlers(): {
|
|
249
253
|
0: (channelNumber: any, msb: any) => void;
|
|
@@ -286,11 +290,13 @@ export class Midy {
|
|
|
286
290
|
updateModulation(channel: any): void;
|
|
287
291
|
setModulationDepth(channelNumber: any, modulation: any): void;
|
|
288
292
|
setPortamentoTime(channelNumber: any, portamentoTime: any): void;
|
|
293
|
+
setKeyBasedVolume(channel: any): void;
|
|
289
294
|
setVolume(channelNumber: any, volume: any): void;
|
|
290
295
|
panToGain(pan: any): {
|
|
291
296
|
gainLeft: number;
|
|
292
297
|
gainRight: number;
|
|
293
298
|
};
|
|
299
|
+
setKeyBasedPan(channel: any): void;
|
|
294
300
|
setPan(channelNumber: any, pan: any): void;
|
|
295
301
|
setExpression(channelNumber: any, expression: any): void;
|
|
296
302
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
@@ -343,8 +349,6 @@ export class Midy {
|
|
|
343
349
|
setMasterFineTuning(value: any): void;
|
|
344
350
|
handleMasterCoarseTuningSysEx(data: any): void;
|
|
345
351
|
setMasterCoarseTuning(value: any): void;
|
|
346
|
-
getChannelBitmap(data: any): any[];
|
|
347
|
-
handleScaleOctaveTuning1ByteFormat(data: any): void;
|
|
348
352
|
handleGlobalParameterControlSysEx(data: any): void;
|
|
349
353
|
handleReverbParameterSysEx(data: any): void;
|
|
350
354
|
setReverbType(type: any): void;
|
|
@@ -363,6 +367,11 @@ export class Midy {
|
|
|
363
367
|
getChorusFeedback(value: any): number;
|
|
364
368
|
setChorusSendToReverb(value: any): void;
|
|
365
369
|
getChorusSendToReverb(value: any): number;
|
|
370
|
+
getChannelBitmap(data: any): any[];
|
|
371
|
+
handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
|
|
372
|
+
handleChannelPressureSysEx(data: any): void;
|
|
373
|
+
getKeyBasedInstrumentControlValue(channel: any, keyNumber: any, controllerType: any): number;
|
|
374
|
+
handleKeyBasedInstrumentControlSysEx(data: any): void;
|
|
366
375
|
handleExclusiveMessage(data: any): void;
|
|
367
376
|
handleSysEx(data: any): void;
|
|
368
377
|
scheduleTask(callback: any, startTime: any): Promise<any>;
|
|
@@ -371,7 +380,10 @@ declare class Note {
|
|
|
371
380
|
constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
|
|
372
381
|
bufferSource: any;
|
|
373
382
|
filterNode: any;
|
|
383
|
+
volumeEnvelopeNode: any;
|
|
374
384
|
volumeNode: any;
|
|
385
|
+
gainL: any;
|
|
386
|
+
gainR: any;
|
|
375
387
|
volumeDepth: any;
|
|
376
388
|
modulationLFO: any;
|
|
377
389
|
modulationDepth: any;
|
package/script/midy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}
|