dsp.js

Digital Signal Processing for Javascript

  • Owner: corbanbrook/dsp.js
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    3
      Compare:

Github stars Tracking Chart

DSP.js

DSP.js is a comprehensive 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:
      var dft = new DFT(1024, 44100);
      dft.forward(signal);
      var spectrum = dft.spectrum;
      
  • FFT(bufferSize, sampleRate): Fast Fourier Transform

    • Usage:
      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:
      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:
      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:
      var filter = IIRFilter(LOWPASS, 200, 44100);
      filter.process(signal);
      
  • MultiDelay(maxDelayInSamplesSize, delayInSamples, masterVolume, delayVolume): Delay which feeds back its own delayed signal

    • Usage:
      var delay = MultiDelay(44100*5, 44100*1, 1.0, 0.6);
      delay.process(signal);  
      
  • Reverb(maxDelayInSamplesSize, delayInSamples, masterVolume, mixVolume, delayVolume, dampFrequency): Reverb

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

Main metrics

Overview
Name With Ownercorbanbrook/dsp.js
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2010-02-24 16:42:00
Pushed At2022-04-16 16:00:57
Last Commit At2022-04-16 12:00:57
Release Count0
用户参与
Stargazers Count1.8k
Watchers Count58
Fork Count238
Commits Count89
Has Issues Enabled
Issues Count26
Issue Open Count24
Pull Requests Count7
Pull Requests Open Count8
Pull Requests Close Count7
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private