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

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

Synthesizer.State.Control

Description

 

Synopsis

Documentation

constant :: a -> T a Source #

line Source #

Arguments

:: 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.

linear Source #

Arguments

:: 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.

exponential Source #

Arguments

:: C a 
=> a

time where the function reaches 1/e of the initial value

-> a

initial value

-> T a

exponential decay

exponentialMultiscale Source #

Arguments

:: C a 
=> a

time where the function reaches 1/e of the initial value

-> a

initial value

-> T a

exponential decay

exponentialMultiscaleNeutral Source #

Arguments

:: C y 
=> y

time where the function reaches 1/e of the initial value

-> T y

exponential decay

exponential2 Source #

Arguments

:: C a 
=> a

half life

-> a

initial value

-> T a

exponential decay

exponential2Multiscale Source #

Arguments

:: C a 
=> a

half life

-> a

initial value

-> T a

exponential decay

exponential2MultiscaleNeutral Source #

Arguments

:: C y 
=> y

half life

-> T y

exponential decay

exponentialFromTo Source #

Arguments

:: 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

exponentialFromToMultiscale Source #

Arguments

:: 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

vectorExponential Source #

Arguments

:: (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.

vectorExponential2 Source #

Arguments

:: (C a, C a v) 
=> a

half life

-> v

initial value

-> T v

exponential decay

cosine Source #

Arguments

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

curveMultiscale :: (y -> y -> y) -> y -> y -> T y Source #

curveMultiscaleNeutral :: (y -> y -> y) -> y -> y -> T y Source #