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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.MIDI.PiecewiseConstant.ControllerSet

Contents

Description

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

Synopsis

Documentation

data T key a Source #

Constructors

Cons 

Fields

Instances

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

Methods

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

show :: T key a -> String #

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

Semigroup (T key y) Source # 

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 #

Monoid (T key y) Source # 

Methods

mempty :: T key y #

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

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

Read (T key a) Source # 

Methods

null :: T key a -> Bool #

length :: T key a -> Int #

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

Methods

evaluateHead :: T key a -> () #

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.

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