|
Synthesizer.Inference.Func.Signal | Portability | requires multi-parameter type classes | Stability | provisional | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
|
|
Description |
|
|
Synopsis |
|
|
|
Documentation |
|
|
Each process must work the following way:
If the signal processor has a fixed sample rate or amplitude
either implied by its parameters or its inputs
then this parameter should be set as Just
in the corresponding fields of SigP.T.
These fields must be computed
independently from the function argument of type (t',y').
This function argument is the pair of eventually used signal parameters
sample rate and amplitude.
If you set signal parameters to Just with a value,
then you can expect that the corresponding pair member has the same value.
| Constructors | |
|
|
|
|
|
Since all Just values must contain the same value,
we could also use the data structure '(Peano, a)'
just like in the unique-logic package.
| Constructors | Parameter | | parameterDesc :: [Maybe a] | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inSampleRate :: (t', y') -> t' | Source |
|
|
inAmplitude :: (t', y') -> y' | Source |
|
|
|
|
|
|
zipJut :: (a -> a -> a) -> [a] -> [a] -> [a] | Source |
|
|
|
Merge the Justs of two lists.
It does not check for validity of the data.
|
|
|
|
|
|
|
|
merge :: [a] -> [a] -> [a] | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
This routine is prepared for infinite lists.
In order to handle them we employ a Cantor diagonalization scheme.
It does not check for validity of the data
(i.e. equal Just values)
but it does only keep some Justs,
and thus allows for a quick search of a guess of a parameter value.
|
|
|
|
|
|
|
|
|
This is a simple working version of mergeParameters,
which does not need Eq constraint.
However, flattening a three-dimensional list
does handle different dimensions differently,
that is slower than the others.
|
|
|
|
|
|
|
|
|
:: Eq t' | | => t' | sample rate
| -> T t t' y y' yv | passed through signal
| -> T t t' y y' yv | | A complex signal graph can be built without ever mentioning a sampling rate.
However when it comes to playing or writing a file,
we must determine the sampling rate eventually.
This function simply passes a signal through
while forcing it to the given sampling rate.
|
|
|
Is this one correct? Has the usage of infered a cycle?
|
|
|
:: Eq t' | | => T t t' y y' yv -> T t t' y y' yv | process chain that shall be looped
| -> T t t' y y' yv | | Create a loop (feedback) from one node to another one.
That is, compute the fix point of a process iteration.
|
|
|
Produced by Haddock version 2.3.0 |