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

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

Synthesizer.State.Cut

Contents

Description

 

Synopsis

dissection

takeUntilPause :: C a => a -> Int -> T a -> T aSource

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

takeUntilInterval :: (a -> Bool) -> Int -> T a -> T aSource

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 aSource

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

arrangeSource

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.

arrangeListSource

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