tur/dsp

stdlib/dsp.tur
defn

sine

(sine [freq phase])

sine-wave oscillator Signal Function.

freqfrequency in Hz (float64)
phaseinitial phase offset in radians (float64)
A Signal Function: sig -> (fn [t] sin(2*pi*freq*t + phase)).

  (sine 440.0 0.0)  ; => 440 Hz sine wave SF
defn

square

(square [freq dutycycle])

square-wave oscillator Signal Function.

freqfrequency in Hz (float64)
dutycycleduty cycle in [0,1] (float64)
A Signal Function: sig -> (fn [t] 1.0 if phase < duty else -1.0).

  (square 440.0 0.5)  ; => 440 Hz square wave SF
defn

sawtooth

(sawtooth [freq])

sawtooth-wave oscillator Signal Function.

freqfrequency in Hz (float64)
A Signal Function: sig -> (fn [t] frac(freq*t) in [0,1)).

  (sawtooth 440.0)  ; => 440 Hz sawtooth wave SF
defn

low-pass

(low-pass [alpha])

first-order IIR low-pass filter Signal Function.

alphasmoothing coefficient in (0,1); lower = more smoothing.
A Signal Function that smooths the input signal.

  (low-pass 0.5)  ; => SF applying EMA with alpha=0.5
defn

high-pass

(high-pass [alpha])

first-order IIR high-pass filter Signal Function.

alphafilter coefficient in (0,1).
A Signal Function applying high-pass filtering.

  (high-pass 0.5)  ; => high-pass SF with alpha=0.5
defn

gain

(gain [g])

scale a signal by a constant factor.

ggain factor (float64)
A Signal Function that multiplies each sample by g.

  ((gain 2.0) my-sig)  ; => signal scaled by 2.0
defn

mix

(mix [alpha])

weighted mix of a pair signal.

alphamix coefficient in [0,1]: 0 = all first, 1 = all second.
A Signal Function on Pair signals: out = alpha*a + (1-alpha)*b.

  ((mix 0.5) (pair-signals sig-a sig-b))  ; => equal mix
defn

add

(add)

sum a pair signal sample-wise.

A Signal Function on Pair signals: out = a + b.

  ((add) (pair-signals sig-a sig-b))  ; => sum signal
Internal definitions
__dsp_sin-- compute sine of angle in radians.
__dsp_fmod-- compute floating-point modulo.