Portability | requires multi-parameter type classes |
---|---|
Stability | provisional |
Maintainer | synthesizer@henning-thielemann.de |
Safe Haskell | None |
- splitAt :: (C t, C u, C v, Storable yv) => T u t -> T s u t (R s v y yv -> (R s v y yv, R s v y yv))
- take :: (C t, C u, C v) => T u t -> T s u t (R s v y yv -> R s v y yv)
- drop :: (C t, C u, C v) => T u t -> T s u t (R s v y yv -> R s v y yv)
- takeUntilPause :: (C t, C u, C y, C y yv, C v) => T v y -> T u t -> T s u t (R s v y yv -> R s v y yv)
- unzip :: (C u, C v) => T s u t (R s v y (yv0, yv1) -> (R s v y yv0, R s v y yv1))
- unzip3 :: (C u, C v) => T s u t (R s v y (yv0, yv1, yv2) -> (R s v y yv0, R s v y yv1, R s v y yv2))
- leftFromStereo :: C u => T s u t (R s u y (T yv) -> R s u y yv)
- rightFromStereo :: C u => T s u t (R s u y (T yv) -> R s u y yv)
- concat :: (Ord y, C y, C v, C u, C y yv) => T s u t ([R s v y yv] -> R s v y yv)
- concatVolume :: (C y, C v, C u, C y yv) => T v y -> T s u t ([R s v y yv] -> R s v y yv)
- append :: (Ord y, C y, C v, C u, C y yv) => T s u t (R s v y yv -> R s v y yv -> R s v y yv)
- appendVolume :: (C y, C v, C u, C y yv) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y yv)
- zip :: (Ord y, C y, C v, C y yv0, C y yv1) => T s u t (R s v y yv0 -> R s v y yv1 -> R s v y (yv0, yv1))
- zipVolume :: (C y, C v, C y yv0, C y yv1) => T v y -> T s u t (R s v y yv0 -> R s v y yv1 -> R s v y (yv0, yv1))
- zip3 :: (Ord y, C y, C v, C y yv0, C y yv1, C y yv2) => T s u t (R s v y yv0 -> R s v y yv1 -> R s v y yv2 -> R s v y (yv0, yv1, yv2))
- zip3Volume :: (C y, C v, C y yv0, C y yv1, C y yv2) => T v y -> T s u t (R s v y yv0 -> R s v y yv1 -> R s v y yv2 -> R s v y (yv0, yv1, yv2))
- mergeStereo :: (Ord y, C y, C v, C y yv) => T s u t (R s v y yv -> R s v y yv -> R s v y (T yv))
- mergeStereoVolume :: (C y, C v, C y yv) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y (T yv))
- arrange :: (C t, C u, RealFrac t, Ord y, C y, C v, C y yv, Storable yv) => T u t -> T u t -> T s u t (T (T t) (R s v y yv) -> R s v y yv)
- arrangeVolume :: (C t, C u, RealFrac t, C y, C v, C y yv, Storable yv) => T u t -> T v y -> T u t -> T s u t (T (T t) (R s v y yv) -> R s v y yv)
- arrangeStorableVolume :: (C t, C u, RealFrac t, C y, C v, C y yv, Storable yv) => T u t -> T v y -> T u t -> T s u t (T (T t) (T (Phantom s) (Dimensional v y) (T yv)) -> T (Phantom s) (Dimensional v y) (T yv))
dissection
splitAt :: (C t, C u, C v, Storable yv) => T u t -> T s u t (R s v y yv -> (R s v y yv, R s v y yv))Source
takeUntilPause :: (C t, C u, C y, C y yv, C v) => T v y -> T u t -> T s u t (R s v y yv -> R s v y yv)Source
unzip3 :: (C u, C v) => T s u t (R s v y (yv0, yv1, yv2) -> (R s v y yv0, R s v y yv1, R s v y yv2))Source
glueing
concat :: (Ord y, C y, C v, C u, C y yv) => T s u t ([R s v y yv] -> R s v y yv)Source
Similar to foldr1 append
but more efficient and accurate,
because it reduces the number of amplifications.
Does not work for infinite lists,
because no maximum amplitude can be computed.
concatVolume :: (C y, C v, C u, C y yv) => T v y -> T s u t ([R s v y yv] -> R s v y yv)Source
Give the output volume explicitly. Does also work for infinite lists.
appendVolume :: (C y, C v, C u, C y yv) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y yv)Source
zip :: (Ord y, C y, C v, C y yv0, C y yv1) => T s u t (R s v y yv0 -> R s v y yv1 -> R s v y (yv0, yv1))Source
zipVolume :: (C y, C v, C y yv0, C y yv1) => T v y -> T s u t (R s v y yv0 -> R s v y yv1 -> R s v y (yv0, yv1))Source
zip3 :: (Ord y, C y, C v, C y yv0, C y yv1, C y yv2) => T s u t (R s v y yv0 -> R s v y yv1 -> R s v y yv2 -> R s v y (yv0, yv1, yv2))Source
zip3Volume :: (C y, C v, C y yv0, C y yv1, C y yv2) => T v y -> T s u t (R s v y yv0 -> R s v y yv1 -> R s v y yv2 -> R s v y (yv0, yv1, yv2))Source
mergeStereo :: (Ord y, C y, C v, C y yv) => T s u t (R s v y yv -> R s v y yv -> R s v y (T yv))Source
mergeStereoVolume :: (C y, C v, C y yv) => T v y -> T s u t (R s v y yv -> R s v y yv -> R s v y (T yv))Source
:: (C t, C u, RealFrac t, Ord y, C y, C v, C y yv, Storable yv) | |
=> T u t | Maximum chunk size |
-> T u t | Unit of the time values in the time ordered list. |
-> T s u t (T (T t) (R s v y yv) -> R s v y yv) | The mixed signal. |
Uses maximum input volume as output volume. Does not work for infinite schedules, because no maximum amplitude can be computed.
:: (C t, C u, RealFrac t, C y, C v, C y yv, Storable yv) | |
=> T u t | Maximum chunk size |
-> T v y | Output volume |
-> T u t | Unit of the time values in the time ordered list. |
-> T s u t (T (T t) (R s v y yv) -> R s v y yv) | The mixed signal. |
Given a list of signals with time stamps, mix them into one signal as they occur in time. Ideal for composing music.