@amplib/sound-transformation

GitHub ↗

SoundTransformation

SoundTransformation manipulates an audio buffer source node.

SoundTransformation({ audioContext: AudioContext }): { initialize({ audioBuffer: AudioBufferSourceNode; bpm: number; processorJSPath?: string; processorScriptTag?: HTMLScriptElement; destination?: AudioNode; }): void }

const transformation = new SoundTransformation({
  audioContext
});
transformation.initialize({
  audioBuffer,
  processorJSPath: "./path/to/processor",
  bpm: await detectBPM(buffer)
});
transformation.adjustPitchBySemitones();
transformation.adjustSpeedToBPM();