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

Safe HaskellNone

Synthesizer.Storable.Cut

Synopsis

Documentation

arrange

Arguments

:: (Storable v, C v) 
=> ChunkSize 
-> 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.

arrangeAdaptive

Arguments

:: (Storable v, C v) 
=> ChunkSize 
-> 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.

Chunk sizes are adapted to the time differences. Explicit ChunkSize parameter is only required for zero padding. Since no ST monad is needed, this can be generalized to Generic.Signal.Transform class.

arrangeList

Arguments

:: (Storable v, C v) 
=> ChunkSize 
-> 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.

This function also uses the time differences as chunk sizes, but may occasionally use smaller chunk sizes due to the chunk structure of an input signal until the next signal starts.

addShiftedMany :: (Storable a, C a) => ChunkSize -> [Int] -> [T a] -> T a

addShifted :: (Storable a, C a) => ChunkSize -> Int -> T a -> T a -> T a

arrangeEquidist

Arguments

:: (Storable v, C v) 
=> ChunkSize 
-> 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.

The result is a Lazy StorableVector with chunks of the given size.

addToBuffer :: (Storable a, C a) => Vector s a -> Int -> T a -> ST s (Int, T a)

addChunkToBuffer :: (Storable a, C a) => Vector s a -> Int -> Vector a -> ST s ()

unsafeAddChunkToBuffer :: (Storable a, C a) => Vector s a -> Int -> Vector a -> ST s ()

chunk must fit into the buffer

unsafeAddChunkToBufferFoldr :: (Storable a, C a) => Vector s a -> Int -> Vector a -> ST s ()

chunk must fit into the buffer

addToBufferFoldr :: (Storable a, C a) => Vector s a -> Int -> T a -> ST s (Int, T a)

addToBufferSwitchL :: (Storable a, C a) => Vector s a -> Int -> T a -> ST s (Int, T a)