midi_specification
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
midi_specification [2006/06/30 00:20] – admin | midi_specification [2012/10/02 06:42] (current) – Reverting spam from lauraholden cheater | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== MIDI Specifications ====== | ====== MIDI Specifications ====== | ||
+ | |||
+ | If you'd like a simplified explanation, | ||
[[MIDI]] is a standardized way for the communication between musical devices. It specifies the physical interface as well as the transmission protocol. There are different types of MIDI messages, for a full list please follow the links below. | [[MIDI]] is a standardized way for the communication between musical devices. It specifies the physical interface as well as the transmission protocol. There are different types of MIDI messages, for a full list please follow the links below. | ||
Line 35: | Line 37: | ||
F identifies a System Message which either addresses all listeners (there is no MIDI channel), or which addresses dedicated MIDI devices which are parsing for a SysEx (System Exclusive) stream. | F identifies a System Message which either addresses all listeners (there is no MIDI channel), or which addresses dedicated MIDI devices which are parsing for a SysEx (System Exclusive) stream. | ||
- | E.g., MIOS "feels addressed" | + | E.g., MIOS "feels addressed" |
- | SysEx messages should be finished with 0xF7, thereafter any other MIDI event can be sent again. | + | [[SysEx]] messages should be finished with 0xF7, thereafter any other MIDI event can be sent again. |
The last Status Bytes within the range of 0xF8..0xFF - also called " | The last Status Bytes within the range of 0xF8..0xFF - also called " | ||
Line 42: | Line 44: | ||
A typical realtime message is the MIDI clock 0xF8 - since it is allowed to send the clock at any time, regardless of the currently sent stream - the achievable latency is very low. In addition, realtime messages don't change the running status - more about this topic (status byte can be omitted if the same one was sent before) can be read in the MIDI spec. | A typical realtime message is the MIDI clock 0xF8 - since it is allowed to send the clock at any time, regardless of the currently sent stream - the achievable latency is very low. In addition, realtime messages don't change the running status - more about this topic (status byte can be omitted if the same one was sent before) can be read in the MIDI spec. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ====== Programming Examples ====== | ||
At the end some practical informations for MIOS programmers (examples are written in [[C]]): | At the end some practical informations for MIOS programmers (examples are written in [[C]]): | ||
Line 98: | Line 105: | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ====== 14-bit MIDI Messages ====== | ||
+ | |||
+ | There are two ways to use 14-bit MIDI Messages; the trick is, to combine two 7-bit Messages to one 14-bit: | ||
+ | <code c> | ||
+ | unsigned int MSB = 127 << 7; // 16256 | ||
+ | unsigned char LSB = 127; // 127 | ||
+ | unsigned int largeNumber = MSB + LSB; // 16383: | ||
+ | </ | ||
+ | * using RPNs | ||
+ | * using NRPNs: <code c> | ||
+ | CC98 01100010 0x62 Non-Registered Parameter Number (NRPN) - LSB 0-127 LSB | ||
+ | CC99 01100011 0x63 Non-Registered Parameter Number (NRPN) - MSB 0-127 MSB | ||
+ | </ | ||
+ | * sending two Controller Messages, eg:< | ||
+ | CC 12, Effect Ctrl 1 (MSB = Most Significant Byte) | ||
+ | CC 44, Effect Ctrl 1 (LSB = Least Significant Byte)</ | ||
+ | |||
+ | Sending 14bit from one pot is only possible if you're hacking the code. Because Pots are being read as 10-bit value, you have to interpolate to 14 bit and implement a NRPN or dual-CC method. | ||
+ | |||
+ | Further informations: | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | |||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ====== Tools & Helpers ====== | ||
+ | |||
+ | [[ACMidiDefines]] – a definition listing to access Midi Events by Name | ||
+ | |||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | ====== More Informations ====== | ||
More informations can be found online:\\ | More informations can be found online:\\ | ||
- | * [[http://www.borg.com/~jglatt|MIDI Technical Fanatic' | + | * [[http://home.roadrunner.com/~jgglatt/|MIDI Technical Fanatic' |
- | * [[http://www.borg.com/~jglatt/ | + | * [[http://home.roadrunner.com/~jgglatt/ |
midi_specification.1151626822.txt.gz · Last modified: 2006/10/15 09:35 (external edit)