Build your own MIDI circuits
FAQ
Frequently Asked Questions.
Details
 
MIDI & Music
MIDI and Music Information
Details
 
MIDI Analyser

 

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.

    

 

PCB_DIP_SW.jpg (98944 bytes)

 

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 Byte Data Bytes

Note-On Event

1001bbbb

0kkkkkkk

0vvvvvvv

Note-Off  Event

1000bbbb

0kkkkkkk

0vvvvvvv

Control Change

1011bbbb

0ccccccc

0CCCCCCC

Program Change

1100bbbb

0nnnnnnn

Channel Pressure

1101bbbb

0ppppppp

Pitch Bend

1110bbbb

0iiiiiii

0hhhhhhh

Table 1: Channel Voice 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

Table 2: System Messages

   

 

 

 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