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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Generic.Control

Synopsis

Documentation

constant :: Write sig y => LazySize -> y -> sig y Source #

linear Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

steepness

-> y

initial value

-> sig y

linear progression

linearMultiscale :: (C y, Write sig y) => LazySize -> y -> y -> sig y Source #

Minimize rounding errors by reducing number of operations per element to a logarithmuc number.

linearMultiscaleNeutral :: (C y, Write sig y) => LazySize -> y -> sig y Source #

Linear curve starting at zero.

line Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> Int

length

-> (y, y)

initial and final value

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

exponential Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

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

-> y

initial value

-> sig y

exponential decay

exponentialMultiscale Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

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

-> y

initial value

-> sig y

exponential decay

exponentialMultiscaleNeutral Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

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

-> sig y

exponential decay

exponential2 Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

half life

-> y

initial value

-> sig y

exponential decay

exponential2Multiscale Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

half life

-> y

initial value

-> sig y

exponential decay

exponential2MultiscaleNeutral Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

half life

-> sig y

exponential decay

vectorExponential Source #

Arguments

:: (C y, C y v, Write sig v) 
=> LazySize 
-> y

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

-> v

initial value

-> sig 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 y, C y v, Write sig v) 
=> LazySize 
-> y

half life

-> v

initial value

-> sig v

exponential decay

cosine Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

time t0 where 1 is approached

-> y

time t1 where -1 is approached

-> sig y

a cosine wave where one half wave is between t0 and t1

cosineMultiscaleLinear Source #

Arguments

:: (C y, Write sig y) 
=> LazySize 
-> y

time t0 where 1 is approached

-> y

time t1 where -1 is approached

-> sig y

a cosine wave where one half wave is between t0 and t1

cosineMultiscale Source #

Arguments

:: (C y, Write sig (T y), Transform sig (T y), Transform sig y) 
=> LazySize 
-> y

time t0 where 1 is approached

-> y

time t1 where -1 is approached

-> sig y

a cosine wave where one half wave is between t0 and t1

cosineWithSlope :: C y => (y -> y -> signal) -> y -> y -> signal Source #

cubicHermite :: (C y, Write sig y) => LazySize -> (y, (y, y)) -> (y, (y, y)) -> sig y Source #