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

Safe HaskellNone

Synthesizer.Dimensional.Wave.Controlled

Synopsis

Documentation

type T c t y = T (c, SamplePhase t) ySource

We define a dimensional parametrized waveform in terms of a Map. This allows any kind and number of control parameters and distortion of waveforms using (distortion <<<)

simple :: Primitive cAmp => amp -> (c -> T t y) -> T (T cAmp c) t (T amp y)Source

flat :: (C y, Primitive cAmp) => (c -> T t y) -> T (T cAmp c) t (Flat y)Source

abstract :: Primitive cAmp => (c -> T t y) -> T (T cAmp c) t (Abstract y)Source

amplified :: (C y, C u, Primitive cAmp) => T u y -> (c -> T t y) -> T (T cAmp c) t (Dimensional u y y)Source

mapLinear :: (C y, C u, Primitive cAmp) => y -> T u y -> (c -> T t y) -> T (T cAmp c) t (Dimensional u y y)Source

mapExponential :: (C y, C u, Primitive cAmp) => y -> T u y -> (c -> T t y) -> T (T cAmp c) t (Dimensional u y y)Source

sampledTone :: (C t, Transform sig y, C u) => T t y -> T t y -> T u t -> T (Dimensional u t) amp (sig y) -> T (Flat t) t (T amp y)Source

Interpolate first within waves and then across waves, which is simpler but maybe less efficient for lists. However for types with fast indexing/drop like StorableVector this is optimal.