@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/esm/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;
|
package/esm/midy-GMLite.d.ts.map
CHANGED
|
@@ -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/esm/midy-GMLite.js
CHANGED
|
@@ -14,7 +14,7 @@ class Note {
|
|
|
14
14
|
writable: true,
|
|
15
15
|
value: void 0
|
|
16
16
|
});
|
|
17
|
-
Object.defineProperty(this, "
|
|
17
|
+
Object.defineProperty(this, "volumeEnvelopeNode", {
|
|
18
18
|
enumerable: true,
|
|
19
19
|
configurable: true,
|
|
20
20
|
writable: true,
|
|
@@ -617,7 +617,7 @@ export class MidyGMLite {
|
|
|
617
617
|
const volAttack = volDelay + voiceParams.volAttack;
|
|
618
618
|
const volHold = volAttack + voiceParams.volHold;
|
|
619
619
|
const volDecay = volHold + voiceParams.volDecay;
|
|
620
|
-
note.
|
|
620
|
+
note.volumeEnvelopeNode.gain
|
|
621
621
|
.cancelScheduledValues(now)
|
|
622
622
|
.setValueAtTime(0, startTime)
|
|
623
623
|
.setValueAtTime(1e-6, volDelay) // exponentialRampToValueAtTime() requires a non-zero value
|
|
@@ -693,14 +693,14 @@ export class MidyGMLite {
|
|
|
693
693
|
note.modulationLFO.connect(note.modulationDepth);
|
|
694
694
|
note.modulationDepth.connect(note.bufferSource.detune);
|
|
695
695
|
note.modulationLFO.connect(note.volumeDepth);
|
|
696
|
-
note.volumeDepth.connect(note.
|
|
696
|
+
note.volumeDepth.connect(note.volumeEnvelopeNode.gain);
|
|
697
697
|
}
|
|
698
698
|
async createNote(channel, voice, noteNumber, velocity, startTime, isSF3) {
|
|
699
699
|
const state = channel.state;
|
|
700
700
|
const voiceParams = voice.getAllParams(state.array);
|
|
701
701
|
const note = new Note(noteNumber, velocity, startTime, voice, voiceParams);
|
|
702
702
|
note.bufferSource = await this.createNoteBufferNode(voiceParams, isSF3);
|
|
703
|
-
note.
|
|
703
|
+
note.volumeEnvelopeNode = new GainNode(this.audioContext);
|
|
704
704
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
705
705
|
type: "lowpass",
|
|
706
706
|
Q: voiceParams.initialFilterQ / 10, // dB
|
|
@@ -712,7 +712,7 @@ export class MidyGMLite {
|
|
|
712
712
|
this.startModulation(channel, note, startTime);
|
|
713
713
|
}
|
|
714
714
|
note.bufferSource.connect(note.filterNode);
|
|
715
|
-
note.filterNode.connect(note.
|
|
715
|
+
note.filterNode.connect(note.volumeEnvelopeNode);
|
|
716
716
|
note.bufferSource.start(startTime);
|
|
717
717
|
return note;
|
|
718
718
|
}
|
|
@@ -728,8 +728,8 @@ export class MidyGMLite {
|
|
|
728
728
|
if (!voice)
|
|
729
729
|
return;
|
|
730
730
|
const note = await this.createNote(channel, voice, noteNumber, velocity, startTime, isSF3);
|
|
731
|
-
note.
|
|
732
|
-
note.
|
|
731
|
+
note.volumeEnvelopeNode.connect(channel.gainL);
|
|
732
|
+
note.volumeEnvelopeNode.connect(channel.gainR);
|
|
733
733
|
const exclusiveClass = note.voiceParams.exclusiveClass;
|
|
734
734
|
if (exclusiveClass !== 0) {
|
|
735
735
|
if (this.exclusiveClassMap.has(exclusiveClass)) {
|
|
@@ -757,7 +757,7 @@ export class MidyGMLite {
|
|
|
757
757
|
}
|
|
758
758
|
stopNote(endTime, stopTime, scheduledNotes, index) {
|
|
759
759
|
const note = scheduledNotes[index];
|
|
760
|
-
note.
|
|
760
|
+
note.volumeEnvelopeNode.gain
|
|
761
761
|
.cancelScheduledValues(endTime)
|
|
762
762
|
.linearRampToValueAtTime(0, stopTime);
|
|
763
763
|
note.ending = true;
|
|
@@ -768,8 +768,8 @@ export class MidyGMLite {
|
|
|
768
768
|
note.bufferSource.onended = () => {
|
|
769
769
|
scheduledNotes[index] = null;
|
|
770
770
|
note.bufferSource.disconnect();
|
|
771
|
-
note.volumeNode.disconnect();
|
|
772
771
|
note.filterNode.disconnect();
|
|
772
|
+
note.volumeEnvelopeNode.disconnect();
|
|
773
773
|
if (note.modulationDepth) {
|
|
774
774
|
note.volumeDepth.disconnect();
|
|
775
775
|
note.modulationDepth.disconnect();
|
|
@@ -862,12 +862,12 @@ export class MidyGMLite {
|
|
|
862
862
|
setModLfoToPitch(channel, note) {
|
|
863
863
|
const now = this.audioContext.currentTime;
|
|
864
864
|
const modLfoToPitch = note.voiceParams.modLfoToPitch;
|
|
865
|
-
const
|
|
865
|
+
const baseDepth = Math.abs(modLfoToPitch) +
|
|
866
866
|
channel.state.modulationDepth;
|
|
867
|
-
const
|
|
867
|
+
const modulationDepth = baseDepth * Math.sign(modLfoToPitch);
|
|
868
868
|
note.modulationDepth.gain
|
|
869
869
|
.cancelScheduledValues(now)
|
|
870
|
-
.setValueAtTime(modulationDepth
|
|
870
|
+
.setValueAtTime(modulationDepth, now);
|
|
871
871
|
}
|
|
872
872
|
setModLfoToFilterFc(note) {
|
|
873
873
|
const now = this.audioContext.currentTime;
|
|
@@ -879,11 +879,11 @@ export class MidyGMLite {
|
|
|
879
879
|
setModLfoToVolume(note) {
|
|
880
880
|
const now = this.audioContext.currentTime;
|
|
881
881
|
const modLfoToVolume = note.voiceParams.modLfoToVolume;
|
|
882
|
-
const
|
|
883
|
-
const
|
|
882
|
+
const baseDepth = this.cbToRatio(Math.abs(modLfoToVolume)) - 1;
|
|
883
|
+
const volumeDepth = baseDepth * Math.sign(modLfoToVolume);
|
|
884
884
|
note.volumeDepth.gain
|
|
885
885
|
.cancelScheduledValues(now)
|
|
886
|
-
.setValueAtTime(volumeDepth
|
|
886
|
+
.setValueAtTime(volumeDepth, now);
|
|
887
887
|
}
|
|
888
888
|
setDelayModLFO(note) {
|
|
889
889
|
const now = this.audioContext.currentTime;
|
package/esm/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/esm/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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"}
|