diff options
author | cbdev <cb@cbcdn.com> | 2019-03-31 09:00:12 +0200 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2019-03-31 09:00:12 +0200 |
commit | 0c333567f599206cb0be6b74f02e59820536e0b2 (patch) | |
tree | 23f23e26969103948d433d41762d98e048f4b3ba /backends/midi.md | |
parent | a2b0728027dd8961ef84220c8c8eaf8a81154c71 (diff) | |
download | midimonster-0c333567f599206cb0be6b74f02e59820536e0b2.tar.gz midimonster-0c333567f599206cb0be6b74f02e59820536e0b2.tar.bz2 midimonster-0c333567f599206cb0be6b74f02e59820536e0b2.zip |
Move backend documentation out of main README
Diffstat (limited to 'backends/midi.md')
-rw-r--r-- | backends/midi.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/backends/midi.md b/backends/midi.md new file mode 100644 index 0000000..7d3e847 --- /dev/null +++ b/backends/midi.md @@ -0,0 +1,54 @@ +### The `midi` backend + +The MIDI backend provides read-write access to the MIDI protocol via virtual ports. + +#### Global configuration + +| Option | Example value | Default value | Description | +|---------------|-----------------------|-----------------------|-----------------------| +| `name` | `MIDIMonster` | none | MIDI client name | + +#### Instance configuration + +| Option | Example value | Default value | Description | +|---------------|-----------------------|-----------------------|-----------------------| +| `read` | `20:0` | none | MIDI device to connect for input | +| `write` | `DeviceName` | none | MIDI device to connect for output | + +MIDI device names may either be `client:port` portnames or prefixes of MIDI device names. +Run `aconnect -i` to list input ports and `aconnect -o` to list output ports. + +Each instance also provides a virtual port, so MIDI devices can also be connected with `aconnect <sender> <receiver>`. + +#### Channel specification + +The MIDI backend supports multiple channel types + +* `cc` - Control Changes +* `note` - Note On/Off messages +* `nrpn` - NRPNs (not yet implemented) + +A channel is specified using the syntax `channel<channel>.<type><index>`. The shorthand `ch` may be used instead +of `channel`. +The earlier syntax of `<type><channel>.<index>` is officially deprecated but still supported for compatability +reasons. This support may be removed at some future time. + +Channels range from `0` to `15`. Each channel consists of 128 notes (numbered `0` through `127`) and 128 CC's +(numbered likewise), a channel pressure control (also called 'channel aftertouch') and a pitch control. +Each Note also has an additional pressure value associated with it. + +Example mappings: +``` +midi1.ch0.note9 > midi2.channel1.cc4 +midi1.channel15.cc1 > midi1.channel0.note0 +``` +#### Known bugs / problems + +Currently, no Note Off messages are sent (instead, Note On messages with a velocity of 0 are +generated, which amount to the same thing according to the spec). This may be implemented as +a configuration option at a later time. + +NRPNs are not yet fully implemented, though rudimentary support is in the codebase. + +To see which events your MIDI devices output, ALSA provides the `aseqdump` utility. You can +list all incoming events using `aseqdump -p <portname>`.
\ No newline at end of file |