@magenta/music
Version:
Make music with machine learning, in the browser.
37 lines • 1.27 kB
JavaScript
import * as Tone from 'tone';
import { arrayBufferToAudioBuffer } from './buffer_utils';
export async function addReverb({ audioCtx, arrayBuffer, sampleRate, }) {
Tone.setContext(audioCtx);
let bufferWithReverb;
let resampledAudioBuffer = arrayBufferToAudioBuffer(audioCtx, arrayBuffer, sampleRate);
const renderingPromise = Tone.Offline(() => {
const limiter = new Tone
.Compressor({
attack: 0.001,
release: 0.001,
threshold: -6,
})
.toDestination();
const reverb = new Tone
.Reverb({
wet: 0.3,
decay: 3,
})
.connect(limiter);
const filter = new Tone.Filter(8000, 'lowpass', -24).connect(reverb);
const player = new Tone
.Player({
url: resampledAudioBuffer,
})
.connect(filter);
player.start();
return reverb.ready;
}, arrayBuffer.length / sampleRate);
bufferWithReverb = await renderingPromise;
const bufferWithReverbData = bufferWithReverb.getChannelData(0);
resampledAudioBuffer = null;
bufferWithReverb.dispose();
bufferWithReverb = null;
return bufferWithReverbData;
}
//# sourceMappingURL=add_reverb.js.map