MCPcopy Index your code
hub / github.com/corbanbrook/dsp.js

github.com/corbanbrook/dsp.js @main sqlite

repository ↗ · DeepWiki ↗
253 symbols 509 edges 22 files 6 documented · 2%
README

DSP.js

NOTE: This project is no longer maintained (and hasnt been for years). I wrote this when I was much younger and experimenting in Audio and DSP. This is no longer much of a passion of mine.

DSP.js is a digital signal processing library for javascript. It includes many functions for signal analysis and generation, including Oscillators (sine, saw, square, triangle), Window functions (Hann, Hamming, etc), Envelopes (ADSR), IIR Filters (lowpass, highpass, bandpass, notch), FFT and DFT transforms, Delays, Reverb.

Modules

  • DFT(bufferSize, sampleRate): Discrete Fourier Transform
  • Usage: js var dft = new DFT(1024, 44100); dft.forward(signal); var spectrum = dft.spectrum;

  • FFT(bufferSize, sampleRate): Fast Fourier Transform

  • Usage: js var fft = new FFT(2048, 44100); fft.forward(signal); var spectrum = fft.spectrum;

  • Oscillator(waveform, frequency, amplitude, bufferSize, sampleRate): Signal Generator

  • Sine wave
  • Square wave
  • Saw wave
  • Triangle wave
  • Usage: js var osc = new Oscillator(SINEWAVE, 440, 1, 2048, 22050); osc.generate(); var signal = osc.signal;

  • ADSR(attack, decay, sustainLevel, sustain, release, sampleRate): Attack-Decay-Sustain-Release Envelope

  • Usage: js var envelope = new ADSR(0.01, 0.1, 0.5, 0.1, 0.2, 44100); envelope.process(signal);

  • IIRFilter(filter, cutoff, sampleRate): Infinite Impulse Response Filters

  • Low Pass Filter
  • High Pass Filter
  • Usage: js var filter = IIRFilter(LOWPASS, 200, 44100); filter.process(signal);

  • MultiDelay(maxDelayInSamplesSize, delayInSamples, masterVolume, delayVolume): Delay which feeds back its own delayed signal

  • Usage: js var delay = MultiDelay(44100*5, 44100*1, 1.0, 0.6); delay.process(signal);

  • Reverb(maxDelayInSamplesSize, delayInSamples, masterVolume, mixVolume, delayVolume, dampFrequency): Reverb

  • Usage: js var reverb = Reverb(20000, 6500, 0.8, 0.5, 0.9, 4500); reverb.process(signal);

Core symbols most depended-on inside this repo

uniformMatrix
called by 37
examples/js/processing.js
uniformf
called by 32
examples/js/processing.js
uniformi
called by 24
examples/js/processing.js
vertexAttribPointer
called by 22
examples/js/processing.js
newWebGLArray
called by 15
examples/js/processing.js
executeContextStroke
called by 13
examples/js/processing.js
addAtom
called by 13
examples/js/processing.js
executeContextFill
called by 12
examples/js/processing.js

Shape

Function 253

Languages

TypeScript100%

Modules by API surface

examples/js/processing.js165 symbols
examples/js/jquery-1.4.2.min.js32 symbols
examples/js/jquery-ui-1.8.custom.min.js26 symbols
dsp.js17 symbols
test/audio-harness.js3 symbols
test/reverb-test.js1 symbols
test/oscillator-test.js1 symbols
test/multidelay-test.js1 symbols
test/iirfilter-test.js1 symbols
test/filter-test.js1 symbols
test/fft-test.js1 symbols
test/dft-test.js1 symbols

For agents

$ claude mcp add dsp.js \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact