@marmooo/midy 0.2.3 → 0.2.4

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.
@@ -94,7 +94,8 @@ export class MidyGMLite {
94
94
  centToRate(cent: any): number;
95
95
  centToHz(cent: any): number;
96
96
  calcChannelDetune(channel: any): number;
97
- updateDetune(channel: any): void;
97
+ updateChannelDetune(channel: any): void;
98
+ updateDetune(channel: any, note: any): void;
98
99
  setVolumeEnvelope(note: any): void;
99
100
  setPitchEnvelope(note: any): void;
100
101
  clampCutoffFrequency(frequency: any): number;
@@ -163,7 +164,7 @@ export class MidyGMLite {
163
164
  setRPNLSB(channelNumber: any, value: any): void;
164
165
  dataEntryMSB(channelNumber: any, value: any): void;
165
166
  handlePitchBendRangeRPN(channelNumber: any): void;
166
- setPitchBendRange(channelNumber: any, pitchWheelSensitivity: any): void;
167
+ setPitchBendRange(channelNumber: any, value: any): void;
167
168
  allSoundOff(channelNumber: any): Promise<void>;
168
169
  resetAllControllers(channelNumber: any): void;
169
170
  allNotesOff(channelNumber: any): Promise<void>;
@@ -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,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"}
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,wCAQC;IAED,4CAKC;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,wDASC;IAED,+CAEC;IAED,8CAqBC;IAED,+CAEC;IAED,4DAgBC;IAED,oBAMC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AA1tCD;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"}
@@ -595,19 +595,22 @@ export class MidyGMLite {
595
595
  const pitchWheelSensitivity = channel.state.pitchWheelSensitivity * 12800;
596
596
  return pitchWheel * pitchWheelSensitivity;
597
597
  }
598
- updateDetune(channel) {
599
- const now = this.audioContext.currentTime;
598
+ updateChannelDetune(channel) {
600
599
  channel.scheduledNotes.forEach((noteList) => {
601
600
  for (let i = 0; i < noteList.length; i++) {
602
601
  const note = noteList[i];
603
602
  if (!note)
604
603
  continue;
605
- note.bufferSource.detune
606
- .cancelScheduledValues(now)
607
- .setValueAtTime(channel.detune, now);
604
+ this.updateDetune(channel, note);
608
605
  }
609
606
  });
610
607
  }
608
+ updateDetune(channel, note) {
609
+ const now = this.audioContext.currentTime;
610
+ note.bufferSource.detune
611
+ .cancelScheduledValues(now)
612
+ .setValueAtTime(channel.detune, now);
613
+ }
611
614
  setVolumeEnvelope(note) {
612
615
  const now = this.audioContext.currentTime;
613
616
  const { voiceParams, startTime } = note;
@@ -856,7 +859,7 @@ export class MidyGMLite {
856
859
  const next = (value - 8192) / 8192;
857
860
  state.pitchWheel = value / 16383;
858
861
  channel.detune += (next - prev) * state.pitchWheelSensitivity * 12800;
859
- this.updateDetune(channel);
862
+ this.updateChannelDetune(channel);
860
863
  this.applyVoiceParams(channel, 14);
861
864
  }
862
865
  setModLfoToPitch(channel, note) {
@@ -960,7 +963,7 @@ export class MidyGMLite {
960
963
  if (key in voiceParams)
961
964
  noteVoiceParams[key] = voiceParams[key];
962
965
  }
963
- this.setFilterEnvelope(channel, note);
966
+ this.setFilterEnvelope(note);
964
967
  this.setPitchEnvelope(note);
965
968
  }
966
969
  else if (volumeEnvelopeKeySet.has(key)) {
@@ -1000,7 +1003,7 @@ export class MidyGMLite {
1000
1003
  if (handler) {
1001
1004
  handler.call(this, channelNumber, value);
1002
1005
  const channel = this.channels[channelNumber];
1003
- this.applyVoiceParams(channel, controller + 128);
1006
+ this.applyVoiceParams(channel, controllerType + 128);
1004
1007
  }
1005
1008
  else {
1006
1009
  console.warn(`Unsupported Control change: controllerType=${controllerType} value=${value}`);
@@ -1118,12 +1121,14 @@ export class MidyGMLite {
1118
1121
  const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
1119
1122
  this.setPitchBendRange(channelNumber, pitchBendRange);
1120
1123
  }
1121
- setPitchBendRange(channelNumber, pitchWheelSensitivity) {
1124
+ setPitchBendRange(channelNumber, value) {
1122
1125
  const channel = this.channels[channelNumber];
1123
1126
  const state = channel.state;
1124
- state.pitchWheelSensitivity = pitchWheelSensitivity / 128;
1125
- const detune = (state.pitchWheel * 2 - 1) * pitchWheelSensitivity * 100;
1126
- this.updateDetune(channel, detune);
1127
+ const prev = state.pitchWheelSensitivity;
1128
+ const next = value / 128;
1129
+ state.pitchWheelSensitivity = next;
1130
+ channel.detune += (state.pitchWheel * 2 - 1) * (next - prev) * 12800;
1131
+ this.updateChannelDetune(channel);
1127
1132
  this.applyVoiceParams(channel, 16);
1128
1133
  }
1129
1134
  allSoundOff(channelNumber) {
@@ -1140,7 +1145,7 @@ export class MidyGMLite {
1140
1145
  const state = channel.state;
1141
1146
  for (let i = 0; i < stateTypes.length; i++) {
1142
1147
  const type = stateTypes[i];
1143
- state[type] = defaultControllerState[type];
1148
+ state[type] = defaultControllerState[type].defaultValue;
1144
1149
  }
1145
1150
  const settingTypes = [
1146
1151
  "rpnMSB",
package/esm/midy.d.ts CHANGED
@@ -3,7 +3,8 @@ export class Midy {
3
3
  currentBufferSource: null;
4
4
  detune: number;
5
5
  scaleOctaveTuningTable: any[];
6
- pressureTable: Uint8Array<ArrayBuffer>;
6
+ channelPressureTable: Uint8Array<ArrayBuffer>;
7
+ polyphonicKeyPressureTable: Uint8Array<ArrayBuffer>;
7
8
  keyBasedInstrumentControlTable: Int8Array<ArrayBuffer>;
8
9
  program: number;
9
10
  bank: number;
@@ -17,14 +18,6 @@ export class Midy {
17
18
  coarseTuning: number;
18
19
  modulationDepthRange: number;
19
20
  };
20
- static controllerDestinationSettings: {
21
- pitchControl: number;
22
- filterCutoffControl: number;
23
- amplitudeControl: number;
24
- lfoPitchDepth: number;
25
- lfoFilterDepth: number;
26
- lfoAmplitudeDepth: number;
27
- };
28
21
  constructor(audioContext: any, options?: {
29
22
  reverbAlgorithm: (audioContext: any) => {
30
23
  input: any;
@@ -201,14 +194,15 @@ export class Midy {
201
194
  centToHz(cent: any): number;
202
195
  calcChannelDetune(channel: any): any;
203
196
  calcNoteDetune(channel: any, note: any): any;
204
- updateDetune(channel: any): void;
197
+ updateChannelDetune(channel: any): void;
198
+ updateDetune(channel: any, note: any, pressure: any): void;
205
199
  getPortamentoTime(channel: any): number;
206
200
  setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
207
- setVolumeEnvelope(channel: any, note: any): void;
201
+ setVolumeEnvelope(channel: any, note: any, pressure: any): void;
208
202
  setPitchEnvelope(note: any): void;
209
203
  clampCutoffFrequency(frequency: any): number;
210
204
  setPortamentoStartFilterEnvelope(channel: any, note: any): void;
211
- setFilterEnvelope(channel: any, note: any): void;
205
+ setFilterEnvelope(channel: any, note: any, pressure: any): void;
212
206
  startModulation(channel: any, note: any, startTime: any): void;
213
207
  startVibrato(channel: any, note: any, startTime: any): void;
214
208
  createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
@@ -226,14 +220,15 @@ export class Midy {
226
220
  handleChannelPressure(channelNumber: any, value: any): void;
227
221
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
228
222
  setPitchBend(channelNumber: any, value: any): void;
229
- setModLfoToPitch(channel: any, note: any): void;
223
+ setModLfoToPitch(channel: any, note: any, pressure: any): void;
230
224
  setVibLfoToPitch(channel: any, note: any): void;
231
- setModLfoToFilterFc(channel: any, note: any): void;
232
- setModLfoToVolume(channel: any, note: any): void;
225
+ setModLfoToFilterFc(note: any, pressure: any): void;
226
+ setModLfoToVolume(note: any, pressure: any): void;
233
227
  setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
234
228
  setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
235
229
  setDelayModLFO(note: any): void;
236
230
  setFreqModLFO(note: any): void;
231
+ setFreqVibLFO(channel: any, note: any): void;
237
232
  createVoiceParamsHandlers(): {
238
233
  modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
239
234
  vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
@@ -341,7 +336,7 @@ export class Midy {
341
336
  handleUniversalNonRealTimeExclusiveMessage(data: any): void;
342
337
  GM1SystemOn(): void;
343
338
  GM2SystemOn(): void;
344
- handleUniversalRealTimeExclusiveMessage(data: any): void;
339
+ handleUniversalRealTimeExclusiveMessage(data: any): any;
345
340
  handleMasterVolumeSysEx(data: any): void;
346
341
  setMasterVolume(volume: any): void;
347
342
  handleMasterFineTuningSysEx(data: any): void;
@@ -369,14 +364,14 @@ export class Midy {
369
364
  getChannelBitmap(data: any): any[];
370
365
  handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
371
366
  applyDestinationSettings(channel: any, note: any, table: any): void;
372
- handleChannelPressureSysEx(data: any): void;
367
+ handleChannelPressureSysEx(data: any, tableName: any): void;
373
368
  initControlTable(): Uint8Array<ArrayBuffer>;
374
369
  applyControlTable(channel: any, controllerType: any): void;
375
370
  handleControlChangeSysEx(data: any): void;
376
371
  getKeyBasedInstrumentControlValue(channel: any, keyNumber: any, controllerType: any): number;
377
372
  handleKeyBasedInstrumentControlSysEx(data: any): void;
378
373
  handleExclusiveMessage(data: any): void;
379
- handleSysEx(data: any): void;
374
+ handleSysEx(data: any): any;
380
375
  scheduleTask(callback: any, startTime: any): Promise<any>;
381
376
  }
382
377
  declare class Note {
@@ -395,6 +390,7 @@ declare class Note {
395
390
  reverbEffectsSend: any;
396
391
  chorusEffectsSend: any;
397
392
  portamento: any;
393
+ pressure: number;
398
394
  noteNumber: any;
399
395
  velocity: any;
400
396
  startTime: any;
package/esm/midy.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}