|
Synthesizer.Dimensional.Process | Portability | requires multi-parameter type classes
and local universal quantification | Stability | provisional | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
Description |
Light-weight sample parameter inference which will fit most needs.
We only do "poor man's inference", only for sample rates.
The sample rate will be provided as an argument of a special type T.
This argument will almost never be passed explicitly
but should be handled by operators analogous to '($)' and '(.)'.
In contrast to the run-time inference approach,
we have the static guarantee that the sample rate is fixed
before passing a signal to the outside world.
However we still need to make it safe that signals
that are rendered for one sample rate
are not processed with another sample rate.
|
|
Synopsis |
|
|
|
Documentation |
|
|
This wraps a function which computes a sample rate dependent result.
Sample rate tells how many values per unit are stored
for representation of a signal.
The process is labeled with a type variable s which is part the signals.
This way we can ensure that signals are only used
with the sample rate they are created for.
| Constructors | | Instances | |
|
|
|
Get results from the Process monad.
You can obtain only signals (or other values)
that do not implicitly depend on the sample rate,
that is value without the s type parameter.
|
|
withParam :: (a -> T s u t b) -> T s u t (a -> b) | Source |
|
|
|
|
toTimeScalar :: (C t, C u) => T u t -> T s u t t | Source |
|
|
|
|
toTimeDimension :: (C t, C u) => t -> T s u t (T u t) | Source |
|
|
|
|
loop |
|
|
|
$: |
|
$:: |
|
$^ |
|
$# |
|
.: |
|
.^ |
|
liftP |
|
liftP2 |
|
liftP3 |
|
liftP4 |
|
Produced by Haddock version 2.4.2 |