Copyright | (c) Henning Thielemann 2006 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
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
- static :: (C a, Write sig b) => LazySize -> T a b -> T a -> a -> sig b
- freqMod :: (C a, Transform sig a, Transform sig b) => T a b -> T a -> sig a -> sig b
- phaseMod :: (C a, Transform sig a, Transform sig b) => T a b -> a -> sig a -> sig b
- shapeMod :: (C a, Transform sig c, Transform sig b) => (c -> T a b) -> T a -> a -> sig c -> sig b
- phaseFreqMod :: (C a, Transform sig a, Transform sig b) => T a b -> sig a -> sig a -> sig b
- shapeFreqMod :: (C a, Read sig c, Transform sig a, Transform sig b) => (c -> T a b) -> T a -> sig c -> sig a -> sig b
- staticSample :: (C a, Read wave b, Write sig b) => LazySize -> T a b -> wave b -> T a -> a -> sig b
- freqModSample :: (C a, Read wave b, Transform sig a, Transform sig b) => T a b -> wave b -> T a -> sig a -> sig b
- staticSine :: (C a, C a, Write sig a) => LazySize -> T a -> a -> sig a
- freqModSine :: (C a, C a, Transform sig a) => T a -> sig a -> sig a
- phaseModSine :: (C a, C a, Transform sig a) => a -> sig a -> sig a
- staticSaw :: (C a, Write sig a) => LazySize -> T a -> a -> sig a
- freqModSaw :: (C a, Transform sig a) => T a -> sig a -> sig a
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