synthesizer-llvm-0.2.0.1: Efficient signal processing using runtime compilation

Synthesizer.LLVM.CausalParameterized.Controlled

Description

This module provides a type class that automatically selects a filter for a given parameter type. We choose the dependency this way because there may be different ways to specify the filter parameters but there is only one implementation of the filter itself.

Synopsis

Documentation

class C parameter a b | parameter a -> b, parameter b -> a whereSource

A filter parameter type uniquely selects a filter function. However it does not uniquely determine the input and output type, since the same filter can run on mono and stereo signals.

Methods

process :: T p (parameter, a) bSource

Instances

(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v) => C (Parameter (Value a)) (Value v) (Result (Value v)) 
(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v) => C (Parameter (Value a)) (Value v) (Value v) 
(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v) => C (Parameter (Value a)) (Value v) (Result (Value v)) 
(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v) => C (Parameter (Value a)) (Value v) (Value v) 
(C a, IsConst a, Arithmetic a, IsSized (Vector D4 a) as) => C (Parameter a) (Value a) (Value a) 
(IsConst a, Arithmetic a, IsSized (Vector D4 a) as) => C (Parameter a) (T (Value a)) (T (Value a)) 
(IsFirstClass a, IsSized a sa, IsConst a, IsFloating a) => C (Parameter (Value a)) (T (Value a)) (T (Value a)) 
(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v, Nat n) => C (CascadeParameter n (Value a)) (Value v) (Value v) 
(C a, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v, Nat n, Mul n UnknownSize paramSize, Pos paramSize) => C (ParameterValue n a) (Value v) (Value v) 
(C a v, C (T a) (T v), IsFirstClass a, IsSized a as, IsConst a, IsArithmetic a, IsFirstClass v, IsSized v vs, IsConst v, IsArithmetic v, MakeValueTuple a (Value a), MakeValueTuple v (Value v), Storable v, Nat n) => C (Parameter n (Value a)) (Value v) (Value v) 

processCtrlRate :: (C parameter a b, Memory parameter struct, IsSized struct ss, C r, IsFloating r, Storable r, IsConst r, MakeValueTuple r (Value r), CmpRet r Bool, IsSized r rs) => T p r -> (T p r -> T p parameter) -> T p a bSource