synthesizer-midi-0.6: Render audio signals from MIDI files or realtime messages

Safe HaskellNone




Treat a stream of MIDI events as parallel streams of MIDI controller events.



data T key a Source




initial :: Map key a
stream :: T StrictTime [(key, a)]


(Show key, Show a) => Show (T key a) 
Monoid (T key y) 
Ord key => Transform (T key y)

For reverse you must make sure, that all controller events have an corresponding initial value. Controllers that miss an initial value their last constant piece will be undefined.

Read (T key a) 
(NFData key, NFData a) => NormalForm (T key a) 

mapStream :: (T StrictTime [(key, a)] -> T StrictTime [(key, a)]) -> T key a -> T key aSource

maybeController :: C event => Channel -> event -> Maybe (Controller, Int)Source

controllerLinear :: C y => Controller -> (y, y) -> y -> Filter (T y)Source

controllerExponential :: C y => Controller -> (y, y) -> y -> Filter (T y)Source

pitchBend :: C y => y -> y -> Filter (T y)Source

pitchBend channel range center: emits frequencies on an exponential scale from center/range to center*range.

channelPressure :: C y => y -> y -> Filter (T y)Source

bendWheelPressure :: (C y, C y) => Int -> y -> y -> Filter (T (T y))Source

bendWheelPressureZip :: (C y, C y) => Int -> y -> y -> Filter (T (T y))Source

internal data needed in synthesizer-llvm