Copyright | (c) Henning Thielemann 2006 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- takeUntilPause :: C a => a -> Int -> T a -> T a
- takeUntilInterval :: (a -> Bool) -> Int -> T a -> T a
- chopStorable :: Storable a => T Bool -> T a -> [T a]
- chopChunkySize :: T Bool -> T -> [T]
- selectBool :: (T a, T a) -> T Bool -> T a
- select :: Ix i => Array i (T a) -> T i -> T a
- arrange :: C v => T Int (T v) -> T v
- arrangeList :: C v => T Int (T v) -> T v
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