Skip to content

Commit ed12970

Browse files
Update README to markdown
1 parent 52d60e4 commit ed12970

File tree

2 files changed

+67
-81
lines changed

2 files changed

+67
-81
lines changed

README

-81
This file was deleted.

README.md

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# DSP.js
2+
3+
DSP.js is a comprehensive digital signal processing library for javascript.
4+
It includes many functions for signal analysis and generation, including
5+
Oscillators (sine, saw, square, triangle), Window functions (Hann, Hamming, etc),
6+
Envelopes (ADSR), IIR Filters (lowpass, highpass, bandpass, notch), FFT and DFT
7+
transforms, Delays, Reverb.
8+
9+
## Modules
10+
11+
* `DFT(bufferSize, sampleRate)`: Discrete Fourier Transform
12+
* Usage:
13+
```js
14+
var dft = new DFT(1024, 44100);
15+
dft.forward(signal);
16+
var spectrum = dft.spectrum;
17+
```
18+
19+
* `FFT(bufferSize, sampleRate)`: Fast Fourier Transform
20+
* Usage:
21+
```js
22+
var fft = new FFT(2048, 44100);
23+
fft.forward(signal);
24+
var spectrum = fft.spectrum;
25+
```
26+
27+
* `Oscillator(waveform, frequency, amplitude, bufferSize, sampleRate)`: Signal Generator
28+
* Sine wave
29+
* Square wave
30+
* Saw wave
31+
* Triangle wave
32+
* Usage:
33+
```js
34+
var osc = new Oscillator(SINEWAVE, 440, 1, 2048, 22050);
35+
osc.generate();
36+
var signal = osc.signal;
37+
```
38+
39+
* `ADSR(attack, decay, sustainLevel, sustain, release, sampleRate)`: Attack-Decay-Sustain-Release Envelope
40+
* Usage:
41+
```js
42+
var envelope = new ADSR(0.01, 0.1, 0.5, 0.1, 0.2, 44100);
43+
envelope.process(signal);
44+
```
45+
46+
* `IIRFilter(filter, cutoff, sampleRate)`: Infinite Impulse Response Filters
47+
* Low Pass Filter
48+
* High Pass Filter
49+
* Usage:
50+
```
51+
var filter = IIRFilter(LOWPASS, 200, 44100);
52+
filter.process(signal);
53+
```
54+
55+
* `MultiDelay(maxDelayInSamplesSize, delayInSamples, masterVolume, delayVolume)`: Delay which feeds back its own delayed signal
56+
* Usage:
57+
```js
58+
var delay = MultiDelay(44100*5, 44100*1, 1.0, 0.6);
59+
delay.process(signal);
60+
```
61+
62+
* `Reverb(maxDelayInSamplesSize, delayInSamples, masterVolume, mixVolume, delayVolume, dampFrequency)`: Reverb
63+
* Usage:
64+
```js
65+
var reverb = Reverb(20000, 6500, 0.8, 0.5, 0.9, 4500);
66+
reverb.process(signal);
67+
```

0 commit comments

Comments
 (0)