@marmooo/midy 0.2.1 → 0.2.3
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/README.md +3 -5
- package/esm/midy-GM1.d.ts +5 -5
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +32 -29
- package/esm/midy-GM2.d.ts +35 -19
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +350 -155
- package/esm/midy-GMLite.d.ts +5 -5
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +26 -24
- package/esm/midy.d.ts +30 -15
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +312 -139
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +5 -5
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +32 -29
- package/script/midy-GM2.d.ts +35 -19
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +350 -155
- package/script/midy-GMLite.d.ts +5 -5
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +26 -24
- package/script/midy.d.ts +30 -15
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +312 -139
package/esm/midy-GMLite.d.ts
CHANGED
|
@@ -29,12 +29,12 @@ export class MidyGMLite {
|
|
|
29
29
|
notePromises: any[];
|
|
30
30
|
exclusiveClassMap: Map<any, any>;
|
|
31
31
|
audioContext: any;
|
|
32
|
-
|
|
32
|
+
masterVolume: any;
|
|
33
33
|
voiceParamsHandlers: {
|
|
34
34
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
35
35
|
vibLfoToPitch: (_channel: any, _note: any, _prevValue: any) => void;
|
|
36
36
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
37
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
37
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
38
38
|
chorusEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
39
39
|
reverbEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
40
40
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
@@ -120,7 +120,7 @@ export class MidyGMLite {
|
|
|
120
120
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
121
121
|
vibLfoToPitch: (_channel: any, _note: any, _prevValue: any) => void;
|
|
122
122
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
123
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
123
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
124
124
|
chorusEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
125
125
|
reverbEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
126
126
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
@@ -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,
|
|
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,kBAA8C;IAC9C;;;;;;;;;;;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,+EAWC;IAED,qCAeC;IAED,8DAIC;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;AAptCD;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,
|
|
@@ -221,11 +221,11 @@ export class MidyGMLite {
|
|
|
221
221
|
value: new Map()
|
|
222
222
|
});
|
|
223
223
|
this.audioContext = audioContext;
|
|
224
|
-
this.
|
|
224
|
+
this.masterVolume = new GainNode(audioContext);
|
|
225
225
|
this.voiceParamsHandlers = this.createVoiceParamsHandlers();
|
|
226
226
|
this.controlChangeHandlers = this.createControlChangeHandlers();
|
|
227
227
|
this.channels = this.createChannels(audioContext);
|
|
228
|
-
this.
|
|
228
|
+
this.masterVolume.connect(audioContext.destination);
|
|
229
229
|
this.GM1SystemOn();
|
|
230
230
|
}
|
|
231
231
|
initSoundFontTable() {
|
|
@@ -271,7 +271,7 @@ export class MidyGMLite {
|
|
|
271
271
|
const merger = new ChannelMergerNode(audioContext, { numberOfInputs: 2 });
|
|
272
272
|
gainL.connect(merger, 0, 0);
|
|
273
273
|
gainR.connect(merger, 0, 1);
|
|
274
|
-
merger.connect(this.
|
|
274
|
+
merger.connect(this.masterVolume);
|
|
275
275
|
return {
|
|
276
276
|
gainL,
|
|
277
277
|
gainR,
|
|
@@ -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;
|
|
@@ -913,7 +913,7 @@ export class MidyGMLite {
|
|
|
913
913
|
if (0 < channel.state.modulationDepth)
|
|
914
914
|
this.setModLfoToFilterFc(note);
|
|
915
915
|
},
|
|
916
|
-
modLfoToVolume: (channel, note) => {
|
|
916
|
+
modLfoToVolume: (channel, note, _prevValue) => {
|
|
917
917
|
if (0 < channel.state.modulationDepth)
|
|
918
918
|
this.setModLfoToVolume(note);
|
|
919
919
|
},
|
|
@@ -999,6 +999,8 @@ export class MidyGMLite {
|
|
|
999
999
|
const handler = this.controlChangeHandlers[controllerType];
|
|
1000
1000
|
if (handler) {
|
|
1001
1001
|
handler.call(this, channelNumber, value);
|
|
1002
|
+
const channel = this.channels[channelNumber];
|
|
1003
|
+
this.applyVoiceParams(channel, controller + 128);
|
|
1002
1004
|
}
|
|
1003
1005
|
else {
|
|
1004
1006
|
console.warn(`Unsupported Control change: controllerType=${controllerType} value=${value}`);
|
|
@@ -1006,13 +1008,14 @@ export class MidyGMLite {
|
|
|
1006
1008
|
}
|
|
1007
1009
|
updateModulation(channel) {
|
|
1008
1010
|
const now = this.audioContext.currentTime;
|
|
1011
|
+
const depth = channel.state.modulationDepth * channel.modulationDepthRange;
|
|
1009
1012
|
channel.scheduledNotes.forEach((noteList) => {
|
|
1010
1013
|
for (let i = 0; i < noteList.length; i++) {
|
|
1011
1014
|
const note = noteList[i];
|
|
1012
1015
|
if (!note)
|
|
1013
1016
|
continue;
|
|
1014
1017
|
if (note.modulationDepth) {
|
|
1015
|
-
note.modulationDepth.gain.setValueAtTime(
|
|
1018
|
+
note.modulationDepth.gain.setValueAtTime(depth, now);
|
|
1016
1019
|
}
|
|
1017
1020
|
else {
|
|
1018
1021
|
this.setPitchEnvelope(note);
|
|
@@ -1023,8 +1026,7 @@ export class MidyGMLite {
|
|
|
1023
1026
|
}
|
|
1024
1027
|
setModulationDepth(channelNumber, modulation) {
|
|
1025
1028
|
const channel = this.channels[channelNumber];
|
|
1026
|
-
channel.state.modulationDepth =
|
|
1027
|
-
channel.modulationDepthRange;
|
|
1029
|
+
channel.state.modulationDepth = modulation / 127;
|
|
1028
1030
|
this.updateModulation(channel);
|
|
1029
1031
|
}
|
|
1030
1032
|
setVolume(channelNumber, volume) {
|
|
@@ -1200,8 +1202,8 @@ export class MidyGMLite {
|
|
|
1200
1202
|
}
|
|
1201
1203
|
else {
|
|
1202
1204
|
const now = this.audioContext.currentTime;
|
|
1203
|
-
this.
|
|
1204
|
-
this.
|
|
1205
|
+
this.masterVolume.gain.cancelScheduledValues(now);
|
|
1206
|
+
this.masterVolume.gain.setValueAtTime(volume * volume, now);
|
|
1205
1207
|
}
|
|
1206
1208
|
}
|
|
1207
1209
|
handleExclusiveMessage(data) {
|
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;
|
|
@@ -75,14 +77,14 @@ export class Midy {
|
|
|
75
77
|
output: any;
|
|
76
78
|
};
|
|
77
79
|
};
|
|
78
|
-
|
|
80
|
+
masterVolume: any;
|
|
79
81
|
voiceParamsHandlers: {
|
|
80
82
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
81
83
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
82
84
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
83
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
84
|
-
chorusEffectsSend: (
|
|
85
|
-
reverbEffectsSend: (
|
|
85
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
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,30 +223,30 @@ 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;
|
|
224
227
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
225
228
|
setPitchBend(channelNumber: any, value: any): void;
|
|
226
229
|
setModLfoToPitch(channel: any, note: any): void;
|
|
227
230
|
setVibLfoToPitch(channel: any, note: any): void;
|
|
228
|
-
setModLfoToFilterFc(note: any): void;
|
|
229
|
-
setModLfoToVolume(note: any): void;
|
|
230
|
-
|
|
231
|
-
|
|
231
|
+
setModLfoToFilterFc(channel: any, note: any): void;
|
|
232
|
+
setModLfoToVolume(channel: any, note: any): void;
|
|
233
|
+
setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
234
|
+
setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
232
235
|
setDelayModLFO(note: any): void;
|
|
233
236
|
setFreqModLFO(note: any): void;
|
|
234
237
|
createVoiceParamsHandlers(): {
|
|
235
238
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
236
239
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
237
240
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
238
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
239
|
-
chorusEffectsSend: (
|
|
240
|
-
reverbEffectsSend: (
|
|
241
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
242
|
+
chorusEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
243
|
+
reverbEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
241
244
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
242
245
|
freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
243
246
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
244
247
|
freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
|
|
245
248
|
};
|
|
246
|
-
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array
|
|
249
|
+
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
|
|
247
250
|
applyVoiceParams(channel: any, controllerType: any): void;
|
|
248
251
|
createControlChangeHandlers(): {
|
|
249
252
|
0: (channelNumber: any, msb: any) => void;
|
|
@@ -286,11 +289,13 @@ export class Midy {
|
|
|
286
289
|
updateModulation(channel: any): void;
|
|
287
290
|
setModulationDepth(channelNumber: any, modulation: any): void;
|
|
288
291
|
setPortamentoTime(channelNumber: any, portamentoTime: any): void;
|
|
292
|
+
setKeyBasedVolume(channel: any): void;
|
|
289
293
|
setVolume(channelNumber: any, volume: any): void;
|
|
290
294
|
panToGain(pan: any): {
|
|
291
295
|
gainLeft: number;
|
|
292
296
|
gainRight: number;
|
|
293
297
|
};
|
|
298
|
+
setKeyBasedPan(channel: any): void;
|
|
294
299
|
setPan(channelNumber: any, pan: any): void;
|
|
295
300
|
setExpression(channelNumber: any, expression: any): void;
|
|
296
301
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
@@ -343,8 +348,6 @@ export class Midy {
|
|
|
343
348
|
setMasterFineTuning(value: any): void;
|
|
344
349
|
handleMasterCoarseTuningSysEx(data: any): void;
|
|
345
350
|
setMasterCoarseTuning(value: any): void;
|
|
346
|
-
getChannelBitmap(data: any): any[];
|
|
347
|
-
handleScaleOctaveTuning1ByteFormat(data: any): void;
|
|
348
351
|
handleGlobalParameterControlSysEx(data: any): void;
|
|
349
352
|
handleReverbParameterSysEx(data: any): void;
|
|
350
353
|
setReverbType(type: any): void;
|
|
@@ -363,6 +366,15 @@ export class Midy {
|
|
|
363
366
|
getChorusFeedback(value: any): number;
|
|
364
367
|
setChorusSendToReverb(value: any): void;
|
|
365
368
|
getChorusSendToReverb(value: any): number;
|
|
369
|
+
getChannelBitmap(data: any): any[];
|
|
370
|
+
handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
|
|
371
|
+
applyDestinationSettings(channel: any, note: any, table: any): void;
|
|
372
|
+
handleChannelPressureSysEx(data: any): void;
|
|
373
|
+
initControlTable(): Uint8Array<ArrayBuffer>;
|
|
374
|
+
applyControlTable(channel: any, controllerType: any): void;
|
|
375
|
+
handleControlChangeSysEx(data: any): void;
|
|
376
|
+
getKeyBasedInstrumentControlValue(channel: any, keyNumber: any, controllerType: any): number;
|
|
377
|
+
handleKeyBasedInstrumentControlSysEx(data: any): void;
|
|
366
378
|
handleExclusiveMessage(data: any): void;
|
|
367
379
|
handleSysEx(data: any): void;
|
|
368
380
|
scheduleTask(callback: any, startTime: any): Promise<any>;
|
|
@@ -371,7 +383,10 @@ declare class Note {
|
|
|
371
383
|
constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
|
|
372
384
|
bufferSource: any;
|
|
373
385
|
filterNode: any;
|
|
386
|
+
volumeEnvelopeNode: any;
|
|
374
387
|
volumeNode: any;
|
|
388
|
+
gainL: any;
|
|
389
|
+
gainR: any;
|
|
375
390
|
volumeDepth: any;
|
|
376
391
|
modulationLFO: any;
|
|
377
392
|
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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"}
|