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

Copyright(c) Henning Thielemann 2008-2009
LicenseGPL
Maintainersynthesizer@henning-thielemann.de
Stabilityprovisional
Portabilityrequires multi-parameter type classes
Safe HaskellNone
LanguageHaskell2010

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 #

arrange Source #

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.

arrangeVolume Source #

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.

arrangeStorableVolume Source #

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.