@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/script/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;
|
|
@@ -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/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,
|
|
@@ -224,11 +224,11 @@ class MidyGMLite {
|
|
|
224
224
|
value: new Map()
|
|
225
225
|
});
|
|
226
226
|
this.audioContext = audioContext;
|
|
227
|
-
this.
|
|
227
|
+
this.masterVolume = new GainNode(audioContext);
|
|
228
228
|
this.voiceParamsHandlers = this.createVoiceParamsHandlers();
|
|
229
229
|
this.controlChangeHandlers = this.createControlChangeHandlers();
|
|
230
230
|
this.channels = this.createChannels(audioContext);
|
|
231
|
-
this.
|
|
231
|
+
this.masterVolume.connect(audioContext.destination);
|
|
232
232
|
this.GM1SystemOn();
|
|
233
233
|
}
|
|
234
234
|
initSoundFontTable() {
|
|
@@ -274,7 +274,7 @@ class MidyGMLite {
|
|
|
274
274
|
const merger = new ChannelMergerNode(audioContext, { numberOfInputs: 2 });
|
|
275
275
|
gainL.connect(merger, 0, 0);
|
|
276
276
|
gainR.connect(merger, 0, 1);
|
|
277
|
-
merger.connect(this.
|
|
277
|
+
merger.connect(this.masterVolume);
|
|
278
278
|
return {
|
|
279
279
|
gainL,
|
|
280
280
|
gainR,
|
|
@@ -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;
|
|
@@ -916,7 +916,7 @@ class MidyGMLite {
|
|
|
916
916
|
if (0 < channel.state.modulationDepth)
|
|
917
917
|
this.setModLfoToFilterFc(note);
|
|
918
918
|
},
|
|
919
|
-
modLfoToVolume: (channel, note) => {
|
|
919
|
+
modLfoToVolume: (channel, note, _prevValue) => {
|
|
920
920
|
if (0 < channel.state.modulationDepth)
|
|
921
921
|
this.setModLfoToVolume(note);
|
|
922
922
|
},
|
|
@@ -1002,6 +1002,8 @@ class MidyGMLite {
|
|
|
1002
1002
|
const handler = this.controlChangeHandlers[controllerType];
|
|
1003
1003
|
if (handler) {
|
|
1004
1004
|
handler.call(this, channelNumber, value);
|
|
1005
|
+
const channel = this.channels[channelNumber];
|
|
1006
|
+
this.applyVoiceParams(channel, controller + 128);
|
|
1005
1007
|
}
|
|
1006
1008
|
else {
|
|
1007
1009
|
console.warn(`Unsupported Control change: controllerType=${controllerType} value=${value}`);
|
|
@@ -1009,13 +1011,14 @@ class MidyGMLite {
|
|
|
1009
1011
|
}
|
|
1010
1012
|
updateModulation(channel) {
|
|
1011
1013
|
const now = this.audioContext.currentTime;
|
|
1014
|
+
const depth = channel.state.modulationDepth * channel.modulationDepthRange;
|
|
1012
1015
|
channel.scheduledNotes.forEach((noteList) => {
|
|
1013
1016
|
for (let i = 0; i < noteList.length; i++) {
|
|
1014
1017
|
const note = noteList[i];
|
|
1015
1018
|
if (!note)
|
|
1016
1019
|
continue;
|
|
1017
1020
|
if (note.modulationDepth) {
|
|
1018
|
-
note.modulationDepth.gain.setValueAtTime(
|
|
1021
|
+
note.modulationDepth.gain.setValueAtTime(depth, now);
|
|
1019
1022
|
}
|
|
1020
1023
|
else {
|
|
1021
1024
|
this.setPitchEnvelope(note);
|
|
@@ -1026,8 +1029,7 @@ class MidyGMLite {
|
|
|
1026
1029
|
}
|
|
1027
1030
|
setModulationDepth(channelNumber, modulation) {
|
|
1028
1031
|
const channel = this.channels[channelNumber];
|
|
1029
|
-
channel.state.modulationDepth =
|
|
1030
|
-
channel.modulationDepthRange;
|
|
1032
|
+
channel.state.modulationDepth = modulation / 127;
|
|
1031
1033
|
this.updateModulation(channel);
|
|
1032
1034
|
}
|
|
1033
1035
|
setVolume(channelNumber, volume) {
|
|
@@ -1203,8 +1205,8 @@ class MidyGMLite {
|
|
|
1203
1205
|
}
|
|
1204
1206
|
else {
|
|
1205
1207
|
const now = this.audioContext.currentTime;
|
|
1206
|
-
this.
|
|
1207
|
-
this.
|
|
1208
|
+
this.masterVolume.gain.cancelScheduledValues(now);
|
|
1209
|
+
this.masterVolume.gain.setValueAtTime(volume * volume, now);
|
|
1208
1210
|
}
|
|
1209
1211
|
}
|
|
1210
1212
|
handleExclusiveMessage(data) {
|
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;
|
|
@@ -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/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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"}
|