Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stagas/pretty-fast-fft

WebAssembly build of a small, pretty fast FFT library (PFFFT).
https://github.com/stagas/pretty-fast-fft

Last synced: 13 days ago
JSON representation

WebAssembly build of a small, pretty fast FFT library (PFFFT).

Awesome Lists containing this project

README

        


pretty-fast-fft

WebAssembly build of a small, pretty fast FFT library (PFFFT).



npm i pretty-fast-fft

pnpm add pretty-fast-fft

yarn add pretty-fast-fft

## Examples

# web

    # view source example/web.ts

    ```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:

> https://github.com/JorenSix/pffft.wasm

## API

# createRunner(blockSize, stepSize)

    # blockSize  =  1024


      number

    # stepSize  =  128

      number


    createRunner(blockSize, stepSize)  =>



      Promise<{

      # destroy()


        destroy()  =>


          void



# processAudio(samples)

    # samples


      Float32Array


    processAudio(samples)  =>


      number [] []
}>

## Contributing

[Fork](https://github.com/stagas/pretty-fast-fft/fork) or [edit](https://github.dev/stagas/pretty-fast-fft) and submit a PR.

All contributions are welcome!

## License

MIT © 2022 [stagas](https://github.com/stagas)