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

Copyright(c) Henning Thielemann 2008-2010
LicenseGPL
Maintainersynthesizer@henning-thielemann.de
Stabilityprovisional
Portabilityrequires multi-parameter type classes
Safe HaskellNone
LanguageHaskell2010

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

static #

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

freqMod #

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

phaseMod #

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

phaseFreqMod #

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

shapeMod #

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

shapeFreqMod #

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

staticSample #

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.

freqModSample #

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.

shapeFreqModFromSampledTone #

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) 

shapePhaseFreqModFromSampledTone #

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)