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/10/15 09:35] – (old revision restored) 127.0.0.1 | 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 45: | Line 47: | ||
| \\ | \\ | ||
| \\ | \\ | ||
| + | |||
| ====== Programming Examples ====== | ====== Programming Examples ====== | ||
| Line 104: | Line 107: | ||
| \\ | \\ | ||
| \\ | \\ | ||
| + | |||
| + | ====== 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 ====== | ====== Tools & Helpers ====== | ||
| Line 115: | Line 146: | ||
| 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.1160904901.txt.gz · Last modified: 2006/11/05 15:05 (external edit)
