@marmooo/midy 0.4.7 → 0.4.9

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 CHANGED
@@ -24,10 +24,14 @@ This library provides several files depending on the implementation level.
24
24
  - [Humidy](https://marmooo.github.io/humidy/) - GM2 MIDI mixer app
25
25
  - [Timidy](https://marmooo.github.io/timidy/) - Timidity++ style MIDI player
26
26
  - [4x4pad](https://marmooo.github.io/4x4pad/) - 4x4 grid MPE MIDI controller
27
- - [Celltone](https://marmooo.github.io/celltone/) - Grid MPE MIDI controller with
28
- Janko-Piano layout
27
+ - [Celltone](https://marmooo.github.io/celltone/) - Grid MPE MIDI controller
28
+ with Janko-Piano layout
29
29
  - [Isotone](https://marmooo.github.io/isotone/) - Grid MPE MIDI controller
30
30
  optimized for chords
31
+ - [Hexatone](https://marmooo.github.io/hexatone/) - Hexagonal MPE MIDI
32
+ controller with Wicki-Hayden layout
33
+ - [Chromatone](https://marmooo.github.io/chromatone/) - Hexagonal MPE MIDI
34
+ controller optimized for glissando
31
35
 
32
36
  ## Support Status
33
37
 
package/esm/midy-GM1.d.ts CHANGED
@@ -61,7 +61,7 @@ export class MidyGM1 extends EventTarget {
61
61
  detune: (channel: any, note: any, scheduleTime: any) => void;
62
62
  };
63
63
  controlChangeHandlers: any[];
64
- channels: any[];
64
+ channels: Channel[];
65
65
  addSoundFont(soundFont: any): void;
66
66
  toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
67
67
  loadSoundFont(input: any): Promise<void>;
@@ -73,7 +73,7 @@ export class MidyGM1 extends EventTarget {
73
73
  gainR: any;
74
74
  merger: any;
75
75
  };
76
- createChannels(audioContext: any): any[];
76
+ createChannels(audioContext: any): Channel[];
77
77
  decodeOggVorbis(sample: any): Promise<any>;
78
78
  createAudioBuffer(voiceParams: any): Promise<any>;
79
79
  createBufferSource(voiceParams: any, audioBuffer: any): any;
@@ -189,4 +189,27 @@ export class MidyGM1 extends EventTarget {
189
189
  handleSysEx(data: any, scheduleTime: any): void;
190
190
  scheduleTask(callback: any, scheduleTime: any): Promise<any>;
191
191
  }
192
+ declare class Channel {
193
+ constructor(audioNodes: any, settings: any);
194
+ isDrum: boolean;
195
+ programNumber: number;
196
+ scheduleIndex: number;
197
+ detune: number;
198
+ dataMSB: number;
199
+ dataLSB: number;
200
+ rpnMSB: number;
201
+ rpnLSB: number;
202
+ modulationDepthRange: number;
203
+ fineTuning: number;
204
+ coarseTuning: number;
205
+ scheduledNotes: any[];
206
+ sustainNotes: any[];
207
+ currentBufferSource: null;
208
+ state: ControllerState;
209
+ resetSettings(settings: any): void;
210
+ }
211
+ declare class ControllerState {
212
+ array: Float32Array<ArrayBuffer>;
213
+ }
214
+ export {};
192
215
  //# sourceMappingURL=midy-GM1.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAmHA;IAsCE;;;;;;;;;;;MAWE;IAEF,+BAgBC;IA9DD,gCAAgC;IAChC,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,0BAAuD;IACvD,4BAAyB;IACzB,0BAAuB;IACvB,kCAA+B;IAC/B,qBAAqC;IACrC,4BAAiC;IACjC,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,iCAEG;IACH,cAAU;IACV,cAAa;IACb,iBAAY;IACZ,gBAAc;IACd,oBAAkB;IAClB,sBAAwB;IACxB,2BAAqC;IAiBnC,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,gBAAiD;IAMnD,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBA6BC;IAED,8DAeC;IAED;;;;MAeC;IAED,yCAaC;IAED,2CAsBC;IAED,kDA6BC;IAED,4DASC;IAED,gEAsDC;IAED,mCASC;IAED,uBAUC;IAED,yDAqCC;IAED,2BA0EC;IAED,uDAEC;IAED,wDAEC;IAED,qCAKC;IAED;;;MAwDC;IAED,kGAeC;IAED,mGAeC;IAED,wEAQC;IAED,uBAMC;IAED,sBAIC;IAED,uBAMC;IAED,wBAIC;IAED,0BAKC;IAED,8BAMC;IAED,wBAYC;IAED,sBAIC;IAED,kEAWC;IAED,kFAYC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,qCAMC;IAED,2DAIC;IAED,6CAEC;IAED,sDAeC;IAED,4DASC;IAED,qDAkBC;IAED,6CAIC;IAED,sDA6BC;IAED,kEAqBC;IAED,4GAkCC;IAED,uEAyCC;IAED,0EAiBC;IAED,oEASC;IAED,0FAwBC;IAED,gCASC;IAED,iEAwBC;IAED,4FAmBC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,+BAmBC;IAED,kDAOC;IAED,sFA2BC;IAED,mFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAYC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;;MAoCC;IAED,oFAMC;IAED,6EA2BC;IAED,qCAeC;IAED,+FAYC;IAED,wDAUC;IAED,4EAKC;IAED,mEAKC;IAED;;;MAMC;IAED,gEAKC;IAED,uEAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,2DAMC;IAED,uDAoBC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,iEAMC;IAED,uEAQC;IAED,mEAKC;IAED,yEAQC;IAED,gFAGC;IAED,6CAqBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAUC;IAED,4EAaC;IAED,4DAGC;IAED,qDAKC;IAED,gDAYC;IAGD,6DAgBC;CACF"}
1
+ {"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AA8IA;IAsCE;;;;;;;;;;;MAWE;IAEF,+BAgBC;IA9DD,gCAAgC;IAChC,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,0BAAuD;IACvD,4BAAyB;IACzB,0BAAuB;IACvB,kCAA+B;IAC/B,qBAAqC;IACrC,4BAAiC;IACjC,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,iCAEG;IACH,cAAU;IACV,cAAa;IACb,iBAAY;IACZ,gBAAc;IACd,oBAAkB;IAClB,sBAAwB;IACxB,2BAAqC;IAiBnC,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,oBAAiD;IAMnD,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBA6BC;IAED,8DAeC;IAED;;;;MAeC;IAED,6CAMC;IAED,2CAsBC;IAED,kDA6BC;IAED,4DASC;IAED,gEAsDC;IAED,mCASC;IAED,uBASC;IAED,yDAqCC;IAED,2BA0EC;IAED,uDAEC;IAED,wDAEC;IAED,qCAKC;IAED;;;MAwDC;IAED,kGAeC;IAED,mGAeC;IAED,wEAQC;IAED,uBAMC;IAED,sBAIC;IAED,uBAMC;IAED,wBAIC;IAED,0BAKC;IAED,8BAMC;IAED,wBAYC;IAED,sBAIC;IAED,kEAWC;IAED,kFAYC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,qCAMC;IAED,2DAIC;IAED,6CAEC;IAED,sDAeC;IAED,4DASC;IAED,qDAkBC;IAED,6CAIC;IAED,sDA6BC;IAED,kEAqBC;IAED,4GAkCC;IAED,uEAyCC;IAED,0EAiBC;IAED,oEASC;IAED,0FAwBC;IAED,gCASC;IAED,iEAwBC;IAED,4FAmBC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,+BAmBC;IAED,kDAOC;IAED,sFA2BC;IAED,mFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAYC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;;MAoCC;IAED,oFAMC;IAED,6EA2BC;IAED,qCAeC;IAED,+FAYC;IAED,wDAUC;IAED,4EAKC;IAED,mEAKC;IAED;;;MAMC;IAED,gEAKC;IAED,uEAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,2DAMC;IAED,uDAoBC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,iEAMC;IAED,uEAQC;IAED,mEAKC;IAED,yEAQC;IAED,gFAGC;IAED,6CAmBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAUC;IAED,4EAaC;IAED,4DAGC;IAED,qDAKC;IAED,gDAYC;IAGD,6DAgBC;CACF;AAvrDD;IAgBE,4CAIC;IAnBD,gBAAe;IACf,sBAAkB;IAClB,sBAAkB;IAClB,eAAW;IACX,gBAAY;IACZ,gBAAY;IACZ,eAAa;IACb,eAAa;IACb,6BAA0B;IAC1B,mBAAe;IACf,qBAAiB;IACjB,sBAAoB;IACpB,oBAAkB;IAClB,0BAA2B;IAKzB,uBAAkC;IAGpC,mCAEC;CACF;AAuBD;IACE,iCAA8B;CAa/B"}
package/esm/midy-GM1.js CHANGED
@@ -92,6 +92,100 @@ class Note {
92
92
  });
93
93
  }
94
94
  }
95
+ class Channel {
96
+ constructor(audioNodes, settings) {
97
+ Object.defineProperty(this, "isDrum", {
98
+ enumerable: true,
99
+ configurable: true,
100
+ writable: true,
101
+ value: false
102
+ });
103
+ Object.defineProperty(this, "programNumber", {
104
+ enumerable: true,
105
+ configurable: true,
106
+ writable: true,
107
+ value: 0
108
+ });
109
+ Object.defineProperty(this, "scheduleIndex", {
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true,
113
+ value: 0
114
+ });
115
+ Object.defineProperty(this, "detune", {
116
+ enumerable: true,
117
+ configurable: true,
118
+ writable: true,
119
+ value: 0
120
+ });
121
+ Object.defineProperty(this, "dataMSB", {
122
+ enumerable: true,
123
+ configurable: true,
124
+ writable: true,
125
+ value: 0
126
+ });
127
+ Object.defineProperty(this, "dataLSB", {
128
+ enumerable: true,
129
+ configurable: true,
130
+ writable: true,
131
+ value: 0
132
+ });
133
+ Object.defineProperty(this, "rpnMSB", {
134
+ enumerable: true,
135
+ configurable: true,
136
+ writable: true,
137
+ value: 127
138
+ });
139
+ Object.defineProperty(this, "rpnLSB", {
140
+ enumerable: true,
141
+ configurable: true,
142
+ writable: true,
143
+ value: 127
144
+ });
145
+ Object.defineProperty(this, "modulationDepthRange", {
146
+ enumerable: true,
147
+ configurable: true,
148
+ writable: true,
149
+ value: 50
150
+ }); // cent
151
+ Object.defineProperty(this, "fineTuning", {
152
+ enumerable: true,
153
+ configurable: true,
154
+ writable: true,
155
+ value: 0
156
+ }); // cent
157
+ Object.defineProperty(this, "coarseTuning", {
158
+ enumerable: true,
159
+ configurable: true,
160
+ writable: true,
161
+ value: 0
162
+ }); // cent
163
+ Object.defineProperty(this, "scheduledNotes", {
164
+ enumerable: true,
165
+ configurable: true,
166
+ writable: true,
167
+ value: []
168
+ });
169
+ Object.defineProperty(this, "sustainNotes", {
170
+ enumerable: true,
171
+ configurable: true,
172
+ writable: true,
173
+ value: []
174
+ });
175
+ Object.defineProperty(this, "currentBufferSource", {
176
+ enumerable: true,
177
+ configurable: true,
178
+ writable: true,
179
+ value: null
180
+ });
181
+ Object.assign(this, audioNodes);
182
+ Object.assign(this, settings);
183
+ this.state = new ControllerState();
184
+ }
185
+ resetSettings(settings) {
186
+ Object.assign(this, settings);
187
+ }
188
+ }
95
189
  // normalized to 0-1 for use with the SF2 modulator model
96
190
  const defaultControllerState = {
97
191
  noteOnVelocity: { type: 2, defaultValue: 0 },
@@ -482,18 +576,8 @@ export class MidyGM1 extends EventTarget {
482
576
  };
483
577
  }
484
578
  createChannels(audioContext) {
485
- const channels = Array.from({ length: this.numChannels }, () => {
486
- return {
487
- currentBufferSource: null,
488
- isDrum: false,
489
- state: new ControllerState(),
490
- ...this.constructor.channelSettings,
491
- ...this.createChannelAudioNodes(audioContext),
492
- scheduledNotes: [],
493
- sustainNotes: [],
494
- };
495
- });
496
- return channels;
579
+ const settings = this.constructor.channelSettings;
580
+ return Array.from({ length: this.numChannels }, () => new Channel(this.createChannelAudioNodes(audioContext), settings));
497
581
  }
498
582
  decodeOggVorbis(sample) {
499
583
  const task = decoderQueue.then(async () => {
@@ -605,7 +689,6 @@ export class MidyGM1 extends EventTarget {
605
689
  }
606
690
  resetAllStates() {
607
691
  this.exclusiveClassNotes.fill(undefined);
608
- this.drumExclusiveClassNotes.fill(undefined);
609
692
  this.voiceCache.clear();
610
693
  this.realtimeVoiceCache.clear();
611
694
  const channels = this.channels;
@@ -1626,9 +1709,7 @@ export class MidyGM1 extends EventTarget {
1626
1709
  state[key] = defaultValue;
1627
1710
  }
1628
1711
  }
1629
- for (const key of Object.keys(this.constructor.channelSettings)) {
1630
- channel[key] = this.constructor.channelSettings[key];
1631
- }
1712
+ channel.resetSettings(this.constructor.channelSettings);
1632
1713
  this.mode = "GM1";
1633
1714
  }
1634
1715
  // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/rp15.pdf
package/esm/midy-GM2.d.ts CHANGED
@@ -82,7 +82,7 @@ export class MidyGM2 extends EventTarget {
82
82
  controlChangeHandlers: any[];
83
83
  keyBasedControllerHandlers: any[];
84
84
  effectHandlers: any[];
85
- channels: any[];
85
+ channels: Channel[];
86
86
  reverbEffect: {
87
87
  input: any;
88
88
  output: any;
@@ -107,8 +107,7 @@ export class MidyGM2 extends EventTarget {
107
107
  gainR: any;
108
108
  merger: any;
109
109
  };
110
- resetChannelTable(channel: any): void;
111
- createChannels(audioContext: any): any[];
110
+ createChannels(audioContext: any): Channel[];
112
111
  decodeOggVorbis(sample: any): Promise<any>;
113
112
  createAudioBuffer(voiceParams: any): Promise<any>;
114
113
  isLoopDrum(channel: any, noteNumber: any): boolean;
@@ -237,6 +236,7 @@ export class MidyGM2 extends EventTarget {
237
236
  updatePortamento(channel: any, scheduleTime: any): void;
238
237
  setPortamentoTime(channelNumber: any, value: any, scheduleTime: any): void;
239
238
  setVolume(channelNumber: any, value: any, scheduleTime: any): void;
239
+ applyVolume(channel: any, scheduleTime: any): void;
240
240
  panToGain(pan: any): {
241
241
  gainLeft: number;
242
242
  gainRight: number;
@@ -320,7 +320,9 @@ export class MidyGM2 extends EventTarget {
320
320
  getLFOAmplitudeDepth(channel: any): number;
321
321
  createEffectHandlers(): any[];
322
322
  setControlChangeEffects(channel: any, note: any, scheduleTime: any): void;
323
+ setChannelPressureEffects(channel: any, note: any, scheduleTime: any): void;
323
324
  setPressureEffects(channel: any, note: any, tableName: any, scheduleTime: any): void;
325
+ handleChannelPressureSysEx(data: any, scheduleTime: any): void;
324
326
  handlePressureSysEx(data: any, tableName: any, scheduleTime: any): void;
325
327
  handleControlChangeSysEx(data: any, scheduleTime: any): void;
326
328
  getKeyBasedValue(channel: any, keyNumber: any, controllerType: any): any;
@@ -329,4 +331,38 @@ export class MidyGM2 extends EventTarget {
329
331
  handleSysEx(data: any, scheduleTime: any): void;
330
332
  scheduleTask(callback: any, scheduleTime: any): Promise<any>;
331
333
  }
334
+ declare class Channel {
335
+ constructor(audioNodes: any, settings: any);
336
+ isDrum: boolean;
337
+ programNumber: number;
338
+ scheduleIndex: number;
339
+ detune: number;
340
+ bankMSB: number;
341
+ bankLSB: number;
342
+ dataMSB: number;
343
+ dataLSB: number;
344
+ rpnMSB: number;
345
+ rpnLSB: number;
346
+ mono: boolean;
347
+ modulationDepthRange: number;
348
+ fineTuning: number;
349
+ coarseTuning: number;
350
+ scheduledNotes: any[];
351
+ sustainNotes: any[];
352
+ sostenutoNotes: any[];
353
+ controlTable: Int8Array<ArrayBuffer>;
354
+ scaleOctaveTuningTable: Int8Array<ArrayBuffer>;
355
+ channelPressureTable: Int8Array<ArrayBuffer>;
356
+ keyBasedTable: Int8Array<ArrayBuffer>;
357
+ keyBasedGainLs: any[];
358
+ keyBasedGainRs: any[];
359
+ currentBufferSource: null;
360
+ state: ControllerState;
361
+ resetSettings(settings: any): void;
362
+ resetTable(): void;
363
+ }
364
+ declare class ControllerState {
365
+ array: Float32Array<ArrayBuffer>;
366
+ }
367
+ export {};
332
368
  //# sourceMappingURL=midy-GM2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
package/esm/midy-GM2.js CHANGED
@@ -122,6 +122,166 @@ class Note {
122
122
  });
123
123
  }
124
124
  }
125
+ class Channel {
126
+ constructor(audioNodes, settings) {
127
+ Object.defineProperty(this, "isDrum", {
128
+ enumerable: true,
129
+ configurable: true,
130
+ writable: true,
131
+ value: false
132
+ });
133
+ Object.defineProperty(this, "programNumber", {
134
+ enumerable: true,
135
+ configurable: true,
136
+ writable: true,
137
+ value: 0
138
+ });
139
+ Object.defineProperty(this, "scheduleIndex", {
140
+ enumerable: true,
141
+ configurable: true,
142
+ writable: true,
143
+ value: 0
144
+ });
145
+ Object.defineProperty(this, "detune", {
146
+ enumerable: true,
147
+ configurable: true,
148
+ writable: true,
149
+ value: 0
150
+ });
151
+ Object.defineProperty(this, "bankMSB", {
152
+ enumerable: true,
153
+ configurable: true,
154
+ writable: true,
155
+ value: 121
156
+ });
157
+ Object.defineProperty(this, "bankLSB", {
158
+ enumerable: true,
159
+ configurable: true,
160
+ writable: true,
161
+ value: 0
162
+ });
163
+ Object.defineProperty(this, "dataMSB", {
164
+ enumerable: true,
165
+ configurable: true,
166
+ writable: true,
167
+ value: 0
168
+ });
169
+ Object.defineProperty(this, "dataLSB", {
170
+ enumerable: true,
171
+ configurable: true,
172
+ writable: true,
173
+ value: 0
174
+ });
175
+ Object.defineProperty(this, "rpnMSB", {
176
+ enumerable: true,
177
+ configurable: true,
178
+ writable: true,
179
+ value: 127
180
+ });
181
+ Object.defineProperty(this, "rpnLSB", {
182
+ enumerable: true,
183
+ configurable: true,
184
+ writable: true,
185
+ value: 127
186
+ });
187
+ Object.defineProperty(this, "mono", {
188
+ enumerable: true,
189
+ configurable: true,
190
+ writable: true,
191
+ value: false
192
+ }); // CC#124, CC#125
193
+ Object.defineProperty(this, "modulationDepthRange", {
194
+ enumerable: true,
195
+ configurable: true,
196
+ writable: true,
197
+ value: 50
198
+ }); // cent
199
+ Object.defineProperty(this, "fineTuning", {
200
+ enumerable: true,
201
+ configurable: true,
202
+ writable: true,
203
+ value: 0
204
+ }); // cent
205
+ Object.defineProperty(this, "coarseTuning", {
206
+ enumerable: true,
207
+ configurable: true,
208
+ writable: true,
209
+ value: 0
210
+ }); // cent
211
+ Object.defineProperty(this, "scheduledNotes", {
212
+ enumerable: true,
213
+ configurable: true,
214
+ writable: true,
215
+ value: []
216
+ });
217
+ Object.defineProperty(this, "sustainNotes", {
218
+ enumerable: true,
219
+ configurable: true,
220
+ writable: true,
221
+ value: []
222
+ });
223
+ Object.defineProperty(this, "sostenutoNotes", {
224
+ enumerable: true,
225
+ configurable: true,
226
+ writable: true,
227
+ value: []
228
+ });
229
+ Object.defineProperty(this, "controlTable", {
230
+ enumerable: true,
231
+ configurable: true,
232
+ writable: true,
233
+ value: new Int8Array(defaultControlValues)
234
+ });
235
+ Object.defineProperty(this, "scaleOctaveTuningTable", {
236
+ enumerable: true,
237
+ configurable: true,
238
+ writable: true,
239
+ value: new Int8Array(12)
240
+ }); // [-64, 63] cent
241
+ Object.defineProperty(this, "channelPressureTable", {
242
+ enumerable: true,
243
+ configurable: true,
244
+ writable: true,
245
+ value: new Int8Array(defaultPressureValues)
246
+ });
247
+ Object.defineProperty(this, "keyBasedTable", {
248
+ enumerable: true,
249
+ configurable: true,
250
+ writable: true,
251
+ value: new Int8Array(128 * 128).fill(-1)
252
+ });
253
+ Object.defineProperty(this, "keyBasedGainLs", {
254
+ enumerable: true,
255
+ configurable: true,
256
+ writable: true,
257
+ value: new Array(128)
258
+ });
259
+ Object.defineProperty(this, "keyBasedGainRs", {
260
+ enumerable: true,
261
+ configurable: true,
262
+ writable: true,
263
+ value: new Array(128)
264
+ });
265
+ Object.defineProperty(this, "currentBufferSource", {
266
+ enumerable: true,
267
+ configurable: true,
268
+ writable: true,
269
+ value: null
270
+ });
271
+ Object.assign(this, audioNodes);
272
+ Object.assign(this, settings);
273
+ this.state = new ControllerState();
274
+ }
275
+ resetSettings(settings) {
276
+ Object.assign(this, settings);
277
+ }
278
+ resetTable() {
279
+ this.controlTable.set(defaultControlValues);
280
+ this.scaleOctaveTuningTable.fill(0); // [-100, 100] cent
281
+ this.channelPressureTable.set(defaultPressureValues);
282
+ this.keyBasedTable.fill(-1);
283
+ }
284
+ }
125
285
  const drumExclusiveClassesByKit = new Array(57);
126
286
  const drumExclusiveClassCount = 10;
127
287
  const standardSet = new Uint8Array(128);
@@ -633,32 +793,9 @@ export class MidyGM2 extends EventTarget {
633
793
  merger,
634
794
  };
635
795
  }
636
- resetChannelTable(channel) {
637
- channel.controlTable.set(defaultControlValues);
638
- channel.scaleOctaveTuningTable.fill(0); // [-100, 100] cent
639
- channel.channelPressureTable.set(defaultPressureValues);
640
- channel.keyBasedTable.fill(-1);
641
- }
642
796
  createChannels(audioContext) {
643
- const channels = Array.from({ length: this.numChannels }, () => {
644
- return {
645
- currentBufferSource: null,
646
- isDrum: false,
647
- state: new ControllerState(),
648
- ...this.constructor.channelSettings,
649
- ...this.createChannelAudioNodes(audioContext),
650
- scheduledNotes: [],
651
- sustainNotes: [],
652
- sostenutoNotes: [],
653
- controlTable: new Int8Array(defaultControlValues),
654
- scaleOctaveTuningTable: new Int8Array(12), // [-64, 63] cent
655
- channelPressureTable: new Int8Array(defaultPressureValues),
656
- keyBasedTable: new Int8Array(128 * 128).fill(-1),
657
- keyBasedGainLs: new Array(128),
658
- keyBasedGainRs: new Array(128),
659
- };
660
- });
661
- return channels;
797
+ const settings = this.constructor.channelSettings;
798
+ return Array.from({ length: this.numChannels }, () => new Channel(this.createChannelAudioNodes(audioContext), settings));
662
799
  }
663
800
  decodeOggVorbis(sample) {
664
801
  const task = decoderQueue.then(async () => {
@@ -1857,7 +1994,7 @@ export class MidyGM2 extends EventTarget {
1857
1994
  const next = this.calcChannelPressureEffectValue(channel, 0);
1858
1995
  channel.detune += next - prev;
1859
1996
  this.processActiveNotes(channel, scheduleTime, (note) => {
1860
- this.setPressureEffects(channel, note, scheduleTime);
1997
+ this.setChannelPressureEffects(channel, note, scheduleTime);
1861
1998
  });
1862
1999
  this.applyVoiceParams(channel, 13, scheduleTime);
1863
2000
  }
@@ -2213,6 +2350,9 @@ export class MidyGM2 extends EventTarget {
2213
2350
  scheduleTime = this.audioContext.currentTime;
2214
2351
  const channel = this.channels[channelNumber];
2215
2352
  channel.state.volumeMSB = value / 127;
2353
+ this.applyVolume(channel, scheduleTime);
2354
+ }
2355
+ applyVolume(channel, scheduleTime) {
2216
2356
  if (channel.isDrum) {
2217
2357
  for (let i = 0; i < 128; i++) {
2218
2358
  this.updateKeyBasedVolume(channel, i, scheduleTime);
@@ -2527,10 +2667,8 @@ export class MidyGM2 extends EventTarget {
2527
2667
  state[key] = defaultValue;
2528
2668
  }
2529
2669
  }
2530
- for (const key of Object.keys(this.constructor.channelSettings)) {
2531
- channel[key] = this.constructor.channelSettings[key];
2532
- }
2533
- this.resetChannelTable(channel);
2670
+ channel.reset(this.constructor.channelSettings);
2671
+ channel.resetTable();
2534
2672
  this.mode = "GM2";
2535
2673
  this.masterFineTuning = 0; // cent
2536
2674
  this.masterCoarseTuning = 0; // cent
@@ -2668,7 +2806,7 @@ export class MidyGM2 extends EventTarget {
2668
2806
  case 9:
2669
2807
  switch (data[3]) {
2670
2808
  case 1: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca22.pdf
2671
- return this.handlePressureSysEx(data, "channelPressureTable", scheduleTime);
2809
+ return this.handleChannelPressureSysEx(data, scheduelTime);
2672
2810
  case 3: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca22.pdf
2673
2811
  return this.handleControlChangeSysEx(data, scheduleTime);
2674
2812
  default:
@@ -3020,14 +3158,7 @@ export class MidyGM2 extends EventTarget {
3020
3158
  this.setFilterEnvelope(channel, note, scheduleTime);
3021
3159
  }
3022
3160
  };
3023
- handlers[2] = (channel, note, scheduleTime) => {
3024
- if (0.5 <= channel.state.portamemento && 0 <= note.portamentoNoteNumber) {
3025
- this.setPortamentoVolumeEnvelope(channel, note, scheduleTime);
3026
- }
3027
- else {
3028
- this.setVolumeEnvelope(channel, note, scheduleTime);
3029
- }
3030
- };
3161
+ handlers[2] = (channel, note, scheduleTime) => this.applyVolume(channel, note, scheduleTime);
3031
3162
  handlers[3] = (channel, note, scheduleTime) => this.setModLfoToPitch(channel, note, scheduleTime);
3032
3163
  handlers[4] = (channel, note, scheduleTime) => this.setModLfoToFilterFc(channel, note, scheduleTime);
3033
3164
  handlers[5] = (channel, note, scheduleTime) => this.setModLfoToVolume(channel, note, scheduleTime);
@@ -3043,6 +3174,9 @@ export class MidyGM2 extends EventTarget {
3043
3174
  handlers[i](channel, note, scheduleTime);
3044
3175
  }
3045
3176
  }
3177
+ setChannelPressureEffects(channel, note, scheduleTime) {
3178
+ this.setPressureEffects(channel, note, "channelPressureTable", scheduleTime);
3179
+ }
3046
3180
  setPressureEffects(channel, note, tableName, scheduleTime) {
3047
3181
  const handlers = this.effectHandlers;
3048
3182
  const table = channel[tableName];
@@ -3054,6 +3188,9 @@ export class MidyGM2 extends EventTarget {
3054
3188
  handlers[i](channel, note, scheduleTime);
3055
3189
  }
3056
3190
  }
3191
+ handleChannelPressureSysEx(data, scheduleTime) {
3192
+ this.handlePressureSysEx(data, "channelPressureTable", scheduleTime);
3193
+ }
3057
3194
  handlePressureSysEx(data, tableName, scheduleTime) {
3058
3195
  const channelNumber = data[4];
3059
3196
  const channel = this.channels[channelNumber];
@@ -59,7 +59,7 @@ export class MidyGMLite extends EventTarget {
59
59
  detune: (channel: any, note: any, scheduleTime: any) => void;
60
60
  };
61
61
  controlChangeHandlers: any[];
62
- channels: any[];
62
+ channels: Channel[];
63
63
  addSoundFont(soundFont: any): void;
64
64
  toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
65
65
  loadSoundFont(input: any): Promise<void>;
@@ -71,7 +71,7 @@ export class MidyGMLite extends EventTarget {
71
71
  gainR: any;
72
72
  merger: any;
73
73
  };
74
- createChannels(audioContext: any): any[];
74
+ createChannels(audioContext: any): Channel[];
75
75
  decodeOggVorbis(sample: any): Promise<any>;
76
76
  createAudioBuffer(voiceParams: any): Promise<any>;
77
77
  createBufferSource(channel: any, voiceParams: any, audioBuffer: any): any;
@@ -183,4 +183,25 @@ export class MidyGMLite extends EventTarget {
183
183
  handleSysEx(data: any, scheduleTime: any): void;
184
184
  scheduleTask(callback: any, scheduleTime: any): Promise<any>;
185
185
  }
186
+ declare class Channel {
187
+ constructor(audioNodes: any, settings: any);
188
+ isDrum: boolean;
189
+ programNumber: number;
190
+ scheduleIndex: number;
191
+ detune: number;
192
+ dataMSB: number;
193
+ dataLSB: number;
194
+ rpnMSB: number;
195
+ rpnLSB: number;
196
+ modulationDepthRange: number;
197
+ scheduledNotes: any[];
198
+ sustainNotes: any[];
199
+ currentBufferSource: null;
200
+ state: ControllerState;
201
+ resetSettings(settings: any): void;
202
+ }
203
+ declare class ControllerState {
204
+ array: Float32Array<ArrayBuffer>;
205
+ }
206
+ export {};
186
207
  //# sourceMappingURL=midy-GMLite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAiIA;IAwCE;;;;;;;;;MASE;IAEF,+BAgBC;IA9DD,gCAAgC;IAChC,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,0BAAuD;IACvD,4BAAyB;IACzB,0BAAuB;IACvB,kCAA+B;IAC/B,qBAAqC;IACrC,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,iCAEG;IACH,cAAU;IACV,cAAa;IACb,iBAAY;IACZ,gBAAc;IACd,oBAAkB;IAClB,sBAAwB;IACxB,2BAAqC;IACrC,+BAEE;IAeA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,gBAAiD;IAMnD,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBA6BC;IAED,8DAeC;IAED;;;;MAeC;IAED,yCAaC;IAED,2CAsBC;IAED,kDA6BC;IAED,0EAUC;IAED,gEAsDC;IAED,mCASC;IAED,uBAUC;IAED,yDAqCC;IAED,2BA0EC;IAED,uDAEC;IAED,wDAEC;IAED,qCAKC;IAED;;;MAwDC;IAED,kGAeC;IAED,mGAeC;IAED,wEAQC;IAED,uBAMC;IAED,sBAIC;IAED,uBAMC;IAED,wBAIC;IAED,0BAKC;IAED,8BAMC;IAED,wBAYC;IAED,sBAIC;IAED,kEAWC;IAED,kFAYC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,2DAIC;IAED,6CAEC;IAED,sDAeC;IAED,4DASC;IAED,qDAkBC;IAED,6CAIC;IAED,sDA6BC;IAED,kEAqBC;IAED,4GAkCC;IAED,uEA6CC;IAED,0EAiBC;IAED,8EAiBC;IAED,oEAUC;IAED,0FAwBC;IAED,gCASC;IAED,iEAwBC;IAED,4FAsBC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,+BAmBC;IAED,kDAOC;IAED,sFA2BC;IAED,mFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAYC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;;MAoCC;IAED,oFAMC;IAED,6EA2BC;IAED,qCAeC;IAED,+FAYC;IAED,wDAUC;IAED,4EAKC;IAED,mEAKC;IAED;;;MAMC;IAED,gEAKC;IAED,uEAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,uDAcC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,gFAGC;IAED,6CAqBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAUC;IAED,4EAaC;IAED,4DAGC;IAED,qDAKC;IAED,gDAYC;IAGD,6DAgBC;CACF"}
1
+ {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AA0JA;IAwCE;;;;;;;;;MASE;IAEF,+BAgBC;IA9DD,gCAAgC;IAChC,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,0BAAuD;IACvD,4BAAyB;IACzB,0BAAuB;IACvB,kCAA+B;IAC/B,qBAAqC;IACrC,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,iCAEG;IACH,cAAU;IACV,cAAa;IACb,iBAAY;IACZ,gBAAc;IACd,oBAAkB;IAClB,sBAAwB;IACxB,2BAAqC;IACrC,+BAEE;IAeA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,oBAAiD;IAMnD,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBA6BC;IAED,8DAeC;IAED;;;;MAeC;IAED,6CAMC;IAED,2CAsBC;IAED,kDA6BC;IAED,0EAUC;IAED,gEAsDC;IAED,mCASC;IAED,uBAUC;IAED,yDAqCC;IAED,2BA0EC;IAED,uDAEC;IAED,wDAEC;IAED,qCAKC;IAED;;;MAwDC;IAED,kGAeC;IAED,mGAeC;IAED,wEAQC;IAED,uBAMC;IAED,sBAIC;IAED,uBAMC;IAED,wBAIC;IAED,0BAKC;IAED,8BAMC;IAED,wBAYC;IAED,sBAIC;IAED,kEAWC;IAED,kFAYC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,2DAIC;IAED,6CAEC;IAED,sDAeC;IAED,4DASC;IAED,qDAkBC;IAED,6CAIC;IAED,sDA6BC;IAED,kEAqBC;IAED,4GAkCC;IAED,uEA6CC;IAED,0EAiBC;IAED,8EAiBC;IAED,oEAUC;IAED,0FAwBC;IAED,gCASC;IAED,iEAwBC;IAED,4FAsBC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,+BAmBC;IAED,kDAOC;IAED,sFA2BC;IAED,mFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAYC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;;MAoCC;IAED,oFAMC;IAED,6EA2BC;IAED,qCAeC;IAED,+FAYC;IAED,wDAUC;IAED,4EAKC;IAED,mEAKC;IAED;;;MAMC;IAED,gEAKC;IAED,uEAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,uDAcC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,gFAGC;IAED,6CAmBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAUC;IAED,4EAaC;IAED,4DAGC;IAED,qDAKC;IAED,gDAYC;IAGD,6DAgBC;CACF;AA7qDD;IAcE,4CAIC;IAjBD,gBAAe;IACf,sBAAkB;IAClB,sBAAkB;IAClB,eAAW;IACX,gBAAY;IACZ,gBAAY;IACZ,eAAa;IACb,eAAa;IACb,6BAA0B;IAC1B,sBAAoB;IACpB,oBAAkB;IAClB,0BAA2B;IAKzB,uBAAkC;IAGpC,mCAEC;CACF;AAqCD;IACE,iCAA8B;CAa/B"}