synthesizer-dimensional-0.7.0.1: Audio signal processing with static physical dimensions

Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Safe HaskellNone

Synthesizer.Dimensional.Rate.Oscillator

Contents

Description

This module contains various oscillators that respect physical dimensions. By using the type variable amp we show, that the oscillators are homogeneous functions. But since there are even no restrictions on the sample type, we even show that values from the waveform go untouched to the output signal.

Synopsis

Oscillators with constant waveforms

staticSource

Arguments

:: (C t, C u) 
=> T t (T amp y)

waveform

-> T t

start phase

-> T (Recip u) t

frequency

-> T s u t (Signal s amp y) 

oscillator with a functional waveform with constant frequency

freqModSource

Arguments

:: (C t, C u) 
=> T t (T amp y)

waveform

-> T t

start phase

-> T s u t (R s (Recip u) t t -> Signal s amp y) 

oscillator with a functional waveform with modulated frequency

phaseModSource

Arguments

:: (C t flat, C t, C u) 
=> T t (T amp y)

waveform

-> T (Recip u) t

frequency

-> T s u t (Signal s flat t -> Signal s amp y) 

oscillator with modulated phase

phaseFreqModSource

Arguments

:: (C t flat, C t, C u) 
=> T t (T amp y)

waveform

-> T s u t (Signal s flat t -> R s (Recip u) t t -> Signal s amp y) 

oscillator with a functional waveform with modulated phase and frequency

shapeModSource

Arguments

:: (C t, C u) 
=> T (T cAmp c) t (T amp y)

waveform

-> T t

phase

-> T (Recip u) t

frequency

-> T s u t (Signal s cAmp c -> Signal s amp y) 

oscillator with modulated shape

shapeFreqModSource

Arguments

:: (C t, C u) 
=> T (T cAmp c) t (T amp y)

waveform

-> T t

phase

-> T s u t (Signal s cAmp c -> R s (Recip u) t t -> Signal s amp y) 

oscillator with both shape and frequency modulation

staticSampleSource

Arguments

:: (C t, C u) 
=> T t y 
-> T rate amp (T (T y))

waveform

-> T t

start phase

-> T (Recip u) t

frequency

-> T s u t (Signal s amp y) 

oscillator with a sampled waveform with constant frequency This is essentially an interpolation with cyclic padding. You can also achieve this with a waveform constructed by sample.

freqModSampleSource

Arguments

:: (C t, C u) 
=> T t y 
-> T rate amp (T (T y))

waveform

-> T t

start phase

-> T s u t (R s (Recip u) t t -> Signal s amp y) 

oscillator with a sampled waveform with modulated frequency Should behave homogenously for different types of interpolation.

shapeFreqModFromSampledToneSource

Arguments

:: (C t, C u, C t flat) 
=> T t yv 
-> T t yv 
-> T (Recip u) t

source frequency

-> T (Dimensional u t) amp (T yv) 
-> t 
-> T t 
-> T s u t (Signal s flat t -> R s (Recip u) t t -> Signal s amp yv) 

shapePhaseFreqModFromSampledToneSource

Arguments

:: (C t, C u, C t flatS, C t flatP) 
=> T t yv 
-> T t yv 
-> T (Recip u) t

source frequency

-> T (Dimensional u t) amp (T yv) 
-> t 
-> T t 
-> T s u t (Signal s flatS t -> Signal s flatP t -> R s (Recip u) t t -> Signal s amp yv)