Safe Haskell | None |
---|

- data T amp yv = Cons amp yv
- cons :: C amp => amp -> yv -> T amp yv
- type Dimensional v y yv = T (Dimensional v y) yv
- type Numeric amp yv = T (Numeric amp) yv
- type Flat y = T (Flat y) y
- type Abstract y = T Abstract y
- type family Amplitude sample
- type family Displacement sample
- class Build sample where
- build :: Amplitude sample -> Displacement sample -> sample

- class Inspect sample where
- amplitude :: sample -> Amplitude sample
- displacement :: sample -> Displacement sample

# Documentation

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) |

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

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 Inspect sample whereSource

amplitude :: sample -> Amplitude sampleSource

displacement :: sample -> Displacement sampleSource