Safe Haskell | None |
---|---|
Language | Haskell98 |
Midi.
- data Msg :: *
- type Channel = Int
- midi :: Sigs a => (Msg -> SE a) -> a
- midin :: Sigs a => Channel -> (Msg -> SE a) -> a
- pgmidi :: Sigs a => Maybe Int -> Channel -> (Msg -> SE a) -> a
- ampCps :: Msg -> (D, D)
- midi_ :: (Msg -> SE ()) -> SE ()
- midin_ :: Channel -> (Msg -> SE ()) -> SE ()
- pgmidi_ :: Maybe Int -> Channel -> (Msg -> SE ()) -> SE ()
- monoMsg :: D -> D -> SE (Sig, Sig)
- holdMsg :: D -> SE (Sig, Sig)
- monoMsgn :: Channel -> D -> D -> SE (Sig, Sig)
- holdMsgn :: Channel -> D -> SE (Sig, Sig)
- pgmonoMsg :: Maybe Int -> Channel -> D -> D -> SE (Sig, Sig)
- pgholdMsg :: Maybe Int -> Channel -> D -> SE (Sig, Sig)
- cpsmidi :: Msg -> D
- ampmidi :: Msg -> D -> D
- initc7 :: D -> D -> D -> SE ()
- ctrl7 :: D -> D -> D -> D -> Sig
- midiCtrl7 :: D -> D -> D -> D -> D -> SE Sig
- midiCtrl :: D -> D -> D -> SE Sig
- umidiCtrl :: D -> D -> D -> SE Sig
- class MidiInstr a where
- type MidiInstrOut a :: *
- onMsg :: a -> Msg -> SE (MidiInstrOut a)
Documentation
data Msg :: *
MidiInstr (Msg -> (Sig, Sig)) | |
MidiInstr (Msg -> (Sig, Sig, Sig)) | |
MidiInstr (Msg -> (Sig, Sig, Sig, Sig)) | |
MidiInstr (Msg -> Sig) | |
MidiInstr (Msg -> SE (Sig, Sig)) | |
MidiInstr (Msg -> SE (Sig, Sig, Sig)) | |
MidiInstr (Msg -> SE (Sig, Sig, Sig, Sig)) | |
MidiInstr (Msg -> SE Sig) | |
type MidiInstrOut (Msg -> (Sig, Sig)) = (Sig, Sig) | |
type MidiInstrOut (Msg -> (Sig, Sig, Sig)) = (Sig, Sig, Sig) | |
type MidiInstrOut (Msg -> (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) | |
type MidiInstrOut (Msg -> Sig) = Sig | |
type MidiInstrOut (Msg -> SE (Sig, Sig)) = (Sig, Sig) | |
type MidiInstrOut (Msg -> SE (Sig, Sig, Sig)) = (Sig, Sig, Sig) | |
type MidiInstrOut (Msg -> SE (Sig, Sig, Sig, Sig)) = (Sig, Sig, Sig, Sig) | |
type MidiInstrOut (Msg -> SE Sig) = Sig |
midi :: Sigs a => (Msg -> SE a) -> a
Triggers a midi-instrument (aka Csound's massign) for all channels. It's useful to test a single instrument.
midin :: Sigs a => Channel -> (Msg -> SE a) -> a
Triggers a midi-instrument (aka Csound's massign) on the specified channel.
pgmidi :: Sigs a => Maybe Int -> Channel -> (Msg -> SE a) -> a
Triggers a midi-instrument (aka Csound's pgmassign) on the specified programm bank.
midin_ :: Channel -> (Msg -> SE ()) -> SE ()
Triggers a midi-procedure (aka Csound's pgmassign) on the given channel.
pgmidi_ :: Maybe Int -> Channel -> (Msg -> SE ()) -> SE ()
Triggers a midi-procedure (aka Csound's pgmassign) on the given programm bank.
Mono-midi synth
monoMsg :: D -> D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal. The signal fades out when nothing is pressed. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
monoMsg portamentoTime releaseTime
holdMsg :: D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal and holds the last value till the next one is present. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
holdMsg portamentoTime
monoMsgn :: Channel -> D -> D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal. The signal fades out when nothing is pressed. We can specify a channel. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
monoMsgn chnNumber portamentoTime releaseTime
holdMsgn :: Channel -> D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal and holds the last value till the next one is present. We can specify a channel. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
holdMsgn chnNumber portamentoTime
pgmonoMsg :: Maybe Int -> Channel -> D -> D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal. The signal fades out when nothing is pressed. We can specify a programm number and channel. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
pgmonoMsg chnNumber portamentoTime releaseTime
pgholdMsg :: Maybe Int -> Channel -> D -> SE (Sig, Sig) Source
Produces midi amplitude and frequency as a signal and holds the last value till the next one is present. We can specify a programm number and channel. It can be used in mono-synths. Arguments are portamento time and release time. A portamento time is time it takes for transition from one note to another.
pgholdMsg portamentoTime
Reading midi note parameters
Get the note number of the current MIDI event, expressed in cycles-per-second.
icps cpsmidi
csound doc: http://www.csounds.com/manual/html/cpsmidi.html
Get the velocity of the current MIDI event.
iamp ampmidi iscal [, ifn]
csound doc: http://www.csounds.com/manual/html/ampmidi.html
ctrl7 :: D -> D -> D -> D -> Sig
Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.
idest ctrl7 ichan, ictlno, imin, imax [, ifn] kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn] adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]
csound doc: http://www.csounds.com/manual/html/ctrl7.html
midiCtrl7 :: D -> D -> D -> D -> D -> SE Sig Source
Initializes midi control and get the value in the specified range.
midiCtrl :: D -> D -> D -> SE Sig Source
Initializes midi control and get the value in the range (-1) to 1.
umidiCtrl :: D -> D -> D -> SE Sig Source
Unipolar midiCtrl. Initializes midi control and get the value in the range 0 to 1.
Overload
class MidiInstr a where Source
type MidiInstrOut a :: * Source
onMsg :: a -> Msg -> SE (MidiInstrOut a) Source