79 lines
1.4 KiB
Plaintext
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) -> []
|