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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.MIDI.CausalIO.Process

Synopsis

Documentation

type Events event = T StrictTime [event] Source #

slice :: C event => (event -> Maybe Int) -> (Int -> y) -> y -> T (Events event) (T ShortStrictTime y) Source #

controllerLinear :: (C event, C y) => Channel -> Controller -> (y, y) -> y -> T (Events event) (T ShortStrictTime y) Source #

controllerExponential :: (C event, C y) => Channel -> Controller -> (y, y) -> y -> T (Events event) (T ShortStrictTime y) Source #

pitchBend :: (C event, C y) => Channel -> y -> y -> T (Events event) (T ShortStrictTime y) Source #

channelPressure :: (C event, C y) => Channel -> y -> y -> T (Events event) (T ShortStrictTime y) Source #

bendWheelPressure :: (C event, C y, C y) => Channel -> Int -> y -> y -> T (Events event) (T ShortStrictTime (T y)) Source #

constant :: Arrow arrow => y -> arrow (Events event) (T ShortStrictTime y) Source #

type Instrument y chunk = y -> y -> T GateChunk chunk Source #

type Bank y chunk = Program -> Instrument y chunk Source #

noteEvents :: (C event, Arrow arrow) => Channel -> arrow (Events event) (Events (Either Program (NoteBoundary Bool))) Source #

applyInstrument :: Arrow arrow => (Program -> Velocity -> Pitch -> T GateChunk chunk) -> arrow (Events (NoteBoundary (NoteId, Maybe Program))) (T NoteOffList (Events (T NoteOffList chunk))) Source #

applyModulatedInstrument :: (Arrow arrow, Read ctrl) => (Program -> Velocity -> Pitch -> T (T GateChunk ctrl) chunk) -> arrow (T (Events (NoteBoundary (NoteId, Maybe Program))) ctrl) (T (T NoteOffList ctrl) (Events (T (T NoteOffList ctrl) chunk))) Source #

flattenControlSchedule :: (Monoid chunk, Arrow arrow) => arrow (T ctrl (T StrictTime [T ctrl chunk])) (T ctrl (T StrictTime (T ctrl chunk))) Source #

applyModulation :: (Transform ctrl, NormalForm ctrl, Read chunk, Monoid time, C time) => T (T ctrl (T time (T ctrl chunk))) (T time chunk) Source #

arrangeStorable :: (Arrow arrow, Storable a, C a) => arrow (T StrictTime (Vector a)) (Vector a) Source #

sequenceCore :: (C event, Monoid chunk, Read chunk, C y) => Channel -> Bank y chunk -> T (Events event) (T StrictTime chunk) Source #

sequenceModulated :: (C event, Monoid chunk, Read chunk, Transform ctrl, NormalForm ctrl, C y) => Channel -> ModulatedBank y ctrl chunk -> T (T (Events event) ctrl) (T StrictTime chunk) Source #

sequenceModulatedMultiProgram :: (C event, Monoid chunk, Read chunk, Transform ctrl, NormalForm ctrl, C y) => Channel -> Program -> ModulatedBank y ctrl chunk -> T (T (Events event) ctrl) (T StrictTime chunk) Source #

sequenceModulatedMultiProgramVelocityPitch :: (C event, Monoid chunk, Read chunk, Transform ctrl, NormalForm ctrl) => Channel -> Program -> (Program -> Velocity -> Pitch -> T (T GateChunk ctrl) chunk) -> T (T (Events event) ctrl) (T StrictTime chunk) Source #

may replace the other functions

sequenceStorable :: (C event, Storable a, C a, C y) => Channel -> Bank y (Vector a) -> T (Events event) (Vector a) Source #

initWith :: (y -> c) -> c -> T (Events y) (T ShortStrictTime c) Source #

mapMaybe :: (Arrow arrow, Functor f) => (a -> Maybe b) -> arrow (f [a]) (f [b]) Source #