Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type Events event = T StrictTime [event]
- slice :: C event => (event -> Maybe Int) -> (Int -> y) -> y -> T (Events event) (T ShortStrictTime y)
- controllerLinear :: (C event, C y) => Channel -> Controller -> (y, y) -> y -> T (Events event) (T ShortStrictTime y)
- controllerExponential :: (C event, C y) => Channel -> Controller -> (y, y) -> y -> T (Events event) (T ShortStrictTime y)
- pitchBend :: (C event, C y) => Channel -> y -> y -> T (Events event) (T ShortStrictTime y)
- channelPressure :: (C event, C y) => Channel -> y -> y -> T (Events event) (T ShortStrictTime y)
- bendWheelPressure :: (C event, C y, C y) => Channel -> Int -> y -> y -> T (Events event) (T ShortStrictTime (T y))
- constant :: Arrow arrow => y -> arrow (Events event) (T ShortStrictTime y)
- type Instrument y chunk = y -> y -> T GateChunk chunk
- type Bank y chunk = Program -> Instrument y chunk
- type GateChunk = Chunk Velocity
- noteEvents :: (C event, Arrow arrow) => Channel -> arrow (Events event) (Events (Either Program (NoteBoundary Bool)))
- embedPrograms :: Program -> T (Events (Either Program (NoteBoundary Bool))) (Events (NoteBoundary (Maybe Program)))
- applyInstrument :: Arrow arrow => (Program -> Velocity -> Pitch -> T GateChunk chunk) -> arrow (Events (NoteBoundary (NoteId, Maybe Program))) (T NoteOffList (Events (T NoteOffList chunk)))
- 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)))
- flattenControlSchedule :: (Monoid chunk, Arrow arrow) => arrow (T ctrl (T StrictTime [T ctrl chunk])) (T ctrl (T StrictTime (T ctrl chunk)))
- applyModulation :: (Transform ctrl, NormalForm ctrl, Read chunk, Monoid time, C time) => T (T ctrl (T time (T ctrl chunk))) (T time chunk)
- arrangeStorable :: (Arrow arrow, Storable a, C a) => arrow (T StrictTime (Vector a)) (Vector a)
- sequenceCore :: (C event, Monoid chunk, Read chunk, C y) => Channel -> Bank y chunk -> T (Events event) (T StrictTime chunk)
- 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)
- 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)
- 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)
- sequenceStorable :: (C event, Storable a, C a, C y) => Channel -> Bank y (Vector a) -> T (Events event) (Vector a)
- initWith :: (y -> c) -> c -> T (Events y) (T ShortStrictTime c)
- mapMaybe :: (Arrow arrow, Functor f) => (a -> Maybe b) -> arrow (f [a]) (f [b])
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 #
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 #
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 #
embedPrograms :: Program -> T (Events (Either Program (NoteBoundary Bool))) (Events (NoteBoundary (Maybe Program))) 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