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

Safe HaskellNone

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 chunkSource

type Bank y chunk = Program -> Instrument y chunkSource

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