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

Copyright (c) Henning Thielemann 2006 GPL synthesizer@henning-thielemann.de provisional requires multi-parameter type classes None Haskell2010

Synthesizer.Generic.Oscillator

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

oscillator with constant frequency

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

oscillator with modulated frequency

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

oscillator with modulated phase

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

oscillator with modulated shape

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

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

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

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

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

sine oscillator with static frequency

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

sine oscillator with modulated frequency

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

sine oscillator with modulated phase, useful for FM synthesis

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

saw tooth oscillator with modulated frequency

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

saw tooth oscillator with modulated frequency