|
Synthesizer.State.Control | Portability | requires multi-parameter type classes | Stability | provisional | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
|
|
Description |
|
|
Synopsis |
|
|
|
|
Control curve generation
|
|
|
|
|
:: C a | | => a | steepness
| -> a | initial value
| -> T a | linear progression
|
|
|
linearMultiscale :: C y => y -> y -> T y | Source |
|
As stable as the addition of time values.
|
|
linearMultiscaleNeutral :: C y => y -> T y | Source |
|
Linear curve starting at zero.
|
|
|
:: C y | | => Int | length
| -> (y, y) | initial and final value
| -> T y | linear progression
| Linear curve of a fixed length.
The final value is not actually reached,
instead we stop one step before.
This way we can concatenate several lines
without duplicate adjacent values.
|
|
|
|
:: C a | | => a | time where the function reaches 1/e of the initial value
| -> a | initial value
| -> T a | exponential decay
|
|
|
|
:: C a | | => a | time where the function reaches 1/e of the initial value
| -> a | initial value
| -> T a | exponential decay
|
|
|
exponentialMultiscaleNeutral | Source |
|
:: C y | | => y | time where the function reaches 1/e of the initial value
| -> T y | exponential decay
|
|
|
|
:: C a | | => a | half life
| -> a | initial value
| -> T a | exponential decay
|
|
|
|
:: C a | | => a | half life
| -> a | initial value
| -> T a | exponential decay
|
|
|
exponential2MultiscaleNeutral | Source |
|
:: C y | | => y | half life
| -> T y | exponential decay
|
|
|
exponentialFromToMultiscale | Source |
|
:: C y | | => y | time where the function reaches 1/e of the initial value
| -> y | initial value
| -> y | value after given time
| -> T y | exponential decay
|
|
|
|
:: C y | | => y | time where the function reaches 1/e of the initial value
| -> y | initial value
| -> y | value after given time
| -> T y | exponential decay
|
|
|
|
:: (C a, C a v) | | => a | time where the function reaches 1/e of the initial value
| -> v | initial value
| -> T v | exponential decay
| This is an extension of exponential to vectors
which is straight-forward but requires more explicit signatures.
But since it is needed rarely I setup a separate function.
|
|
|
|
:: (C a, C a v) | | => a | half life
| -> v | initial value
| -> T v | exponential decay
|
|
|
|
:: C a | | => a | time t0 where 1 is approached
| -> a | time t1 where -1 is approached
| -> T a | a cosine wave where one half wave is between t0 and t1
|
|
|
cubicHermite :: C a => (a, (a, a)) -> (a, (a, a)) -> T a | Source |
|
|
piecewise curves
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auxiliary functions
|
|
curveMultiscale :: (y -> y -> y) -> y -> y -> T y | Source |
|
|
curveMultiscaleNeutral :: (y -> y -> y) -> y -> y -> T y | Source |
|
|
Produced by Haddock version 2.4.2 |