|Portability||requires multi-parameter type classes|
|Waveforms which are smoothed according to the oscillator frequency
in order to suppress aliasing effects.
|data T t y|
|fromFunction :: (t -> t -> y) -> T t y|
|fromWave :: (C t, C t, C y) => T t y -> T t y|
|fromControlledWave :: (C t, C t, C y) => (t -> T t y) -> T t y|
|raise :: C y => y -> T t y -> T t y|
|amplify :: C y => y -> T t y -> T t y|
|distort :: (y -> z) -> T t y -> T t z|
|apply :: T t y -> t -> T t -> y|
|sine :: (C a, C a) => T a a|
|cosine :: (C a, C a) => T a a|
|saw :: (C a, C a) => T a a|
|square :: (C a, C a) => T a a|
|triangle :: (C a, C a) => T a a|
|data Harmonic a|
|harmonic :: T a -> a -> Harmonic a|
|composedHarmonics :: (C a, C a) => [Harmonic a] -> T a a|
|C a y => C a (T t y)|
|C y => C (T t y)|
|fromFunction :: (t -> t -> y) -> T t y||Source|
|Use this function for waves which are sufficiently smooth.
If the Nyquist frequency is exceeded the wave is simply replaced
by a constant zero wave.
|fromControlledWave :: (C t, C t, C y) => (t -> T t y) -> T t y||Source|
|distort :: (y -> z) -> T t y -> T t z||Source|
|map a phase to value of a sine wave
it's a ramp down in order to have a positive coefficient for the first partial sine
|This is similar to Polar coordinates,
but the range of the phase is from 0 to 1, 0 to 2*pi.
Specify the wave by its harmonics.
The function is implemented quite efficiently
by applying the Horner scheme to a polynomial with complex coefficients
(the harmonic parameters)
using a complex exponential as argument.
|Produced by Haddock version 2.4.2|