// create oscillator of `pow(2,8)` frames (256)
const osc: IFFTOscillator = new IFFTOscillator(8);
// specify real and imaginary levels
osc.createWave(
[0,0,0,0],
[1, 1/2, 1/4, 1/8]);
osc.fft.calculateInverse();
osc.frequency = 440; // set frequency of tone to be played
// get sample for next frame
osc.next();
Example MIDI instrument with LFO oscillators altering the levels of different frequencies:
Additive synthesis using inverse FFT.
Includes an FFT implementation for Assemblyscript: https://github.com/petersalomonsen/javascriptmusic/blob/d56b6a7e4cdc65115334d30f383fa075e2bce716/wasmaudioworklet/synth1/assembly/math/fft.ts
Example MIDI instrument with LFO oscillators altering the levels of different frequencies: