synthesizer-core-0.8.2: Audio signal processing coded in Haskell: Low level part

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

Synthesizer.State.Cut

Contents

Description

 

Synopsis

dissection

takeUntilPause :: C a => a -> Int -> T a -> T a Source #

Take signal until it falls short of a certain amplitude for a given time.

takeUntilInterval :: (a -> Bool) -> Int -> T a -> T a Source #

Take values until the predicate p holds for n successive values. The list is truncated at the beginning of the interval of matching values.

chopStorable :: Storable a => T Bool -> T a -> [T a] Source #

Split a storable signal into a sequence of signals. A new piece is started whenever the Boolean signal contains a True. The first piece in the result is the part from the beginning until the first True. That is, if the signal Bool starts with a True, then the first result piece is empty.

When the control signal is at least as long as the storable signal and if we neglect the chunking structure, then it holds

concat (chopStorable bs xs) == xs

glueing

selectBool :: (T a, T a) -> T Bool -> T a Source #

select :: Ix i => Array i (T a) -> T i -> T a Source #

arrange Source #

Arguments

:: C v 
=> T Int (T v)

A list of pairs: (relative start time, signal part), The start time is relative to the start time of the previous event.

-> T v

The mixed signal.

arrangeList Source #

Arguments

:: C v 
=> T Int (T v)

A list of pairs: (relative start time, signal part), The start time is relative to the start time of the previous event.

-> T v

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.

Cf. series