synthesizer-dimensional-0.8.1: Audio signal processing with static physical dimensions

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

Synthesizer.Dimensional.RateAmplitude.Control

Contents

Description

Control curves which can be used as envelopes, for controlling filter parameters and so on.

Synopsis

Primitives

constant Source #

Arguments

:: (C y, C u, C v) 
=> T v y

value

-> T s u t (R s v y y) 

constantVector Source #

Arguments

:: T v y

amplitude

-> yv

value

-> T s u t (R s v y yv) 

The amplitude must be positive! This is not checked.

linear Source #

Arguments

:: (C q, C q, C u, C v) 
=> T (DimensionGradient u v) q

slope of the curve

-> T v q

initial value

-> T s u q (R s v q q) 

Caution: This control curve can contain samples with an absolute value greater than 1.

Linear curves starting with zero are impossible. Maybe you prefer using line.

line Source #

Arguments

:: (C q, C u, C v) 
=> T u q

duration of the ramp

-> (T v q, T v q)

initial and final value

-> T s u q (R s v q q) 

Generates a finite ramp.

exponential Source #

Arguments

:: (C q, C q, C u, C v) 
=> T u q

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

-> T v q

initial value

-> T s u q (R s v q q) 

exponential2 Source #

Arguments

:: (C q, C q, C u, C v) 
=> T u q

half life, time where the function reaches 1/2 of the initial value

-> T v q

initial value

-> T s u q (R s v q q) 

exponentialFromTo Source #

Arguments

:: (C q, C q, C u, C v) 
=> T u q

duration of the ramp

-> (T v q, T v q)

initial and final value

-> T s u q (R s v q q) 

Generate an exponential curve through two nodes.

cubicHermite :: (C q, C u, C v) => (T u q, (T v q, T (DimensionGradient u v) q)) -> (T u q, (T v q, T (DimensionGradient u v) q)) -> T s u q (R s v q q) Source #