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

Safe HaskellNone

Synthesizer.LLVM.Causal.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 (a ~ Input parameter b, b ~ Output parameter a) => C parameter a b 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.

Associated Types

type Input parameter b :: *Source

type Output parameter a :: *Source

Methods

process :: C process => process (parameter, a) bSource

Instances

(~ * a (Scalar v), PseudoModule v, RationalConstant a, C a, C v) => C (Parameter a) v v 
(~ * a (Scalar v), PseudoModule v, RationalConstant a, C a, C v) => C (Parameter a) v v 
(~ * a (Scalar v), PseudoModule v, RationalConstant a, C a, C v) => C (Parameter a) v (Result v) 
(~ * a (Scalar v), PseudoModule v, IntegerConstant a, C a, C v) => C (Parameter a) v (Result v) 
(Arithmetic a, IsConst a, C (Value (State a))) => C (Parameter a) (T (Value a)) (T (Value a)) 
(PseudoRing a, RationalConstant a, C a) => C (Parameter a) (T a) (T a) 
(Arithmetic a, RationalConstant a, C (Value (State a))) => C (Parameter a) (Value a) (Value a) 
(PseudoModule v, ~ * (Scalar v) a, IntegerConstant a, C v, Natural n) => C (Parameter n a) v v 
(~ * a (Scalar v), PseudoModule v, RationalConstant a, C a, C v, Natural n) => C (CascadeParameter n a) v v 
(~ * a (Scalar v), PseudoModule v, IntegerConstant a, FirstClass a, IsSized a, IsSized (Stored a), FirstClass v, IsSized v, IsSized (Stored v), Natural n, Positive (:*: n UnknownSize)) => C (ParameterValue n a) (Value v) (Value v)