synthesizer-midi-0.6.1.2: Render audio signals from MIDI files or realtime messages
Safe HaskellSafe-Inferred
LanguageHaskell2010

Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Description

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

Synopsis

Documentation

data T key a Source #

Constructors

Cons (Map key a) (T StrictTime [(key, a)]) 

Instances

Instances details
Monoid (T key y) Source # 
Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

mempty :: T key y #

mappend :: T key y -> T key y -> T key y #

mconcat :: [T key y] -> T key y #

Semigroup (T key y) Source # 
Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

(<>) :: T key y -> T key y -> T key y #

sconcat :: NonEmpty (T key y) -> T key y #

stimes :: Integral b => b -> T key y -> T key y #

(Show key, Show a) => Show (T key a) Source # 
Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

showsPrec :: Int -> T key a -> ShowS #

show :: T key a -> String #

showList :: [T key a] -> ShowS #

(NFData key, NFData a) => NormalForm (T key a) Source # 
Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

evaluateHead :: T key a -> () #

Read (T key a) Source # 
Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

null :: T key a -> Bool #

length :: T key a -> Int #

Ord key => Transform (T key y) Source #

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.

Instance details

Defined in Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Methods

take :: Int -> T key y -> T key y #

drop :: Int -> T key y -> T key y #

dropMarginRem :: Int -> Int -> T key y -> (Int, T key y) #

splitAt :: Int -> T key y -> (T key y, T key y) #

reverse :: T key y -> T key y #

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

fromChannel :: C event => Channel -> Filter event (T Controller Int) Source #

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

initial :: T key a -> Map key a Source #

stream :: T key a -> T StrictTime [(key, a)] Source #