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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Dimensional.Sample

Synopsis

Documentation

data T amp yv Source #

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

Constructors

Cons amp yv 

Instances

C q yv => C AllpassCascadeGlobal (Parameter q) (T amp yv) (T amp yv) Source # 

Methods

process :: C u => T s u t (T s (T AllpassCascadeGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) Source #

C q yv => C MoogLowpassGlobal (Parameter q) (T amp yv) (T amp yv) Source # 

Methods

process :: C u => T s u t (T s (T MoogLowpassGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) Source #

C q yv => C UniversalGlobal (Parameter q) (T amp yv) (T amp (Result yv)) Source # 

Methods

process :: C u => T s u t (T s (T UniversalGlobal (RateDep s (Parameter q)), T amp yv) (T amp (Result yv))) Source #

(Storable q, Storable yv, C q yv) => C SecondOrderCascadeGlobal (Parameter q) (T amp yv) (T amp yv) Source # 

Methods

process :: C u => T s u t (T s (T SecondOrderCascadeGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) Source #

C q yv => C FirstOrderGlobal (Parameter q) (T amp yv) (T amp (Result yv)) Source # 

Methods

process :: C u => T s u t (T s (T FirstOrderGlobal (RateDep s (Parameter q)), T amp yv) (T amp (Result yv))) Source #

C q yv => C AllpassPhaserGlobal (q, Parameter q) (T amp yv) (T amp yv) Source # 

Methods

process :: C u => T s u t (T s (T AllpassPhaserGlobal (RateDep s (q, Parameter q)), T amp yv) (T amp yv)) Source #

Inspect (T amp yv) Source # 

Methods

amplitude :: T amp yv -> Amplitude (T amp yv) Source #

displacement :: T amp yv -> Displacement (T amp yv) Source #

Build (T amp yv) Source # 

Methods

build :: Amplitude (T amp yv) -> Displacement (T amp yv) -> T amp yv Source #

type Displacement (T amp yv) Source # 
type Displacement (T amp yv) = yv
type Amplitude (T amp yv) Source # 
type Amplitude (T amp yv) = amp

cons :: C amp => amp -> yv -> T amp yv Source #

type Dimensional v y yv = T (Dimensional v y) yv Source #

type Numeric amp yv = T (Numeric amp) yv Source #

type Flat y = T (Flat y) y Source #

type family Amplitude sample Source #

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

Instances

type Amplitude (sample0, sample1) Source # 
type Amplitude (sample0, sample1) = (Amplitude sample0, Amplitude sample1)
type Amplitude (T amp yv) Source # 
type Amplitude (T amp yv) = amp
type Amplitude (sample0, sample1, sample2) Source # 
type Amplitude (sample0, sample1, sample2) = (Amplitude sample0, Amplitude sample1, Amplitude sample2)

type family Displacement sample Source #

Instances

type Displacement (sample0, sample1) Source # 
type Displacement (sample0, sample1) = (Displacement sample0, Displacement sample1)
type Displacement (T amp yv) Source # 
type Displacement (T amp yv) = yv
type Displacement (sample0, sample1, sample2) Source # 
type Displacement (sample0, sample1, sample2) = (Displacement sample0, Displacement sample1, Displacement sample2)

class Build sample where Source #

Minimal complete definition

build

Methods

build :: Amplitude sample -> Displacement sample -> sample Source #

Instances

(Build sample0, Build sample1) => Build (sample0, sample1) Source # 

Methods

build :: Amplitude (sample0, sample1) -> Displacement (sample0, sample1) -> (sample0, sample1) Source #

Build (T amp yv) Source # 

Methods

build :: Amplitude (T amp yv) -> Displacement (T amp yv) -> T amp yv Source #

(Build sample0, Build sample1, Build sample2) => Build (sample0, sample1, sample2) Source # 

Methods

build :: Amplitude (sample0, sample1, sample2) -> Displacement (sample0, sample1, sample2) -> (sample0, sample1, sample2) Source #

class Inspect sample where Source #

Minimal complete definition

amplitude, displacement

Methods

amplitude :: sample -> Amplitude sample Source #

displacement :: sample -> Displacement sample Source #

Instances

(Inspect sample0, Inspect sample1) => Inspect (sample0, sample1) Source # 

Methods

amplitude :: (sample0, sample1) -> Amplitude (sample0, sample1) Source #

displacement :: (sample0, sample1) -> Displacement (sample0, sample1) Source #

Inspect (T amp yv) Source # 

Methods

amplitude :: T amp yv -> Amplitude (T amp yv) Source #

displacement :: T amp yv -> Displacement (T amp yv) Source #

(Inspect sample0, Inspect sample1, Inspect sample2) => Inspect (sample0, sample1, sample2) Source # 

Methods

amplitude :: (sample0, sample1, sample2) -> Amplitude (sample0, sample1, sample2) Source #

displacement :: (sample0, sample1, sample2) -> Displacement (sample0, sample1, sample2) Source #