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

Safe HaskellNone
LanguageHaskell98

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
  • class (a ~ Input parameter b, b ~ Output parameter a) => C parameter a b where
  • processCtrlRate :: (C parameter a b, C parameter) => (C r, IntegerConstant r, Additive r, Comparison r) => Exp r -> (Exp r -> T parameter) -> T a b

Documentation

class (a ~ Input parameter b, b ~ Output parameter a) => C parameter a b where Source #

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 :: T (parameter, a) b Source #

Instances
(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v) => C (Parameter a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) v :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) v Source #

(a ~ Scalar v, PseudoModule v, RationalConstant a, C a, C v) => C (Parameter a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) v :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) v Source #

(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (Result v) :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

(PseudoModule v, Scalar v ~ a, RationalConstant a, C a, C v) => C (Parameter a) v (Result v) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (Result v) :: Type Source #

type Output (Parameter a) v :: Type Source #

Methods

process :: T (Parameter a, v) (Result v) Source #

(PseudoRing a, RationalConstant a, C a) => C (Parameter a) (T a) (T a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (T a) :: Type Source #

type Output (Parameter a) (T a) :: Type Source #

Methods

process :: T0 (Parameter a, T a) (T a) Source #

(Vector n a, n ~ D3, PseudoRing a, inp ~ T a, out ~ T a) => C (ParameterMV a) (T inp) (T out) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (ParameterMV a) (T out) :: Type Source #

type Output (ParameterMV a) (T inp) :: Type Source #

Methods

process :: T0 (ParameterMV a, T inp) (T out) Source #

(C a, Vector D4 a, PseudoRing a) => C (Parameter a) (T a) (T a) Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter a) (T a) :: Type Source #

type Output (Parameter a) (T a) :: Type Source #

Methods

process :: T0 (Parameter a, T a) (T a) Source #

(C ae ve, Aggregate ae a, Aggregate ve v, C v, Natural n) => C (Parameter n a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (Parameter n a) v :: Type Source #

type Output (Parameter n a) v :: Type Source #

Methods

process :: T (Parameter n a, v) v Source #

(C ae ve, Aggregate ae a, Aggregate ve v, C a, C v, Natural n) => C (CascadeParameter n a) v v Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (CascadeParameter n a) v :: Type Source #

type Output (CascadeParameter n a) v :: Type Source #

Methods

process :: T (CascadeParameter n a, v) v Source #

(a ~ Scalar v, PseudoModule v, C a, IntegerConstant a, C v, Natural n, Positive (n :*: UnknownSize), inp ~ T v, out ~ T v) => C (ParameterValue n a) inp out Source # 
Instance details

Defined in Synthesizer.LLVM.Causal.Controlled

Associated Types

type Input (ParameterValue n a) out :: Type Source #

type Output (ParameterValue n a) inp :: Type Source #

Methods

process :: T (ParameterValue n a, inp) out Source #

processCtrlRate :: (C parameter a b, C parameter) => (C r, IntegerConstant r, Additive r, Comparison r) => Exp r -> (Exp r -> T parameter) -> T a b Source #