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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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 Source #

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)