@marmooo/midy 0.3.3 → 0.3.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.
@@ -55,7 +55,7 @@ export class MidyGMLite {
55
55
  addSoundFont(soundFont: any): void;
56
56
  loadSoundFont(input: any): Promise<void>;
57
57
  loadMIDI(input: any): Promise<void>;
58
- setChannelAudioNodes(audioContext: any): {
58
+ createChannelAudioNodes(audioContext: any): {
59
59
  gainL: any;
60
60
  gainR: any;
61
61
  merger: any;
@@ -83,7 +83,7 @@ export class MidyGMLite {
83
83
  seekTo(second: any): void;
84
84
  calcTotalTime(): number;
85
85
  currentTime(): number;
86
- processScheduledNotes(channel: any, callback: any): void;
86
+ processScheduledNotes(channel: any, scheduleTime: any, callback: any): void;
87
87
  processActiveNotes(channel: any, scheduleTime: any, callback: any): void;
88
88
  cbToRatio(cb: any): number;
89
89
  rateToCent(rate: any): number;
@@ -101,7 +101,7 @@ export class MidyGMLite {
101
101
  createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, isSF3: any): Promise<Note>;
102
102
  handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
103
103
  handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
104
- scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, noteOffEvent: any): Promise<void>;
104
+ scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
105
105
  noteOn(channelNumber: any, noteNumber: any, velocity: any, scheduleTime: any): Promise<void>;
106
106
  disconnectNote(note: any): void;
107
107
  releaseNote(channel: any, note: any, endTime: any): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAoGA;IA2BE;;;;;;;;;MASE;IAEF,+BAcC;IAnDD,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,kCAA+B;IAC/B,gCAA6B;IAC7B,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAClB,2BAAqC;IACrC,+BAEE;IAcA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,gBAAiD;IAMnD,4BAMC;IAED,mCAWC;IAED,yCAcC;IAED,oCAiBC;IAED;;;;MAeC;IAED,yCAaC;IAED,6DA2BC;IAED,0EAUC;IAED,+EAkDC;IAED,mCAOC;IAED,0BAiEC;IAED,uDAEC;IAED,wDAEC;IAED,6EAEC;IAED;;;MA6EC;IAED,kGAeC;IAED,mGAgBC;IAED,wEAMC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,yDAQC;IAED,yEASC;IAED,2BAEC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,2DAIC;IAED,+DAIC;IAED,sDAeC;IAED,qDAoBC;IAED,6CAIC;IAED,sDAsBC;IAED,kEAoBC;IAED,+GA0BC;IAED,gHA6CC;IAED,0EAiBC;IAED,8EAiBC;IAED,qHAyCC;IAED,6FASC;IAED,gCASC;IAED,iEAoBC;IAED,qGAgBC;IAED,sDASC;IAED,qFASC;IAED,sFAeC;IAED,oGA2BC;IAED,sFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAQC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;MA2BC;IAED,oFAMC;IAED,6EA2CC;IAED,qCAeC;IAED,kGAWC;IAED,wDAUC;IAED,iFAKC;IAED,oEAKC;IAED;;;MAMC;IAED,8DAKC;IAED,4EAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,uDAYC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,gFAGC;IAED,yCAqBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAWC;IAED,4EAaC;IAED,4DAGC;IAED,sDASC;IAED,gDAYC;IAGD,6DAgBC;CACF;AA19CD;IAWE,0FAMC;IAhBD,cAAW;IACX,gBAAe;IACf,kBAAa;IACb,gBAAW;IACX,iBAAY;IACZ,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":"AA0GA;IA2BE;;;;;;;;;MASE;IAEF,+BAcC;IAnDD,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,kCAA+B;IAC/B,gCAA6B;IAC7B,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAClB,2BAAqC;IACrC,+BAEE;IAcA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,gBAAiD;IAMnD,4BAMC;IAED,mCAWC;IAED,yCAcC;IAED,oCAiBC;IAED;;;;MAeC;IAED,yCAaC;IAED,6DA2BC;IAED,0EAUC;IAED,+EAkDC;IAED,mCAOC;IAED,0BAiEC;IAED,uDAEC;IAED,wDAEC;IAED,6EAEC;IAED;;;MA6EC;IAED,kGAeC;IAED,mGAgBC;IAED,wEAMC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,4EASC;IAED,yEASC;IAED,2BAEC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,2DAIC;IAED,+DAIC;IAED,sDAeC;IAED,qDAoBC;IAED,6CAIC;IAED,sDAsBC;IAED,kEAoBC;IAED,+GA0BC;IAED,gHA6CC;IAED,0EAiBC;IAED,8EAiBC;IAED,kGAuCC;IAED,6FASC;IAED,gCASC;IAED,iEAoBC;IAED,qGAgBC;IAED,sDASC;IAED,qFASC;IAED,sFAeC;IAED,oGA2BC;IAED,sFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAQC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;MA2BC;IAED,oFAMC;IAED,6EAgCC;IAED,qCAeC;IAED,kGAWC;IAED,wDAUC;IAED,iFAKC;IAED,oEAKC;IAED;;;MAMC;IAED,8DAKC;IAED,4EAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,uDAYC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,gFAGC;IAED,yCAqBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAWC;IAED,4EAaC;IAED,4DAGC;IAED,sDASC;IAED,gDAYC;IAGD,6DAgBC;CACF;AAp9CD;IAWE,0FAMC;IAhBD,cAAW;IACX,gBAAe;IACf,kBAAa;IACb,gBAAW;IACX,iBAAY;IACZ,wBAAmB;IACnB,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAGd,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,WAAkB;IAClB,iBAA8B;CAEjC"}
@@ -83,13 +83,11 @@ const defaultControllerState = {
83
83
  pitchWheel: { type: 14, defaultValue: 8192 / 16383 },
84
84
  pitchWheelSensitivity: { type: 16, defaultValue: 2 / 128 },
85
85
  link: { type: 127, defaultValue: 0 },
86
- // bankMSB: { type: 128 + 0, defaultValue: 121, },
87
86
  modulationDepth: { type: 128 + 1, defaultValue: 0 },
88
87
  // dataMSB: { type: 128 + 6, defaultValue: 0, },
89
88
  volume: { type: 128 + 7, defaultValue: 100 / 127 },
90
89
  pan: { type: 128 + 10, defaultValue: 64 / 127 },
91
90
  expression: { type: 128 + 11, defaultValue: 1 },
92
- // bankLSB: { type: 128 + 32, defaultValue: 0, },
93
91
  // dataLSB: { type: 128 + 38, defaultValue: 0, },
94
92
  sustainPedal: { type: 128 + 64, defaultValue: 0 },
95
93
  // rpnLSB: { type: 128 + 100, defaultValue: 127 },
@@ -118,6 +116,16 @@ class ControllerState {
118
116
  }
119
117
  }
120
118
  }
119
+ const volumeEnvelopeKeys = [
120
+ "volDelay",
121
+ "volAttack",
122
+ "volHold",
123
+ "volDecay",
124
+ "volSustain",
125
+ "volRelease",
126
+ "initialAttenuation",
127
+ ];
128
+ const volumeEnvelopeKeySet = new Set(volumeEnvelopeKeys);
121
129
  const filterEnvelopeKeys = [
122
130
  "modEnvToPitch",
123
131
  "initialFilterFc",
@@ -127,20 +135,18 @@ const filterEnvelopeKeys = [
127
135
  "modHold",
128
136
  "modDecay",
129
137
  "modSustain",
130
- "modRelease",
131
- "playbackRate",
132
138
  ];
133
139
  const filterEnvelopeKeySet = new Set(filterEnvelopeKeys);
134
- const volumeEnvelopeKeys = [
135
- "volDelay",
136
- "volAttack",
137
- "volHold",
138
- "volDecay",
139
- "volSustain",
140
- "volRelease",
141
- "initialAttenuation",
140
+ const pitchEnvelopeKeys = [
141
+ "modEnvToPitch",
142
+ "modDelay",
143
+ "modAttack",
144
+ "modHold",
145
+ "modDecay",
146
+ "modSustain",
147
+ "playbackRate",
142
148
  ];
143
- const volumeEnvelopeKeySet = new Set(volumeEnvelopeKeys);
149
+ const pitchEnvelopeKeySet = new Set(pitchEnvelopeKeys);
144
150
  export class MidyGMLite {
145
151
  constructor(audioContext) {
146
152
  Object.defineProperty(this, "mode", {
@@ -351,7 +357,7 @@ export class MidyGMLite {
351
357
  this.timeline = midiData.timeline;
352
358
  this.totalTime = this.calcTotalTime();
353
359
  }
354
- setChannelAudioNodes(audioContext) {
360
+ createChannelAudioNodes(audioContext) {
355
361
  const { gainLeft, gainRight } = this.panToGain(defaultControllerState.pan.defaultValue);
356
362
  const gainL = new GainNode(audioContext, { gain: gainLeft });
357
363
  const gainR = new GainNode(audioContext, { gain: gainRight });
@@ -372,7 +378,7 @@ export class MidyGMLite {
372
378
  isDrum: false,
373
379
  state: new ControllerState(),
374
380
  ...this.constructor.channelSettings,
375
- ...this.setChannelAudioNodes(audioContext),
381
+ ...this.createChannelAudioNodes(audioContext),
376
382
  scheduledNotes: [],
377
383
  sustainNotes: [],
378
384
  };
@@ -615,7 +621,7 @@ export class MidyGMLite {
615
621
  stopChannelNotes(channelNumber, velocity, force, scheduleTime) {
616
622
  const channel = this.channels[channelNumber];
617
623
  const promises = [];
618
- this.processScheduledNotes(channel, (note) => {
624
+ this.processScheduledNotes(channel, scheduleTime, (note) => {
619
625
  const promise = this.scheduleNoteOff(channelNumber, note.noteNumber, velocity, scheduleTime, force);
620
626
  this.notePromises.push(promise);
621
627
  promises.push(promise);
@@ -674,7 +680,7 @@ export class MidyGMLite {
674
680
  const now = this.audioContext.currentTime;
675
681
  return this.resumeTime + now - this.startTime - this.startDelay;
676
682
  }
677
- processScheduledNotes(channel, callback) {
683
+ processScheduledNotes(channel, scheduleTime, callback) {
678
684
  const scheduledNotes = channel.scheduledNotes;
679
685
  for (let i = 0; i < scheduledNotes.length; i++) {
680
686
  const note = scheduledNotes[i];
@@ -682,6 +688,8 @@ export class MidyGMLite {
682
688
  continue;
683
689
  if (note.ending)
684
690
  continue;
691
+ if (note.startTime < scheduleTime)
692
+ continue;
685
693
  callback(note);
686
694
  }
687
695
  }
@@ -694,7 +702,7 @@ export class MidyGMLite {
694
702
  if (note.ending)
695
703
  continue;
696
704
  if (scheduleTime < note.startTime)
697
- continue;
705
+ break;
698
706
  callback(note);
699
707
  }
700
708
  }
@@ -716,7 +724,7 @@ export class MidyGMLite {
716
724
  return pitchWheel * pitchWheelSensitivity;
717
725
  }
718
726
  updateChannelDetune(channel, scheduleTime) {
719
- this.processScheduledNotes(channel, (note) => {
727
+ this.processScheduledNotes(channel, scheduleTime, (note) => {
720
728
  this.updateDetune(channel, note, scheduleTime);
721
729
  });
722
730
  }
@@ -881,7 +889,7 @@ export class MidyGMLite {
881
889
  }
882
890
  this.drumExclusiveClassNotes[index] = note;
883
891
  }
884
- async scheduleNoteOn(channelNumber, noteNumber, velocity, startTime, noteOffEvent) {
892
+ async scheduleNoteOn(channelNumber, noteNumber, velocity, startTime) {
885
893
  const channel = this.channels[channelNumber];
886
894
  const bankNumber = channel.bank;
887
895
  const soundFontIndex = this.soundFontTable[channel.programNumber].get(bankNumber);
@@ -893,7 +901,6 @@ export class MidyGMLite {
893
901
  return;
894
902
  const isSF3 = soundFont.parsed.info.version.major === 3;
895
903
  const note = await this.createNote(channel, voice, noteNumber, velocity, startTime, isSF3);
896
- note.noteOffEvent = noteOffEvent;
897
904
  note.volumeEnvelopeNode.connect(channel.gainL);
898
905
  note.volumeEnvelopeNode.connect(channel.gainR);
899
906
  if (0.5 <= channel.state.sustainPedal) {
@@ -1090,11 +1097,12 @@ export class MidyGMLite {
1090
1097
  return state;
1091
1098
  }
1092
1099
  applyVoiceParams(channel, controllerType, scheduleTime) {
1093
- this.processScheduledNotes(channel, (note) => {
1100
+ this.processScheduledNotes(channel, scheduleTime, (note) => {
1094
1101
  const controllerState = this.getControllerState(channel, note.noteNumber, note.velocity);
1095
1102
  const voiceParams = note.voice.getParams(controllerType, controllerState);
1096
- let appliedFilterEnvelope = false;
1097
- let appliedVolumeEnvelope = false;
1103
+ let applyVolumeEnvelope = false;
1104
+ let applyFilterEnvelope = false;
1105
+ let applyPitchEnvelope = false;
1098
1106
  for (const [key, value] of Object.entries(voiceParams)) {
1099
1107
  const prevValue = note.voiceParams[key];
1100
1108
  if (value === prevValue)
@@ -1103,32 +1111,21 @@ export class MidyGMLite {
1103
1111
  if (key in this.voiceParamsHandlers) {
1104
1112
  this.voiceParamsHandlers[key](channel, note, prevValue, scheduleTime);
1105
1113
  }
1106
- else if (filterEnvelopeKeySet.has(key)) {
1107
- if (appliedFilterEnvelope)
1108
- continue;
1109
- appliedFilterEnvelope = true;
1110
- const noteVoiceParams = note.voiceParams;
1111
- for (let i = 0; i < filterEnvelopeKeys.length; i++) {
1112
- const key = filterEnvelopeKeys[i];
1113
- if (key in voiceParams)
1114
- noteVoiceParams[key] = voiceParams[key];
1115
- }
1116
- this.setFilterEnvelope(note, scheduleTime);
1117
- this.setPitchEnvelope(note, scheduleTime);
1118
- }
1119
- else if (volumeEnvelopeKeySet.has(key)) {
1120
- if (appliedVolumeEnvelope)
1121
- continue;
1122
- appliedVolumeEnvelope = true;
1123
- const noteVoiceParams = note.voiceParams;
1124
- for (let i = 0; i < volumeEnvelopeKeys.length; i++) {
1125
- const key = volumeEnvelopeKeys[i];
1126
- if (key in voiceParams)
1127
- noteVoiceParams[key] = voiceParams[key];
1128
- }
1129
- this.setVolumeEnvelope(note, scheduleTime);
1114
+ else {
1115
+ if (volumeEnvelopeKeySet.has(key))
1116
+ applyVolumeEnvelope = true;
1117
+ if (filterEnvelopeKeySet.has(key))
1118
+ applyFilterEnvelope = true;
1119
+ if (pitchEnvelopeKeySet.has(key))
1120
+ applyPitchEnvelope = true;
1130
1121
  }
1131
1122
  }
1123
+ if (applyVolumeEnvelope)
1124
+ this.setVolumeEnvelope(note, scheduleTime);
1125
+ if (applyFilterEnvelope)
1126
+ this.setFilterEnvelope(note, scheduleTime);
1127
+ if (applyPitchEnvelope)
1128
+ this.setPitchEnvelope(note, scheduleTime);
1132
1129
  });
1133
1130
  }
1134
1131
  createControlChangeHandlers() {
@@ -1160,7 +1157,7 @@ export class MidyGMLite {
1160
1157
  }
1161
1158
  updateModulation(channel, scheduleTime) {
1162
1159
  const depth = channel.state.modulationDepth * channel.modulationDepthRange;
1163
- this.processScheduledNotes(channel, (note) => {
1160
+ this.processScheduledNotes(channel, scheduleTime, (note) => {
1164
1161
  if (note.modulationDepth) {
1165
1162
  note.modulationDepth.gain.setValueAtTime(depth, scheduleTime);
1166
1163
  }
@@ -1221,7 +1218,7 @@ export class MidyGMLite {
1221
1218
  scheduleTime ??= this.audioContext.currentTime;
1222
1219
  channel.state.sustainPedal = value / 127;
1223
1220
  if (64 <= value) {
1224
- this.processScheduledNotes(channel, (note) => {
1221
+ this.processScheduledNotes(channel, scheduleTime, (note) => {
1225
1222
  channel.sustainNotes.push(note);
1226
1223
  });
1227
1224
  }
package/esm/midy.d.ts CHANGED
@@ -14,16 +14,12 @@ export class Midy {
14
14
  fineTuning: number;
15
15
  coarseTuning: number;
16
16
  };
17
- constructor(audioContext: any, options?: {
18
- reverbAlgorithm: (audioContext: any) => {
19
- input: any;
20
- output: any;
21
- };
22
- });
17
+ constructor(audioContext: any);
23
18
  mode: string;
24
19
  masterFineTuning: number;
25
20
  masterCoarseTuning: number;
26
21
  reverb: {
22
+ algorithm: string;
27
23
  time: number;
28
24
  feedback: number;
29
25
  };
@@ -56,19 +52,7 @@ export class Midy {
56
52
  notePromises: any[];
57
53
  exclusiveClassNotes: any[];
58
54
  drumExclusiveClassNotes: any[];
59
- defaultOptions: {
60
- reverbAlgorithm: (audioContext: any) => {
61
- input: any;
62
- output: any;
63
- };
64
- };
65
55
  audioContext: any;
66
- options: {
67
- reverbAlgorithm: (audioContext: any) => {
68
- input: any;
69
- output: any;
70
- };
71
- };
72
56
  masterVolume: any;
73
57
  scheduler: any;
74
58
  schedulerBuffer: any;
@@ -89,7 +73,7 @@ export class Midy {
89
73
  reverbEffect: {
90
74
  input: any;
91
75
  output: any;
92
- };
76
+ } | undefined;
93
77
  chorusEffect: {
94
78
  input: any;
95
79
  output: any;
@@ -103,7 +87,7 @@ export class Midy {
103
87
  addSoundFont(soundFont: any): void;
104
88
  loadSoundFont(input: any): Promise<void>;
105
89
  loadMIDI(input: any): Promise<void>;
106
- setChannelAudioNodes(audioContext: any): {
90
+ createChannelAudioNodes(audioContext: any): {
107
91
  gainL: any;
108
92
  gainR: any;
109
93
  merger: any;
@@ -133,7 +117,7 @@ export class Midy {
133
117
  seekTo(second: any): void;
134
118
  calcTotalTime(): number;
135
119
  currentTime(): number;
136
- processScheduledNotes(channel: any, callback: any): void;
120
+ processScheduledNotes(channel: any, scheduleTime: any, callback: any): void;
137
121
  processActiveNotes(channel: any, scheduleTime: any, callback: any): void;
138
122
  createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
139
123
  createConvolutionReverb(audioContext: any, impulse: any): {
@@ -148,6 +132,10 @@ export class Midy {
148
132
  input: any;
149
133
  output: any;
150
134
  };
135
+ createReverbEffect(audioContext: any): {
136
+ input: any;
137
+ output: any;
138
+ } | undefined;
151
139
  createChorusEffect(audioContext: any): {
152
140
  input: any;
153
141
  output: any;
@@ -181,7 +169,7 @@ export class Midy {
181
169
  calcBank(channel: any): any;
182
170
  handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
183
171
  handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
184
- scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, noteOffEvent: any): Promise<void>;
172
+ scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
185
173
  noteOn(channelNumber: any, noteNumber: any, velocity: any, scheduleTime: any): Promise<void>;
186
174
  disconnectNote(note: any): void;
187
175
  releaseNote(channel: any, note: any, endTime: any): Promise<any>;
@@ -217,7 +205,7 @@ export class Midy {
217
205
  delayVibLFO: (channel: any, note: any, prevValue: any, scheduleTime: any) => void;
218
206
  freqVibLFO: (channel: any, note: any, _prevValue: any, scheduleTime: any) => void;
219
207
  };
220
- getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
208
+ getControllerState(channel: any, noteNumber: any, velocity: any, polyphonicKeyPressure: any): Float32Array<any>;
221
209
  applyVoiceParams(channel: any, controllerType: any, scheduleTime: any): void;
222
210
  createControlChangeHandlers(): any[];
223
211
  handleControlChange(channelNumber: any, controllerType: any, value: any, scheduleTime: any): void;
@@ -226,18 +214,17 @@ export class Midy {
226
214
  setModulationDepth(channelNumber: any, modulation: any, scheduleTime: any): void;
227
215
  updatePortamento(channel: any, scheduleTime: any): void;
228
216
  setPortamentoTime(channelNumber: any, portamentoTime: any, scheduleTime: any): void;
229
- setKeyBasedVolume(channel: any, scheduleTime: any): void;
230
217
  setVolume(channelNumber: any, volume: any, scheduleTime: any): void;
231
218
  panToGain(pan: any): {
232
219
  gainLeft: number;
233
220
  gainRight: number;
234
221
  };
235
- setKeyBasedPan(channel: any, scheduleTime: any): void;
236
222
  setPan(channelNumber: any, pan: any, scheduleTime: any): void;
237
223
  setExpression(channelNumber: any, expression: any, scheduleTime: any): void;
238
224
  setBankLSB(channelNumber: any, lsb: any): void;
239
225
  dataEntryLSB(channelNumber: any, value: any, scheduleTime: any): void;
240
226
  updateChannelVolume(channel: any, scheduleTime: any): void;
227
+ updateKeyBasedVolume(channel: any, scheduleTime: any): void;
241
228
  setSustainPedal(channelNumber: any, value: any, scheduleTime: any): void;
242
229
  setPortamento(channelNumber: any, value: any, scheduleTime: any): void;
243
230
  setSostenutoPedal(channelNumber: any, value: any, scheduleTime: any): void;
@@ -316,9 +303,8 @@ export class Midy {
316
303
  getLFOAmplitudeDepth(channel: any, note: any): number;
317
304
  setControllerParameters(channel: any, note: any, table: any): void;
318
305
  handlePressureSysEx(data: any, tableName: any): void;
319
- initControlTable(): any;
320
- resetControlTable(table: any): any;
321
- applyControlTable(channel: any, controllerType: any): void;
306
+ initControlTable(): Int8Array<ArrayBuffer>;
307
+ applyControlTable(channel: any, controllerType: any, scheduleTime: any): void;
322
308
  handleControlChangeSysEx(data: any): void;
323
309
  getKeyBasedInstrumentControlValue(channel: any, keyNumber: any, controllerType: any): any;
324
310
  handleKeyBasedInstrumentControlSysEx(data: any, scheduleTime: any): void;
@@ -334,9 +320,6 @@ declare class Note {
334
320
  filterDepth: any;
335
321
  volumeEnvelopeNode: any;
336
322
  volumeDepth: any;
337
- volumeNode: any;
338
- gainL: any;
339
- gainR: any;
340
323
  modulationLFO: any;
341
324
  modulationDepth: any;
342
325
  vibratoLFO: 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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"}