@marmooo/midy 0.5.0 → 0.5.1
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 +17 -2
- package/esm/midy-GM1.d.ts +3 -2
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +59 -67
- package/esm/midy-GM2.d.ts +8 -18
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +117 -158
- package/esm/midy-GMLite.d.ts +3 -2
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +60 -68
- package/esm/midy.d.ts +8 -18
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +121 -161
- package/esm/reverb.d.ts +58 -0
- package/esm/reverb.d.ts.map +1 -0
- package/esm/reverb.js +389 -0
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +3 -2
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +59 -67
- package/script/midy-GM2.d.ts +8 -18
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +117 -158
- package/script/midy-GMLite.d.ts +3 -2
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +60 -68
- package/script/midy.d.ts +8 -18
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +121 -161
- package/script/reverb.d.ts +58 -0
- package/script/reverb.d.ts.map +1 -0
- package/script/reverb.js +405 -0
package/script/midy-GMLite.js
CHANGED
|
@@ -45,7 +45,7 @@ const ogg_vorbis_1 = require("@wasm-audio-decoders/ogg-vorbis");
|
|
|
45
45
|
// A "rendering" event is dispatched when rendering starts, and a
|
|
46
46
|
// "rendered" event is dispatched when rendering completes.
|
|
47
47
|
/** @type {"none"|"ads"|"adsr"|"note"|"audio"} */
|
|
48
|
-
const DEFAULT_CACHE_MODE = "
|
|
48
|
+
const DEFAULT_CACHE_MODE = "ads";
|
|
49
49
|
const _f64Buf = new ArrayBuffer(8);
|
|
50
50
|
const _f64Array = new Float64Array(_f64Buf);
|
|
51
51
|
const _u64Array = new BigUint64Array(_f64Buf);
|
|
@@ -163,7 +163,13 @@ class Note {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
class Channel {
|
|
166
|
-
constructor(audioNodes, settings) {
|
|
166
|
+
constructor(channelNumber, audioNodes, settings) {
|
|
167
|
+
Object.defineProperty(this, "channelNumber", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
configurable: true,
|
|
170
|
+
writable: true,
|
|
171
|
+
value: 0
|
|
172
|
+
});
|
|
167
173
|
Object.defineProperty(this, "isDrum", {
|
|
168
174
|
enumerable: true,
|
|
169
175
|
configurable: true,
|
|
@@ -236,6 +242,7 @@ class Channel {
|
|
|
236
242
|
writable: true,
|
|
237
243
|
value: null
|
|
238
244
|
});
|
|
245
|
+
this.channelNumber = channelNumber;
|
|
239
246
|
Object.assign(this, audioNodes);
|
|
240
247
|
Object.assign(this, settings);
|
|
241
248
|
this.state = new ControllerState();
|
|
@@ -884,6 +891,8 @@ class MidyGMLite extends EventTarget {
|
|
|
884
891
|
return;
|
|
885
892
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
886
893
|
const voice = soundFont.getVoice(bank, programNumber, noteNumber, velocity);
|
|
894
|
+
if (!voice)
|
|
895
|
+
return;
|
|
887
896
|
const { instrument, sampleID } = voice.generators;
|
|
888
897
|
return soundFontIndex * (2 ** 31) + instrument * (2 ** 24) +
|
|
889
898
|
(sampleID << 8);
|
|
@@ -900,7 +909,7 @@ class MidyGMLite extends EventTarget {
|
|
|
900
909
|
}
|
|
901
910
|
createChannels(audioContext) {
|
|
902
911
|
const settings = this.constructor.channelSettings;
|
|
903
|
-
return Array.from({ length: this.numChannels }, () => new Channel(this.createChannelAudioNodes(audioContext), settings));
|
|
912
|
+
return Array.from({ length: this.numChannels }, (_, ch) => new Channel(ch, this.createChannelAudioNodes(audioContext), settings));
|
|
904
913
|
}
|
|
905
914
|
decodeOggVorbis(sample) {
|
|
906
915
|
const task = decoderQueue.then(async () => {
|
|
@@ -1368,6 +1377,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1368
1377
|
continue;
|
|
1369
1378
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
1370
1379
|
const fakeChannel = {
|
|
1380
|
+
channelNumber: ch,
|
|
1371
1381
|
state: { array: renderControllerStates[ch].slice() },
|
|
1372
1382
|
programNumber,
|
|
1373
1383
|
isDrum,
|
|
@@ -1684,25 +1694,29 @@ class MidyGMLite extends EventTarget {
|
|
|
1684
1694
|
const volHold = volAttack + voiceParams.volHold;
|
|
1685
1695
|
const decayDuration = voiceParams.volDecay;
|
|
1686
1696
|
const adsDuration = volHold + decayDuration * decayCurve * 5;
|
|
1687
|
-
const
|
|
1688
|
-
const
|
|
1697
|
+
const sampleLoopStart = voiceParams.loopStart / voiceParams.sampleRate;
|
|
1698
|
+
const sampleLoopDuration = isLoop
|
|
1689
1699
|
? (voiceParams.loopEnd - voiceParams.loopStart) / voiceParams.sampleRate
|
|
1690
1700
|
: 0;
|
|
1691
|
-
const
|
|
1692
|
-
|
|
1701
|
+
const playbackRate = voiceParams.playbackRate;
|
|
1702
|
+
const outputLoopStart = sampleLoopStart / playbackRate;
|
|
1703
|
+
const outputLoopDuration = sampleLoopDuration / playbackRate;
|
|
1704
|
+
const loopCount = isLoop && adsDuration > outputLoopStart
|
|
1705
|
+
? Math.ceil((adsDuration - outputLoopStart) / outputLoopDuration)
|
|
1693
1706
|
: 0;
|
|
1694
|
-
const alignedLoopStart =
|
|
1707
|
+
const alignedLoopStart = outputLoopStart + loopCount * outputLoopDuration;
|
|
1695
1708
|
const renderDuration = isLoop
|
|
1696
|
-
? alignedLoopStart +
|
|
1697
|
-
: audioBuffer.duration;
|
|
1698
|
-
const
|
|
1709
|
+
? alignedLoopStart + outputLoopDuration
|
|
1710
|
+
: audioBuffer.duration / playbackRate;
|
|
1711
|
+
const sampleRate = this.audioContext.sampleRate;
|
|
1712
|
+
const offlineContext = new OfflineAudioContext(audioBuffer.numberOfChannels, Math.ceil(renderDuration * sampleRate), sampleRate);
|
|
1699
1713
|
const bufferSource = new AudioBufferSourceNode(offlineContext);
|
|
1700
1714
|
bufferSource.buffer = audioBuffer;
|
|
1701
|
-
bufferSource.playbackRate.value =
|
|
1715
|
+
bufferSource.playbackRate.value = playbackRate;
|
|
1702
1716
|
bufferSource.loop = isLoop;
|
|
1703
1717
|
if (isLoop) {
|
|
1704
|
-
bufferSource.loopStart =
|
|
1705
|
-
bufferSource.loopEnd =
|
|
1718
|
+
bufferSource.loopStart = sampleLoopStart;
|
|
1719
|
+
bufferSource.loopEnd = sampleLoopStart + sampleLoopDuration;
|
|
1706
1720
|
}
|
|
1707
1721
|
const initialFreq = this.clampCutoffFrequency(this.centToHz(voiceParams.initialFilterFc));
|
|
1708
1722
|
const filterEnvelopeNode = new BiquadFilterNode(offlineContext, {
|
|
@@ -1734,7 +1748,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1734
1748
|
isLoop,
|
|
1735
1749
|
adsDuration,
|
|
1736
1750
|
loopStart: alignedLoopStart,
|
|
1737
|
-
loopDuration,
|
|
1751
|
+
loopDuration: outputLoopDuration,
|
|
1738
1752
|
});
|
|
1739
1753
|
}
|
|
1740
1754
|
async createAdsrRenderedBuffer(note, voiceParams, audioBuffer, noteDuration) {
|
|
@@ -1832,7 +1846,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1832
1846
|
}
|
|
1833
1847
|
async createFullRenderedBuffer(channel, note, voiceParams, noteDuration, noteEvent = {}) {
|
|
1834
1848
|
const { startTime: noteStartTime = 0, events: noteEvents = [] } = noteEvent;
|
|
1835
|
-
const ch =
|
|
1849
|
+
const ch = channel.channelNumber;
|
|
1836
1850
|
const releaseEndDuration = voiceParams.volRelease * releaseCurve * 5;
|
|
1837
1851
|
const totalDuration = noteDuration + releaseEndDuration;
|
|
1838
1852
|
const sampleRate = this.audioContext.sampleRate;
|
|
@@ -1881,7 +1895,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1881
1895
|
const audioBufferId = this.getVoiceId(channel, noteNumber, velocity);
|
|
1882
1896
|
if (!realtime) {
|
|
1883
1897
|
if (cacheMode === "note") {
|
|
1884
|
-
return await this.getFullCachedBuffer(note, audioBufferId);
|
|
1898
|
+
return await this.getFullCachedBuffer(channel, note, audioBufferId);
|
|
1885
1899
|
}
|
|
1886
1900
|
else if (cacheMode === "adsr") {
|
|
1887
1901
|
return await this.getAdsrCachedBuffer(note, audioBufferId);
|
|
@@ -1972,7 +1986,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1972
1986
|
durationMap.set(cacheKey, renderPromise);
|
|
1973
1987
|
return await renderPromise;
|
|
1974
1988
|
}
|
|
1975
|
-
async getFullCachedBuffer(note, audioBufferId) {
|
|
1989
|
+
async getFullCachedBuffer(channel, note, audioBufferId) {
|
|
1976
1990
|
const voiceParams = note.voiceParams;
|
|
1977
1991
|
const timelineIndex = note.timelineIndex;
|
|
1978
1992
|
const noteEvent = this.noteOnEvents.get(timelineIndex);
|
|
@@ -1997,7 +2011,7 @@ class MidyGMLite extends EventTarget {
|
|
|
1997
2011
|
}
|
|
1998
2012
|
const renderPromise = (async () => {
|
|
1999
2013
|
try {
|
|
2000
|
-
const rendered = await this.createFullRenderedBuffer(
|
|
2014
|
+
const rendered = await this.createFullRenderedBuffer(channel, note, voiceParams, noteDuration, noteEvent);
|
|
2001
2015
|
durationMap.set(cacheKey, rendered);
|
|
2002
2016
|
return rendered;
|
|
2003
2017
|
}
|
|
@@ -2024,7 +2038,6 @@ class MidyGMLite extends EventTarget {
|
|
|
2024
2038
|
note.renderedBuffer = isRendered ? audioBuffer : null;
|
|
2025
2039
|
note.bufferSource = this.createBufferSource(channel, voiceParams, audioBuffer);
|
|
2026
2040
|
note.volumeNode = new GainNode(audioContext);
|
|
2027
|
-
note.volumeNode.gain.setValueAtTime(1, now);
|
|
2028
2041
|
const cacheMode = this.cacheMode;
|
|
2029
2042
|
const isFullCached = isRendered && audioBuffer.isFull === true;
|
|
2030
2043
|
if (cacheMode === "none") {
|
|
@@ -2117,9 +2130,6 @@ class MidyGMLite extends EventTarget {
|
|
|
2117
2130
|
startTime = this.audioContext.currentTime;
|
|
2118
2131
|
const note = new Note(noteNumber, velocity, startTime);
|
|
2119
2132
|
note.channel = channelNumber;
|
|
2120
|
-
const channel = this.channels[channelNumber];
|
|
2121
|
-
note.index = channel.scheduledNotes.length;
|
|
2122
|
-
channel.scheduledNotes.push(note);
|
|
2123
2133
|
return note;
|
|
2124
2134
|
}
|
|
2125
2135
|
async setupNote(channelNumber, note, startTime) {
|
|
@@ -2142,6 +2152,8 @@ class MidyGMLite extends EventTarget {
|
|
|
2142
2152
|
note.voice = soundFont.getVoice(bank, programNumber, note.noteNumber, note.velocity);
|
|
2143
2153
|
if (!note.voice)
|
|
2144
2154
|
return;
|
|
2155
|
+
note.index = channel.scheduledNotes.length;
|
|
2156
|
+
channel.scheduledNotes.push(note);
|
|
2145
2157
|
await this.setNoteAudioNode(channel, note, realtime);
|
|
2146
2158
|
this.setNoteRouting(channelNumber, note, startTime);
|
|
2147
2159
|
note.resolveReady();
|
|
@@ -2187,18 +2199,8 @@ class MidyGMLite extends EventTarget {
|
|
|
2187
2199
|
const volRelease = endTime + volDuration;
|
|
2188
2200
|
note.volumeNode.gain
|
|
2189
2201
|
.cancelScheduledValues(endTime)
|
|
2190
|
-
.setValueAtTime(1, endTime)
|
|
2191
2202
|
.setTargetAtTime(0, endTime, volDuration * releaseCurve);
|
|
2192
|
-
|
|
2193
|
-
this.scheduleTask(() => {
|
|
2194
|
-
note.bufferSource.loop = false;
|
|
2195
|
-
note.bufferSource.stop(volRelease);
|
|
2196
|
-
this.disconnectNote(note);
|
|
2197
|
-
channel.scheduledNotes[note.index] = undefined;
|
|
2198
|
-
this.releaseFullCache(note);
|
|
2199
|
-
resolve();
|
|
2200
|
-
}, volRelease);
|
|
2201
|
-
});
|
|
2203
|
+
note.bufferSource.stop(volRelease);
|
|
2202
2204
|
}
|
|
2203
2205
|
else {
|
|
2204
2206
|
const now = this.audioContext.currentTime;
|
|
@@ -2208,15 +2210,16 @@ class MidyGMLite extends EventTarget {
|
|
|
2208
2210
|
this.releaseFullCache(note);
|
|
2209
2211
|
return Promise.resolve();
|
|
2210
2212
|
}
|
|
2211
|
-
|
|
2212
|
-
this.scheduleTask(() => {
|
|
2213
|
-
this.disconnectNote(note);
|
|
2214
|
-
channel.scheduledNotes[note.index] = undefined;
|
|
2215
|
-
this.releaseFullCache(note);
|
|
2216
|
-
resolve();
|
|
2217
|
-
}, naturalEndTime);
|
|
2218
|
-
});
|
|
2213
|
+
note.bufferSource.stop(naturalEndTime);
|
|
2219
2214
|
}
|
|
2215
|
+
return new Promise((resolve) => {
|
|
2216
|
+
note.bufferSource.onended = () => {
|
|
2217
|
+
this.disconnectNote(note);
|
|
2218
|
+
channel.scheduledNotes[note.index] = undefined;
|
|
2219
|
+
this.releaseFullCache(note);
|
|
2220
|
+
resolve();
|
|
2221
|
+
};
|
|
2222
|
+
});
|
|
2220
2223
|
}
|
|
2221
2224
|
const volDuration = note.voiceParams.volRelease;
|
|
2222
2225
|
const volRelease = endTime + volDuration;
|
|
@@ -2237,45 +2240,33 @@ class MidyGMLite extends EventTarget {
|
|
|
2237
2240
|
const noteOffTime = note.startTime + (rb.noteDuration ?? 0);
|
|
2238
2241
|
const isEarlyCut = endTime < noteOffTime;
|
|
2239
2242
|
if (isEarlyCut) {
|
|
2240
|
-
const volRelease = endTime + volDuration;
|
|
2241
2243
|
note.volumeNode.gain
|
|
2242
2244
|
.cancelScheduledValues(endTime)
|
|
2243
|
-
.setValueAtTime(1, endTime)
|
|
2244
2245
|
.setTargetAtTime(0, endTime, volDuration * releaseCurve);
|
|
2245
|
-
|
|
2246
|
-
this.scheduleTask(() => {
|
|
2247
|
-
note.bufferSource.stop(volRelease);
|
|
2248
|
-
this.disconnectNote(note);
|
|
2249
|
-
channel.scheduledNotes[note.index] = undefined;
|
|
2250
|
-
resolve();
|
|
2251
|
-
}, volRelease);
|
|
2252
|
-
});
|
|
2246
|
+
note.bufferSource.stop(volRelease);
|
|
2253
2247
|
}
|
|
2254
2248
|
else {
|
|
2255
|
-
|
|
2256
|
-
this.scheduleTask(() => {
|
|
2257
|
-
note.bufferSource.stop();
|
|
2258
|
-
this.disconnectNote(note);
|
|
2259
|
-
channel.scheduledNotes[note.index] = undefined;
|
|
2260
|
-
resolve();
|
|
2261
|
-
}, naturalEndTime);
|
|
2262
|
-
});
|
|
2249
|
+
note.bufferSource.stop(naturalEndTime);
|
|
2263
2250
|
}
|
|
2251
|
+
return new Promise((resolve) => {
|
|
2252
|
+
note.bufferSource.onended = () => {
|
|
2253
|
+
this.disconnectNote(note);
|
|
2254
|
+
channel.scheduledNotes[note.index] = undefined;
|
|
2255
|
+
resolve();
|
|
2256
|
+
};
|
|
2257
|
+
});
|
|
2264
2258
|
}
|
|
2265
2259
|
note.volumeNode.gain
|
|
2266
2260
|
.cancelScheduledValues(endTime)
|
|
2267
|
-
.setValueAtTime(1, endTime)
|
|
2268
2261
|
.setTargetAtTime(0, endTime, volDuration * releaseCurve);
|
|
2269
2262
|
}
|
|
2263
|
+
note.bufferSource.stop(volRelease);
|
|
2270
2264
|
return new Promise((resolve) => {
|
|
2271
|
-
|
|
2272
|
-
const bufferSource = note.bufferSource;
|
|
2273
|
-
bufferSource.loop = false;
|
|
2274
|
-
bufferSource.stop(volRelease);
|
|
2265
|
+
note.bufferSource.onended = () => {
|
|
2275
2266
|
this.disconnectNote(note);
|
|
2276
2267
|
channel.scheduledNotes[note.index] = undefined;
|
|
2277
2268
|
resolve();
|
|
2278
|
-
}
|
|
2269
|
+
};
|
|
2279
2270
|
});
|
|
2280
2271
|
}
|
|
2281
2272
|
noteOff(channelNumber, noteNumber, _velocity, endTime, force) {
|
|
@@ -2790,9 +2781,10 @@ class MidyGMLite extends EventTarget {
|
|
|
2790
2781
|
setMasterVolume(value, scheduleTime) {
|
|
2791
2782
|
if (!(0 <= scheduleTime))
|
|
2792
2783
|
scheduleTime = this.audioContext.currentTime;
|
|
2784
|
+
const timeConstant = this.perceptualSmoothingTime / 5; // 99.3% (5 * tau)
|
|
2793
2785
|
this.masterVolume.gain
|
|
2794
|
-
.
|
|
2795
|
-
.
|
|
2786
|
+
.cancelAndHoldAtTime(scheduleTime)
|
|
2787
|
+
.setTargetAtTime(value * value, scheduleTime, timeConstant);
|
|
2796
2788
|
}
|
|
2797
2789
|
handleSysEx(data, scheduleTime) {
|
|
2798
2790
|
switch (data[0]) {
|
package/script/midy.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ export class Midy extends EventTarget {
|
|
|
105
105
|
reverbEffect: {
|
|
106
106
|
input: any;
|
|
107
107
|
output: any;
|
|
108
|
-
}
|
|
108
|
+
};
|
|
109
109
|
chorusEffect: {
|
|
110
110
|
input: any;
|
|
111
111
|
output: any;
|
|
@@ -127,7 +127,7 @@ export class Midy extends EventTarget {
|
|
|
127
127
|
gainR: any;
|
|
128
128
|
merger: any;
|
|
129
129
|
};
|
|
130
|
-
createChannels(
|
|
130
|
+
createChannels(): Channel[];
|
|
131
131
|
decodeOggVorbis(sample: any): Promise<any>;
|
|
132
132
|
createAudioBuffer(voiceParams: any): Promise<any>;
|
|
133
133
|
isLoopDrum(channel: any, noteNumber: any): boolean;
|
|
@@ -160,24 +160,13 @@ export class Midy extends EventTarget {
|
|
|
160
160
|
processScheduledNotes(channel: any, callback: any): Promise<void>;
|
|
161
161
|
processActiveNotes(channel: any, scheduleTime: any, callback: any): Promise<void>;
|
|
162
162
|
applyToMPEChannels(channelNumber: any, fn: any): void;
|
|
163
|
-
createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
|
|
164
|
-
createConvolutionReverb(audioContext: any, impulse: any): {
|
|
165
|
-
input: any;
|
|
166
|
-
output: any;
|
|
167
|
-
convolverNode: any;
|
|
168
|
-
};
|
|
169
|
-
createCombFilter(audioContext: any, input: any, delay: any, feedback: any): any;
|
|
170
|
-
createAllpassFilter(audioContext: any, input: any, delay: any, feedback: any): any;
|
|
171
163
|
generateDistributedArray(center: any, count: any, varianceRatio?: number, randomness?: number): any[];
|
|
172
|
-
|
|
164
|
+
setReverbEffect(algorithm: any): void;
|
|
165
|
+
createReverbEffect(algorithm: any): {
|
|
173
166
|
input: any;
|
|
174
167
|
output: any;
|
|
175
168
|
};
|
|
176
|
-
|
|
177
|
-
input: any;
|
|
178
|
-
output: any;
|
|
179
|
-
} | undefined;
|
|
180
|
-
createChorusEffect(audioContext: any): {
|
|
169
|
+
createChorusEffect(): {
|
|
181
170
|
input: any;
|
|
182
171
|
output: any;
|
|
183
172
|
sendGain: any;
|
|
@@ -213,7 +202,7 @@ export class Midy extends EventTarget {
|
|
|
213
202
|
getAudioBuffer(channel: any, note: any, realtime: any): Promise<any>;
|
|
214
203
|
getAdsCachedBuffer(channel: any, note: any, audioBufferId: any, realtime: any): Promise<any>;
|
|
215
204
|
getAdsrCachedBuffer(channel: any, note: any, audioBufferId: any): Promise<any>;
|
|
216
|
-
getFullCachedBuffer(note: any, audioBufferId: any): Promise<any>;
|
|
205
|
+
getFullCachedBuffer(channel: any, note: any, audioBufferId: any): Promise<any>;
|
|
217
206
|
setNoteAudioNode(channel: any, note: any, realtime: any): Promise<any>;
|
|
218
207
|
handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
|
|
219
208
|
handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
|
|
@@ -394,7 +383,8 @@ export class Midy extends EventTarget {
|
|
|
394
383
|
scheduleTask(callback: any, scheduleTime: any): Promise<any>;
|
|
395
384
|
}
|
|
396
385
|
declare class Channel {
|
|
397
|
-
constructor(audioNodes: any, settings: any);
|
|
386
|
+
constructor(channelNumber: any, audioNodes: any, settings: any);
|
|
387
|
+
channelNumber: number;
|
|
398
388
|
isDrum: boolean;
|
|
399
389
|
programNumber: number;
|
|
400
390
|
scheduleIndex: number;
|
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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"}
|