synthesizer-alsa-0.3: Control synthesizer effects via ALSA/MIDI



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



data T key a Source


(Show key, Show a) => Show (T key a) 
Monoid (T key y) 
Read (T key a) 
(NFData key, NFData a) => NormalForm (T key a) 
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.

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

data BendModulation a Source


BendModulation a a 


shiftBendModulation :: C a => a -> BendModulation a -> BendModulation aSource

Multiply the pitch bend by a given factor. This way you can e.g. shift the pitch bend from around 1 to the actual frequency.

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