jam/js/dsp/dsp.jsi

79 lines
1.4 KiB
Plaintext

object DSP;
enum DSP = {
// Channels
LEFT,
RIGHT,
MIX,
// Waveforms
SINE,
TRIANGLE,
SAW,
SQUARE,
// Filters
LOWPASS,
HIGHPASS,
BANDPASS,
NOTCH,
// Window functions
BARTLETT,
BARTLETTHANN,
BLACKMAN,
COSINE,
GAUSS,
HAMMING,
HANN,
LANCZOS,
RECTANGULAR,
TRIANGULAR,
// Mean Filter
ARITH,
EXP,
PEAK,
// Loop modes
OFF,
FW,
BW,
FWBW,
// Math
TWO_PI
}
// Discrete Fourier Transform
constructor function DFT(bufferSize:number, sampleRate?:number) -> dft;
type dft = {
forward: method (@signal,spectrum:boolean) -> []|{real:[],imag:[]}
spectrum: []
}
// Fast Fourier Transform
constructor function FFT(bufferSize:number, sampleRate?:number) -> fft;
type fft = {
forward: method (@signal,spectrum:boolean) -> []|{real:[],imag:[]}
spectrum: {}
}
// Signal Generator
constructor function Oscillator(waveform:DSP, frequency:number,
amplitude:number, @bufferSize, @sampleRate?)
-> oscillator;
type oscillator = {
generate: method,
signal: []
}
// ...
DSP.Features = function(signal:[]) -> {min:number,max:number,mean:number,deviation:number}
DSP.Histogram = function(signal:[],intervals:number) -> []
DSP.Normalize = function(signal:[]) -> []
DSP.Reduce = function(signal:[],segments:number,filter:DSP) -> []
DSP.Resample = function(signal:[],divider:number,filter:DSP) -> []