@marmooo/midy 0.1.5 → 0.1.6
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 +7 -7
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +62 -59
- package/esm/midy-GM2.d.ts +12 -9
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +156 -79
- package/esm/midy-GMLite.d.ts +7 -7
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +62 -59
- package/esm/midy.d.ts +12 -9
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +156 -83
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +7 -7
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +62 -59
- package/script/midy-GM2.d.ts +12 -9
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +156 -79
- package/script/midy-GMLite.d.ts +7 -7
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +62 -59
- package/script/midy.d.ts +12 -9
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +156 -83
package/esm/midy-GM1.d.ts
CHANGED
|
@@ -66,7 +66,6 @@ export class MidyGM1 {
|
|
|
66
66
|
createChannels(audioContext: any): any[];
|
|
67
67
|
createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
|
|
68
68
|
createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
|
|
69
|
-
convertToFloat32Array(uint8Array: any): Float32Array;
|
|
70
69
|
scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
|
|
71
70
|
getQueueIndex(second: any): number;
|
|
72
71
|
playNotes(): Promise<any>;
|
|
@@ -76,8 +75,8 @@ export class MidyGM1 {
|
|
|
76
75
|
instruments: Set<any>;
|
|
77
76
|
timeline: any[];
|
|
78
77
|
};
|
|
79
|
-
stopChannelNotes(channelNumber: any, velocity: any,
|
|
80
|
-
stopNotes(velocity: any,
|
|
78
|
+
stopChannelNotes(channelNumber: any, velocity: any, force: any): Promise<void>;
|
|
79
|
+
stopNotes(velocity: any, force: any): Promise<any[]>;
|
|
81
80
|
start(): Promise<void>;
|
|
82
81
|
stop(): void;
|
|
83
82
|
pause(): void;
|
|
@@ -99,10 +98,11 @@ export class MidyGM1 {
|
|
|
99
98
|
createNote(channel: any, instrumentKey: any, noteNumber: any, velocity: any, startTime: any, isSF3: any): Promise<Note>;
|
|
100
99
|
scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
|
|
101
100
|
noteOn(channelNumber: any, noteNumber: any, velocity: any): Promise<void>;
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
stopNote(stopTime: any, endTime: any, scheduledNotes: any, index: any): Promise<any>;
|
|
102
|
+
scheduleNoteRelease(channelNumber: any, noteNumber: any, _velocity: any, stopTime: any, force: any): void;
|
|
103
|
+
releaseNote(channelNumber: any, noteNumber: any, velocity: any): void;
|
|
104
104
|
releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
|
|
105
|
-
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<
|
|
105
|
+
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<void>;
|
|
106
106
|
handleProgramChange(channelNumber: any, program: any): void;
|
|
107
107
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
108
108
|
setPitchBend(channelNumber: any, pitchBend: any): void;
|
|
@@ -131,7 +131,7 @@ export class MidyGM1 {
|
|
|
131
131
|
setPan(channelNumber: any, pan: any): void;
|
|
132
132
|
setExpression(channelNumber: any, expression: any): void;
|
|
133
133
|
dataEntryLSB(channelNumber: any, value: any): void;
|
|
134
|
-
|
|
134
|
+
updateChannelVolume(channel: any): void;
|
|
135
135
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
136
136
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
137
137
|
limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
|
package/esm/midy-GM1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAwBA;IAmBE;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAOC;IA/CD,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;IAyBhB,kBAAgC;IAChC,gBAA4C;IAC5C;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,
|
|
1
|
+
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAwBA;IAmBE;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAOC;IA/CD,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;IAyBhB,kBAAgC;IAChC,gBAA4C;IAC5C;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,+DAuBC;IAED,mEAWC;IAED,2EA+CC;IAED,mCAOC;IAED,0BA+CC;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,4BAEC;IAED,sCAGC;IAED,mFAGC;IAED,mCAeC;IAED,+CAwBC;IAED,6CAIC;IAED,mCAsBC;IAED,+DA0BC;IAED,wHAgCC;IAED,kGA8BC;IAED,0EAGC;IAED,qFA4BC;IAED,0GAsBC;IAED,sEAGC;IAED,kEAeC;IAED,iFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,uDAOC;IAED;;;;;;;;;;;;;MAeC;IAED,2EASC;IAED,qCAkBC;IAED,8DAIC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,wCAUC;IAED,sDAMC;IAED,kFAeC;IAED,2DAMC;IAED,oCAkBC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAaC;IAED,kDAKC;IAED,iEAOC;IAED,8CAKC;IAED,yDAMC;IAED,gDAKC;IAED,6DAMC;IAED,+CAEC;IAED,8CAEC;IAED,+CAEC;IAED,4DAgBC;IAED,oBASC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAnjCD;IAUE,gFAKC;IAdD,kBAAa;IACb,gBAAW;IACX,gBAAW;IACX,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAChB,gBAAW;IACX,kBAAa;IAGX,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
|
package/esm/midy-GM1.js
CHANGED
|
@@ -177,12 +177,14 @@ export class MidyGM1 {
|
|
|
177
177
|
addSoundFont(soundFont) {
|
|
178
178
|
const index = this.soundFonts.length;
|
|
179
179
|
this.soundFonts.push(soundFont);
|
|
180
|
-
soundFont.parsed.presetHeaders
|
|
180
|
+
const presetHeaders = soundFont.parsed.presetHeaders;
|
|
181
|
+
for (let i = 0; i < presetHeaders.length; i++) {
|
|
182
|
+
const presetHeader = presetHeaders[i];
|
|
181
183
|
if (!presetHeader.presetName.startsWith("\u0000")) { // TODO: Only SF3 generated by PolyPone?
|
|
182
184
|
const banks = this.soundFontTable[presetHeader.preset];
|
|
183
185
|
banks.set(presetHeader.bank, index);
|
|
184
186
|
}
|
|
185
|
-
}
|
|
187
|
+
}
|
|
186
188
|
}
|
|
187
189
|
async loadSoundFont(soundFontUrl) {
|
|
188
190
|
const response = await fetch(soundFontUrl);
|
|
@@ -227,27 +229,25 @@ export class MidyGM1 {
|
|
|
227
229
|
return channels;
|
|
228
230
|
}
|
|
229
231
|
async createNoteBuffer(instrumentKey, isSF3) {
|
|
232
|
+
const sampleStart = instrumentKey.start;
|
|
230
233
|
const sampleEnd = instrumentKey.sample.length + instrumentKey.end;
|
|
231
234
|
if (isSF3) {
|
|
232
|
-
const sample =
|
|
233
|
-
sample.set(instrumentKey.sample);
|
|
235
|
+
const sample = instrumentKey.sample.slice(sampleStart, sampleEnd);
|
|
234
236
|
const audioBuffer = await this.audioContext.decodeAudioData(sample.buffer);
|
|
235
|
-
for (let channel = 0; channel < audioBuffer.numberOfChannels; channel++) {
|
|
236
|
-
const channelData = audioBuffer.getChannelData(channel);
|
|
237
|
-
channelData.set(channelData.subarray(0, sampleEnd));
|
|
238
|
-
}
|
|
239
237
|
return audioBuffer;
|
|
240
238
|
}
|
|
241
239
|
else {
|
|
242
|
-
const sample = instrumentKey.sample.subarray(
|
|
243
|
-
const floatSample = this.convertToFloat32Array(sample);
|
|
240
|
+
const sample = instrumentKey.sample.subarray(sampleStart, sampleEnd);
|
|
244
241
|
const audioBuffer = new AudioBuffer({
|
|
245
242
|
numberOfChannels: 1,
|
|
246
243
|
length: sample.length,
|
|
247
244
|
sampleRate: instrumentKey.sampleRate,
|
|
248
245
|
});
|
|
249
246
|
const channelData = audioBuffer.getChannelData(0);
|
|
250
|
-
|
|
247
|
+
const int16Array = new Int16Array(sample.buffer);
|
|
248
|
+
for (let i = 0; i < int16Array.length; i++) {
|
|
249
|
+
channelData[i] = int16Array[i] / 32768;
|
|
250
|
+
}
|
|
251
251
|
return audioBuffer;
|
|
252
252
|
}
|
|
253
253
|
}
|
|
@@ -263,14 +263,6 @@ export class MidyGM1 {
|
|
|
263
263
|
}
|
|
264
264
|
return bufferSource;
|
|
265
265
|
}
|
|
266
|
-
convertToFloat32Array(uint8Array) {
|
|
267
|
-
const int16Array = new Int16Array(uint8Array.buffer);
|
|
268
|
-
const float32Array = new Float32Array(int16Array.length);
|
|
269
|
-
for (let i = 0; i < int16Array.length; i++) {
|
|
270
|
-
float32Array[i] = int16Array[i] / 32768;
|
|
271
|
-
}
|
|
272
|
-
return float32Array;
|
|
273
|
-
}
|
|
274
266
|
async scheduleTimelineEvents(t, offset, queueIndex) {
|
|
275
267
|
while (queueIndex < this.timeline.length) {
|
|
276
268
|
const event = this.timeline[queueIndex];
|
|
@@ -381,9 +373,11 @@ export class MidyGM1 {
|
|
|
381
373
|
bank: this.channels[i].bank,
|
|
382
374
|
};
|
|
383
375
|
}
|
|
384
|
-
midi.tracks.
|
|
376
|
+
for (let i = 0; i < midi.tracks.length; i++) {
|
|
377
|
+
const track = midi.tracks[i];
|
|
385
378
|
let currentTicks = 0;
|
|
386
|
-
track.
|
|
379
|
+
for (let j = 0; j < track.length; j++) {
|
|
380
|
+
const event = track[j];
|
|
387
381
|
currentTicks += event.deltaTime;
|
|
388
382
|
event.ticks = currentTicks;
|
|
389
383
|
switch (event.type) {
|
|
@@ -403,8 +397,8 @@ export class MidyGM1 {
|
|
|
403
397
|
}
|
|
404
398
|
delete event.deltaTime;
|
|
405
399
|
timeline.push(event);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
408
402
|
const priority = {
|
|
409
403
|
controller: 0,
|
|
410
404
|
sysEx: 1,
|
|
@@ -429,7 +423,7 @@ export class MidyGM1 {
|
|
|
429
423
|
}
|
|
430
424
|
return { instruments, timeline };
|
|
431
425
|
}
|
|
432
|
-
async stopChannelNotes(channelNumber, velocity,
|
|
426
|
+
async stopChannelNotes(channelNumber, velocity, force) {
|
|
433
427
|
const now = this.audioContext.currentTime;
|
|
434
428
|
const channel = this.channels[channelNumber];
|
|
435
429
|
channel.scheduledNotes.forEach((noteList) => {
|
|
@@ -437,16 +431,16 @@ export class MidyGM1 {
|
|
|
437
431
|
const note = noteList[i];
|
|
438
432
|
if (!note)
|
|
439
433
|
continue;
|
|
440
|
-
const promise = this.scheduleNoteRelease(channelNumber, note.noteNumber, velocity, now,
|
|
434
|
+
const promise = this.scheduleNoteRelease(channelNumber, note.noteNumber, velocity, now, force);
|
|
441
435
|
this.notePromises.push(promise);
|
|
442
436
|
}
|
|
443
437
|
});
|
|
444
438
|
channel.scheduledNotes.clear();
|
|
445
439
|
await Promise.all(this.notePromises);
|
|
446
440
|
}
|
|
447
|
-
stopNotes(velocity,
|
|
441
|
+
stopNotes(velocity, force) {
|
|
448
442
|
for (let i = 0; i < this.channels.length; i++) {
|
|
449
|
-
this.stopChannelNotes(i, velocity,
|
|
443
|
+
this.stopChannelNotes(i, velocity, force);
|
|
450
444
|
}
|
|
451
445
|
return Promise.all(this.notePromises);
|
|
452
446
|
}
|
|
@@ -623,7 +617,7 @@ export class MidyGM1 {
|
|
|
623
617
|
note.volumeNode = new GainNode(this.audioContext);
|
|
624
618
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
625
619
|
type: "lowpass",
|
|
626
|
-
Q: instrumentKey.initialFilterQ / 10
|
|
620
|
+
Q: instrumentKey.initialFilterQ / 10, // dB
|
|
627
621
|
});
|
|
628
622
|
this.setVolumeEnvelope(note);
|
|
629
623
|
this.setFilterEnvelope(note);
|
|
@@ -636,7 +630,7 @@ export class MidyGM1 {
|
|
|
636
630
|
}
|
|
637
631
|
note.bufferSource.connect(note.filterNode);
|
|
638
632
|
note.filterNode.connect(note.volumeNode);
|
|
639
|
-
note.bufferSource.start(startTime
|
|
633
|
+
note.bufferSource.start(startTime);
|
|
640
634
|
return note;
|
|
641
635
|
}
|
|
642
636
|
async scheduleNoteOn(channelNumber, noteNumber, velocity, startTime) {
|
|
@@ -665,9 +659,38 @@ export class MidyGM1 {
|
|
|
665
659
|
const now = this.audioContext.currentTime;
|
|
666
660
|
return this.scheduleNoteOn(channelNumber, noteNumber, velocity, now);
|
|
667
661
|
}
|
|
668
|
-
|
|
662
|
+
stopNote(stopTime, endTime, scheduledNotes, index) {
|
|
663
|
+
const note = scheduledNotes[index];
|
|
664
|
+
note.volumeNode.gain
|
|
665
|
+
.cancelScheduledValues(stopTime)
|
|
666
|
+
.linearRampToValueAtTime(0, endTime);
|
|
667
|
+
note.ending = true;
|
|
668
|
+
this.scheduleTask(() => {
|
|
669
|
+
note.bufferSource.loop = false;
|
|
670
|
+
}, endTime);
|
|
671
|
+
return new Promise((resolve) => {
|
|
672
|
+
note.bufferSource.onended = () => {
|
|
673
|
+
scheduledNotes[index] = null;
|
|
674
|
+
note.bufferSource.disconnect();
|
|
675
|
+
note.volumeNode.disconnect();
|
|
676
|
+
note.filterNode.disconnect();
|
|
677
|
+
if (note.modulationDepth) {
|
|
678
|
+
note.volumeDepth.disconnect();
|
|
679
|
+
note.modulationDepth.disconnect();
|
|
680
|
+
note.modulationLFO.stop();
|
|
681
|
+
}
|
|
682
|
+
if (note.vibratoDepth) {
|
|
683
|
+
note.vibratoDepth.disconnect();
|
|
684
|
+
note.vibratoLFO.stop();
|
|
685
|
+
}
|
|
686
|
+
resolve();
|
|
687
|
+
};
|
|
688
|
+
note.bufferSource.stop(endTime);
|
|
689
|
+
});
|
|
690
|
+
}
|
|
691
|
+
scheduleNoteRelease(channelNumber, noteNumber, _velocity, stopTime, force) {
|
|
669
692
|
const channel = this.channels[channelNumber];
|
|
670
|
-
if (
|
|
693
|
+
if (!force && channel.sustainPedal)
|
|
671
694
|
return;
|
|
672
695
|
if (!channel.scheduledNotes.has(noteNumber))
|
|
673
696
|
return;
|
|
@@ -679,32 +702,11 @@ export class MidyGM1 {
|
|
|
679
702
|
if (note.ending)
|
|
680
703
|
continue;
|
|
681
704
|
const volEndTime = stopTime + note.instrumentKey.volRelease;
|
|
682
|
-
note.volumeNode.gain
|
|
683
|
-
.cancelScheduledValues(stopTime)
|
|
684
|
-
.linearRampToValueAtTime(0, volEndTime);
|
|
685
705
|
const modRelease = stopTime + note.instrumentKey.modRelease;
|
|
686
706
|
note.filterNode.frequency
|
|
687
707
|
.cancelScheduledValues(stopTime)
|
|
688
708
|
.linearRampToValueAtTime(0, modRelease);
|
|
689
|
-
|
|
690
|
-
this.scheduleTask(() => {
|
|
691
|
-
note.bufferSource.loop = false;
|
|
692
|
-
}, stopTime);
|
|
693
|
-
return new Promise((resolve) => {
|
|
694
|
-
note.bufferSource.onended = () => {
|
|
695
|
-
scheduledNotes[i] = null;
|
|
696
|
-
note.bufferSource.disconnect();
|
|
697
|
-
note.volumeNode.disconnect();
|
|
698
|
-
note.filterNode.disconnect();
|
|
699
|
-
if (note.modulationDepth) {
|
|
700
|
-
note.volumeDepth.disconnect();
|
|
701
|
-
note.modulationDepth.disconnect();
|
|
702
|
-
note.modulationLFO.stop();
|
|
703
|
-
}
|
|
704
|
-
resolve();
|
|
705
|
-
};
|
|
706
|
-
note.bufferSource.stop(volEndTime);
|
|
707
|
-
});
|
|
709
|
+
this.stopNote(stopTime, volEndTime, scheduledNotes, i);
|
|
708
710
|
}
|
|
709
711
|
}
|
|
710
712
|
releaseNote(channelNumber, noteNumber, velocity) {
|
|
@@ -813,7 +815,7 @@ export class MidyGM1 {
|
|
|
813
815
|
setVolume(channelNumber, volume) {
|
|
814
816
|
const channel = this.channels[channelNumber];
|
|
815
817
|
channel.volume = volume / 127;
|
|
816
|
-
this.
|
|
818
|
+
this.updateChannelVolume(channel);
|
|
817
819
|
}
|
|
818
820
|
panToGain(pan) {
|
|
819
821
|
const theta = Math.PI / 2 * Math.max(0, pan - 1) / 126;
|
|
@@ -825,18 +827,18 @@ export class MidyGM1 {
|
|
|
825
827
|
setPan(channelNumber, pan) {
|
|
826
828
|
const channel = this.channels[channelNumber];
|
|
827
829
|
channel.pan = pan;
|
|
828
|
-
this.
|
|
830
|
+
this.updateChannelVolume(channel);
|
|
829
831
|
}
|
|
830
832
|
setExpression(channelNumber, expression) {
|
|
831
833
|
const channel = this.channels[channelNumber];
|
|
832
834
|
channel.expression = expression / 127;
|
|
833
|
-
this.
|
|
835
|
+
this.updateChannelVolume(channel);
|
|
834
836
|
}
|
|
835
837
|
dataEntryLSB(channelNumber, value) {
|
|
836
838
|
this.channels[channelNumber].dataLSB = value;
|
|
837
839
|
this.handleRPN(channelNumber, 0);
|
|
838
840
|
}
|
|
839
|
-
|
|
841
|
+
updateChannelVolume(channel) {
|
|
840
842
|
const now = this.audioContext.currentTime;
|
|
841
843
|
const volume = channel.volume * channel.expression;
|
|
842
844
|
const { gainLeft, gainRight } = this.panToGain(channel.pan);
|
|
@@ -989,11 +991,12 @@ export class MidyGM1 {
|
|
|
989
991
|
}
|
|
990
992
|
}
|
|
991
993
|
GM1SystemOn() {
|
|
992
|
-
this.channels.
|
|
994
|
+
for (let i = 0; i < this.channels.length; i++) {
|
|
995
|
+
const channel = this.channels[i];
|
|
993
996
|
channel.bankMSB = 0;
|
|
994
997
|
channel.bankLSB = 0;
|
|
995
998
|
channel.bank = 0;
|
|
996
|
-
}
|
|
999
|
+
}
|
|
997
1000
|
this.channels[9].bankMSB = 1;
|
|
998
1001
|
this.channels[9].bank = 128;
|
|
999
1002
|
}
|
package/esm/midy-GM2.d.ts
CHANGED
|
@@ -144,7 +144,7 @@ export class MidyGM2 {
|
|
|
144
144
|
createChannels(audioContext: any): any[];
|
|
145
145
|
createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
|
|
146
146
|
createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
|
|
147
|
-
|
|
147
|
+
findPortamentoTarget(queueIndex: any): any;
|
|
148
148
|
scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
|
|
149
149
|
getQueueIndex(second: any): number;
|
|
150
150
|
playNotes(): Promise<any>;
|
|
@@ -154,8 +154,8 @@ export class MidyGM2 {
|
|
|
154
154
|
instruments: Set<any>;
|
|
155
155
|
timeline: any[];
|
|
156
156
|
};
|
|
157
|
-
stopChannelNotes(channelNumber: any, velocity: any,
|
|
158
|
-
stopNotes(velocity: any,
|
|
157
|
+
stopChannelNotes(channelNumber: any, velocity: any, force: any): Promise<void>;
|
|
158
|
+
stopNotes(velocity: any, force: any): Promise<any[]>;
|
|
159
159
|
start(): Promise<void>;
|
|
160
160
|
stop(): void;
|
|
161
161
|
pause(): void;
|
|
@@ -191,18 +191,21 @@ export class MidyGM2 {
|
|
|
191
191
|
centToHz(cent: any): number;
|
|
192
192
|
calcSemitoneOffset(channel: any): any;
|
|
193
193
|
calcPlaybackRate(instrumentKey: any, noteNumber: any, semitoneOffset: any): number;
|
|
194
|
+
setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
|
|
194
195
|
setVolumeEnvelope(note: any): void;
|
|
195
196
|
setPitch(note: any, semitoneOffset: any): void;
|
|
196
197
|
clampCutoffFrequency(frequency: any): number;
|
|
198
|
+
setPortamentoStartFilterEnvelope(channel: any, note: any): void;
|
|
197
199
|
setFilterEnvelope(channel: any, note: any): void;
|
|
198
200
|
startModulation(channel: any, note: any, startTime: any): void;
|
|
199
201
|
startVibrato(channel: any, note: any, startTime: any): void;
|
|
200
|
-
createNote(channel: any, instrumentKey: any, noteNumber: any, velocity: any, startTime: any, isSF3: any): Promise<Note>;
|
|
202
|
+
createNote(channel: any, instrumentKey: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
|
|
201
203
|
calcBank(channel: any, channelNumber: any): any;
|
|
202
|
-
scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
|
|
203
|
-
noteOn(channelNumber: any, noteNumber: any, velocity: any): Promise<void>;
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, portamento: any): Promise<void>;
|
|
205
|
+
noteOn(channelNumber: any, noteNumber: any, velocity: any, portamento: any): Promise<void>;
|
|
206
|
+
stopNote(stopTime: any, endTime: any, scheduledNotes: any, index: any): Promise<any>;
|
|
207
|
+
scheduleNoteRelease(channelNumber: any, noteNumber: any, _velocity: any, stopTime: any, portamentoNoteNumber: any, force: any): Promise<any> | undefined;
|
|
208
|
+
releaseNote(channelNumber: any, noteNumber: any, velocity: any, portamentoNoteNumber: any): Promise<any> | undefined;
|
|
206
209
|
releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
|
|
207
210
|
releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
|
|
208
211
|
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<any>;
|
|
@@ -250,7 +253,7 @@ export class MidyGM2 {
|
|
|
250
253
|
setExpression(channelNumber: any, expression: any): void;
|
|
251
254
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
252
255
|
dataEntryLSB(channelNumber: any, value: any): void;
|
|
253
|
-
|
|
256
|
+
updateChannelVolume(channel: any): void;
|
|
254
257
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
255
258
|
setPortamento(channelNumber: any, value: any): void;
|
|
256
259
|
setReverbSendLevel(channelNumber: any, reverbSendLevel: any): void;
|
package/esm/midy-GM2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAwBA;IAkCE;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAgCF;;;;;OAYC;IAvHD,qBAAmB;IACnB,kBAAc;IACd,yBAAqB;IACrB,2BAAuB;IACvB;;;MAGE;IACF;;;;;;MAME;IACF,cAAa;IACb,cAAa;IACb,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;IA8ClB;;;;;MA4BE;IAGA,kBAAgC;IAChC;;;;;MAAqD;IACrD,gBAA4C;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IACjD;;;MAA8D;IAC9D;;;;;;;;MAAyD;IAO3D,4BAMC;IAED,
|
|
1
|
+
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAwBA;IAkCE;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAgCF;;;;;OAYC;IAvHD,qBAAmB;IACnB,kBAAc;IACd,yBAAqB;IACrB,2BAAuB;IACvB;;;MAGE;IACF;;;;;;MAME;IACF,cAAa;IACb,cAAa;IACb,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;IA8ClB;;;;;MA4BE;IAGA,kBAAgC;IAChC;;;;;MAAqD;IACrD,gBAA4C;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IACjD;;;MAA8D;IAC9D;;;;;;;;MAAyD;IAO3D,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAcC;IAED,+DAuBC;IAED,mEAWC;IAED,2CAcC;IAED,2EAuDC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAoGC;IAED,+EAoBC;IAED,qDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,kFAuBC;IAED;;;;MAWC;IAED,gFAUC;IAED,mFAYC;IAED,sGAcC;IAID;;;MA+BC;IAED;;;;;;;;MA0CC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,gEAUC;IAED,mCAeC;IAED,+CAwBC;IAED,6CAIC;IAED,gEAoBC;IAED,iDAyBC;IAED,+DA0BC;IAED,4DAiBC;IAED,yIA6CC;IAED,gDAQC;IAED,mHAwCC;IAED,2FASC;IAED,qFA4BC;IAED,yJAoCC;IAED,qHAUC;IAED,kEAeC;IAED,oEAYC;IAED,gFAmBC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;MA2BC;IAED,2EASC;IAED,+CAEC;IAED,qCAkBC;IAED,8DAIC;IAED,iEAIC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,+CAEC;IAED,mDAGC;IAED,wCAUC;IAED,sDAMC;IAED,oDAEC;IAED,mEAqBC;IAED,mEAqBC;IAED,wDAWC;IAED,uDAGC;IAED,kFAeC;IAED,2DAMC;IAED,oCAqBC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAaC;IAED,kDAKC;IAED,iEAOC;IAED,8CAKC;IAED,yDAMC;IAED,gDAKC;IAED,6DAMC;IAED,wDAKC;IAED,6EAKC;IAED,+CAEC;IAED,8CAEC;IAED,+CAEC;IAED,gBAEC;IAED,eAEC;IAED,eAEC;IAED,eAEC;IAED,4DAmBC;IAED,oBASC;IAED,oBASC;IAED,yDAiDC;IAED,yCAGC;IAED,mCAQC;IAED,6CAGC;IAED,2CAMC;IAED,+CAGC;IAED,+CAMC;IAED,mDAeC;IAED,4CAOC;IAED,+BAKC;IAED,qDAiBC;IAED,gCAMC;IAED,kCAEC;IA6BD,4CAEC;IAED,4CAaC;IAED,+BAiBC;IAED,wFAKC;IAED,mCAQC;IAED,qCAEC;IAED,oCAUC;IAED,sCAEC;IAED,oCAaC;IAED,sCAEC;IAED,wCAWC;IAED,0CAEC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAx4DD;IAUE,gFAKC;IAdD,kBAAa;IACb,gBAAW;IACX,gBAAW;IACX,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAChB,gBAAW;IACX,kBAAa;IAGX,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
|