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

Safe HaskellNone




data Chunk a Source

Chunk represents a chunk of a Gate signal.

It means (Chunk chunkDuration sustainDuration).

sustainDuration means: Just (t,a) - key is released at time t with attribute a, e.g. the note-off-velocity, t must be smaller than chunkDuration! Nothing - key is in pressed or released state over the whole chunk


Chunk StrictTime (Maybe (StrictTime, a)) 


chunk :: StrictTime -> Maybe (StrictTime, a) -> Chunk aSource

smart constructor that checks the time constraints

allToStorableVector :: Arrow arrow => arrow (Chunk a) (Vector ())Source

shorten :: Transform signal => T (T (Chunk a) signal) signalSource

Pass the second signal while the gate is open.

For completeness we would need a data type analogously to ChunkySize, that measures signal duration in CausalIO processes. shorten could then be written as

 shorten = Zip.second ^<< Zip.arrowFirstShort Gate.toChunkySize