synthesizer-0.2.0.1: Audio signal processing coded in HaskellSource codeContentsIndex
Synthesizer.Dimensional.RateAmplitude.Cut
Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Contents
dissection
glueing
Description
Synopsis
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 y yv) => T s u t ([R s v y yv] -> R s v y yv)
concatVolume :: (C y, C v, 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 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 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, C t, Ord y, C y, C v, C y yv) => T u t -> T s u t (T t (R s v y yv) -> R s v y yv)
arrangeVolume :: (C t, C u, RealFrac t, C t, C y, C v, C y yv) => T v y -> T u t -> T s u t (T t (R s v y yv) -> R s v y 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
take :: (C t, C u, C v) => T u t -> T s u t (R s v y yv -> R s v y yv)Source
drop :: (C t, C u, C v) => T u t -> T s u t (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
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))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
leftFromStereo :: C u => T s u t (R s u y (T yv) -> R s u y yv)Source
rightFromStereo :: C u => T s u t (R s u y (T yv) -> R s u y yv)Source
glueing
concat :: (Ord y, C y, C v, 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 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.
append :: (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 yv)Source
appendVolume :: (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 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
arrangeSource
:: (C t, C u, RealFrac t, C t, Ord y, C y, C v, C y yv)
=> T u tDim of the time values in the time ordered list.
-> T s u t (T t (R s v y yv) -> R s v y yv)The mixed signal.
Uses maximum input volume as output volume.
arrangeVolumeSource
:: (C t, C u, RealFrac t, C t, C y, C v, C y yv)
=> T v yOutput volume.
-> T u tDim of the time values in the time ordered list.
-> T s u 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. Ideally for composing music. Infinite schedules are not supported. Does not work for infinite lists, because no maximum amplitude can be computed.
Produced by Haddock version 2.4.2