MIDI ANALYSER
Anyone
who has ever tried to connect various pieces of
MIDI controlled equipment together will
understand the difficulty of not knowing what
MIDI data is being transmitted down a MIDI cable.
While there are a number of software MIDI
analysers available, which will provide this
information, they require the use of a computer.
However a portable analyser would be most
useful when connecting up unfamiliar equipment in
an external environment, so this design, utilizing the Miduino
kit is a battery powered, stand-alone, microcontroller unit.
 |
MIDI ANALYSER
ITEM#: MIDANA
PRICE: €35.00
|
|
|
|
The MIDI Analyser unit utilizes:
- A Miduino kit including a
suitable pre-programmed Atmega168,
- A 2.1mm power socket, and associated LED,
- A MIDI 5-pin DIN input socket,
- A MIDI 5-pin DIN output socket,
- 18 off 0.1" pin-terminal outputs,
- The circuit schematic is available,
The MIDI Analyser unit also requires:
- A 9v battery or equivalent DC power source
- 17 LEDS
- 17 1K Resistors
- 1 Toggle Status/Channel mode switch
Operation:
A toggle switch allows the unit to detect either MIDI System
messages or Channel Messages. Complete MIDI data information is
available here.
Assembly:
The assembly is straightforward and
well documented. This design does not include a USB chip, it is
designed to use a FTDI
USB 232-TTL cable to program the microcontroller. However since the cable plugs
directly into
the Miduino, you can use one cable for multiple projects.
MIDI Wiring:
The MIDI IN and OUT connectors use 5-Pin 180 degree DIN
sockets. Note that the MIDI IN/OUT wiring
is polarised and the correct pins should be used.
Download:
Open the source
code file and copy and paste it into the Arduino programme and
save it as a .PDE file.
The MIDI System Messages displayed by the the corresponding
LEDs are shown in Tables 1 and 2 below. If in Channel Message mode
the corresponding LEDs for channels 1 to 16 are displayed.
MIDI MESSAGES
| Message |
Status |
Data Bytes |
|
Begin System Exclusive
|
11110000
|
0mmmmmmm
|
0xxxxxxx
|
| MIDI Time Code |
11110001 |
0tttdddd |
|
|
Song Position Pointer
|
11110010
|
0jjjjjjj
|
0kkkkkkk
|
|
Song Select
|
11110011
|
0sssssss
|
|
End System Exclusive
|
11110111
|
|
Timing Clock
|
11111000
|
| Start |
11111010 |
| Continue |
11111011 |
| Stop |
11111100 |
|
Active Sensing
|
11111110
|
|
System Reset
|
11111111
|
| LED Output Pin |
MIDI Message Displayed
|
| 19 |
0xF0: //Begin System
Exclusive 11110000 (F0) |
| 18 |
0xF1: //MIDI Time Code
11110001 (F1) |
| 17 |
0xF2: //Song Position
Pointer 11110010 (F2) |
| 16 |
0xF3: //Song Select
11110011 (F3) |
| 15 |
0xF7: //End System
Exclusive 11110111 (F7) |
| 14 |
0xF8: //Timing Clock
11111000 (F8) |
| 13 |
0xFA: //Start 11111010 (FA) |
| 12 |
0xFB: //Continue 11111011 (FB) |
| 11 |
0xFC: //Stop 11111100 (FC) |
| 10 |
0xFE: //Active Sensing 11111110 (FE) |
| 9 |
0xFF: //System Reset 11111111 (FF) |
| 8 |
0x90: // Note-On Event 1001bbbb (9X) |
| 7 |
0x80: //Note-Off Event 1000bbbb (8X) |
| 6 |
0xB0: //Control Change 1011bbbb (BX) |
| 5 |
0xC0: //Program Change 1100bbbb (CX) |
| 4 |
0xD0: //Channel Pressure 1101bbbb (DX) |
| 3 |
0xE0: //Pitch Bend 1110bbbb (EX) |
If the data is not a System message then it is a Channel message
which is decoded by the software and the appropriate Channel
number and Channel message LED displayed.
| LED Output Pin |
MIDI Channel
|
| 3 |
1 |
| 4 |
2 |
| 5 |
3 |
| 6 |
4 |
| 7 |
5 |
| 8 |
6 |
| 9 |
7 |
| 10 |
8 |
| 11 |
9 |
| 12 |
10 |
| 14 |
11 |
| 15 |
12 |
| 16 |
13 |
| 17 |
14 |
| 18 |
15 |
| 19 |
16 |