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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Dimensional.Wave.Controlled

Synopsis

Documentation

type T c t y = T (c, SamplePhase t) y Source #

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.