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

Safe HaskellNone




data T amp yv Source

The constructor is only needed for arr, which is a kind of a hack.


Cons amp yv 


C q yv => C AllpassCascadeGlobal (Parameter q) (T amp yv) (T amp yv) 
C q yv => C MoogLowpassGlobal (Parameter q) (T amp yv) (T amp yv) 
C q yv => C UniversalGlobal (Parameter q) (T amp yv) (T amp (Result yv)) 
(Storable q, Storable yv, C q yv) => C SecondOrderCascadeGlobal (Parameter q) (T amp yv) (T amp yv) 
C q yv => C FirstOrderGlobal (Parameter q) (T amp yv) (T amp (Result yv)) 
C q yv => C AllpassPhaserGlobal (q, Parameter q) (T amp yv) (T amp yv) 
Inspect (T amp yv) 
Build (T amp yv) 

cons :: C amp => amp -> yv -> T amp yvSource

type Dimensional v y yv = T (Dimensional v y) yvSource

type Numeric amp yv = T (Numeric amp) yvSource

type Flat y = T (Flat y) ySource

type family Amplitude sample Source

When you define additional instances, take care that displacements and amplitudes cannot be brought out of order!

type family Displacement sample Source

class Build sample whereSource


build :: Amplitude sample -> Displacement sample -> sampleSource


(Build sample0, Build sample1) => Build (sample0, sample1) 
Build (T amp yv) 
(Build sample0, Build sample1, Build sample2) => Build (sample0, sample1, sample2) 

class Inspect sample whereSource


amplitude :: sample -> Amplitude sampleSource

displacement :: sample -> Displacement sampleSource


(Inspect sample0, Inspect sample1) => Inspect (sample0, sample1) 
Inspect (T amp yv) 
(Inspect sample0, Inspect sample1, Inspect sample2) => Inspect (sample0, sample1, sample2)