synthesizer-core-0.7.1: Audio signal processing coded in Haskell: Low level part

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

Synthesizer.Generic.Oscillator

Contents

Description

Tone generators

Frequencies are always specified in ratios of the sample rate, e.g. the frequency 0.01 for the sample rate 44100 Hz means a physical frequency of 441 Hz.

Synopsis

Oscillators with arbitrary but constant waveforms

static :: (C a, Write sig b) => LazySize -> T a b -> T a -> a -> sig b

oscillator with constant frequency

freqMod :: (C a, Transform sig a, Transform sig b) => T a b -> T a -> sig a -> sig b

oscillator with modulated frequency

phaseMod :: (C a, Transform sig a, Transform sig b) => T a b -> a -> sig a -> sig b

oscillator with modulated phase

shapeMod :: (C a, Transform sig c, Transform sig b) => (c -> T a b) -> T a -> a -> sig c -> sig b

oscillator with modulated shape

phaseFreqMod :: (C a, Transform sig a, Transform sig b) => T a b -> sig a -> sig a -> sig b

oscillator with both phase and frequency modulation

shapeFreqMod :: (C a, Read sig c, Transform sig a, Transform sig b) => (c -> T a b) -> T a -> sig c -> sig a -> sig b

oscillator with both shape and frequency modulation

staticSample :: (C a, Read wave b, Write sig b) => LazySize -> T a b -> wave b -> T a -> a -> sig b

oscillator with a sampled waveform with constant frequency This is essentially an interpolation with cyclic padding.

freqModSample :: (C a, Read wave b, Transform sig a, Transform sig b) => T a b -> wave b -> T a -> sig a -> sig b

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

Oscillators with specific waveforms

staticSine :: (C a, C a, Write sig a) => LazySize -> T a -> a -> sig a

sine oscillator with static frequency

freqModSine :: (C a, C a, Transform sig a) => T a -> sig a -> sig a

sine oscillator with modulated frequency

phaseModSine :: (C a, C a, Transform sig a) => a -> sig a -> sig a

sine oscillator with modulated phase, useful for FM synthesis

staticSaw :: (C a, Write sig a) => LazySize -> T a -> a -> sig a

saw tooth oscillator with modulated frequency

freqModSaw :: (C a, Transform sig a) => T a -> sig a -> sig a

saw tooth oscillator with modulated frequency