synthesizer-dimensional-0.7.0.1: Audio signal processing with static physical dimensions

Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Safe HaskellNone

Synthesizer.Dimensional.RateAmplitude.Cut

Contents

Description

 

Synopsis

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 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.

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)Source

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

arrangeSource

Arguments

:: (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.

arrangeVolumeSource

Arguments

:: (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.

arrangeStorableVolumeSource

Arguments

:: (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) (T (Phantom s) (Dimensional v y) (T yv)) -> T (Phantom s) (Dimensional v y) (T yv))

The mixed signal.