WebAssembly build of a small, pretty fast FFT library (PFFFT).
# web
# view source
example/web.ts
import { createRunner } from 'pretty-fast-fft'
const blockSize = 4096
const stepSize = 1024
const main = async () => {
const runner = await createRunner(blockSize, stepSize)
const buffer = await (await fetch('./test/fixtures/sound.ogg')).arrayBuffer()
const ctx = new OfflineAudioContext(1, 1, 44100)
const audioBuffer = await ctx.decodeAudioData(buffer)
const floats = audioBuffer.getChannelData(0)
const stft_magnitudes = runner.processAudio(floats)
console.log(stft_magnitudes)
}
main()
This is simply npm packaging for this project:
# createRunner
(blockSize, stepSize)
All contributions are welcome!