synthesizer-alsa-0.3: Control synthesizer effects via ALSA/MIDI

Synthesizer.Storable.ALSA.MIDI

Description

Convert MIDI events of a MIDI controller to a control signal.

Synopsis

Documentation

piecewiseConstantInitWith :: Storable c => (y -> c) -> c -> T StrictTime [y] -> T cSource

controllerLinear :: (Storable y, C y) => Channel -> Controller -> (y, y) -> y -> Filter (T y)Source

controllerExponential :: (Storable y, C y) => Channel -> Controller -> (y, y) -> y -> Filter (T y)Source

pitchBend :: (Storable y, C y) => Channel -> y -> y -> Filter (T y)Source

pitchBend channel range center: emits frequencies on an exponential scale from center/range to center*range.

channelPressure :: (Storable y, C y) => Channel -> y -> y -> Filter (T y)Source

bendWheelPressure :: (Storable y, C y, C y) => Channel -> Int -> y -> y -> y -> Filter (T y)Source

type Instrument y yv = Instrument y (T yv)Source

type Bank y yv = Bank y (T yv)Source

sequence :: (Storable yv, C yv, C y) => ChunkSize -> Channel -> Instrument y yv -> Filter (T yv)Source

sequenceModulated :: (Storable c, Storable yv, C yv, C y) => ChunkSize -> T c -> Channel -> (T c -> Instrument y yv) -> Filter (T yv)Source

sequenceMultiModulated :: (Storable yv, C yv, C y) => ChunkSize -> Channel -> instrument -> Modulator (instrument, Note) (Instrument y yv, Note) -> Filter (T yv)Source

applyModulation :: Storable c => T c -> Modulator (T c -> instr, note) (instr, note)Source

sequenceMultiProgram :: (Storable yv, C yv, C y) => ChunkSize -> Channel -> Program -> [Instrument y yv] -> Filter (T yv)Source

renderInstrument :: C y => Bank y signal -> Note -> signalSource

Instrument parameters are: velocity from -1 to 1 (0 is the normal pressure, no pressure aka NoteOff is not supported), frequency is given in Hertz

evaluateVectorHead :: NormalForm signal => signal -> t -> tSource

We have to evaluate the head value at each drop in order to avoid growing thunks that lead to a space leak.