MIDITERM user manual

MIDITERM is a rather simple but very useful MIDI terminal emulation for Windows.
It is especially useful as a debugging tool to send any MIDI messages by PC keyboard input and list all received MIDI messages on the PC screen.

Download "MIDITERM.ZIP" (contains "miditerm.exe" and this HTML file in PDF format).
MIDITERM is provided 'as is' -- without any warranty. Any responsibility is excluded.

When you start MIDITERM, first a list of the actually available MIDI OUT devices is displayed. Select one by number from the list.
Next a list of available MIDI IN devices is displayed. Select one by number from the list.
At any time you can make a new selection with <CTRL-N>.

The default mode of typing/display is "MIDI messages" and hex number base. Alternatively you can select input typing style and/or display style as pure decimal or hex bytes. You can change your mode of typing/display at any time with <CTRL-Q,W,E or R>. The number base is selected by typing $ (hex) or & (decimal).

By default, any "MIDI Timing Clock" (hex F8B) and "Active Sensing" (hex FE) messages received at the MIDI IN port are discarded and not displayed at the terminal screen, because most times they appear annoying. Their display can be activated at any time by pressing <CTRL-G> and blocked again by pressing <CTRL-B>.

To avoid this repeated work of selection any time you start MIDITERM, you can save your selections as a preset with <CTRL-P>. Then the file MIDITERM.SET is created (or overwritten without warning, if already existing) in the same directory where MIDITERM is installed.
Please note: If you have changed your installed MIDI devices, values loaded by preset may cause a wrong access to MIDI devices then. In this case you should temporarily update your selection with <CTRL-N>. You can save a new preset or keep the old one for the next program start. If you ever will install a new version of MIDITERM, the file MIDITERM.SET should be deleted before.

Exit MIDITERM: type the <ESC> key. You will be asked if you really want to exit. Confirm with <ENTER>, cancel with any button else. Exit by simply closing the window is less recommended. It works, but it seems that some old versions of WindowsTM do not close everything correctly in this case. When restarted then, MIDI communication may be blocked.

How to send MIDI messages: (see short manual by typing '?')

screenshot

If you have selected command input as MIDI messages (default=<CTRL-Q> or <CTRL-W>) then a MIDI message has to be entered as follows:
All command and parameter input is case insensitive. A MIDI message is entered by a letter which specifies the status byte - followed by one or two digits hex numbers (by default or if selected by typing $) or by one to three digits decimal numbers (select by typing &), which describe the MIDI data bytes. Any number input has to terminated by <SPACE> or <ENTER>. The message is not sent before all data bytes are entered.

  • First select the MIDI channel by typing M and a subsequent number (hex number base: value 1-9,A,B,C,D,E,F,10 or if decimal number base: 1-16 -- default=1). This setting remains valid until another selection is made. The selected MIDI channel will be stored in the preset and reloaded at next program start. (Note: as usual in MIDI syntax, the selected channel number minus 1 will be inserted into status bytes !)

  • NOTE OFF message: type X, then the MIDI note value (0-127/hex7F) as hex number, finally the velocity (0-127/hex7F) as hex number.

  • NOTE ON message: type N, then the MIDI note value (0-127/hex7F) as hex number, finally the velocity (0-127/hex7F) as hex number.
    Example: send a NOTE ON message with chamber pitch 'a' and standard velocity: type N 69 64 or in hex:N 45 40 <ENTER>

  • POLY KEY PRESSURE (= POLYPHONIC AFTERTOUCH) message: type Y, then the MIDI note value (0-127/hex7F) as hex number, finally the velocity (0-hex7F) as hex number.

  • CONTROL CHANGE message: type K, then the Controller number (0-127/hex7F) as hex number, finally the controller value (0-127/hex7F) as hex number.

  • PROGRAM CHANGE message: type P, then the program number (0-127/hex7F) as hex number. Note that this is exactly the data byte to be transmitted in the message. In many manuals the program numbers are listed as (data byte +1), i.e. in the range 1 - 128!.

  • CHANNEL PRESSURE message: type Z, then the pressure value (0-127/hex7F) as hex number.

  • PITCH BEND (PITCH WHEEL CHANGE) message: type W, then the LSB value (0-127/hex7F) as hex number, finally the MSB value (0-127/hex7F) as hex number. For low accuracy send W 0 <value>.

  • SYSTEM EXCLUSIVE message: type S. First the preselected MIDI manufacturer ID is inserted into the message. By default this is the noncommercial manufacturer ID (decimal 125/hex 7D). You can change it with command I (see below).
    Next enter the content of the message as ASCII text. "Non printable" characters, like bytes less than 32/hex20 or with bit7 set are entered as follows: type a backslash '\', then type the byte value as a TWO digit HEX! number. A leading zero MUST be entered. The message is terminated and transmitted immediately when you type the <ENTER> key. This will not be part of the message, instead the EOX character is inserted automatically.
    As a consequence: if you want to transmit a backslash '\' (hex 5C) or hex 0D ("carriage return") or hex 0A ("line feed") as part of the SysEx message, it MUST be entered as a hex number with preceeding backslash !

  • MIDI manufacturer ID: type I. Next enter the three byte manufacturer ID as a sequence of 3 numbers (0-127/hex7F), each separated by SPACE. If you need to enter a one byte manufacturer ID, enter it as byte1 - finally bytes 2 and 3 are entered as decimal 255/hex FF. This ID is valid during your session until it gets changed. The actually entered MIDI manufacturer ID will be stored in a preset.

How to receive MIDI messages:

If you have selected message display as MIDI messages (<CTRL-Q> or <CTRL-E>) then every MIDI message is displayed on the PC monitor as follows: first the type of the message is displayed as readable text, next all bytes of the messages are displayed as hex or decimal numbers, depending on the selected number base. The content of SysEx messages is displayed as text if "printable", else as a sequence of HEX bytes, each with a preceeding backslash '\'. Only one message is displayed per line. Due to limitations of the WindowsTM API, "running state" is not reported correctly.

How to send raw bytes through the MIDI interface:

If you have selected command input as raw HEX bytes (default or $ plus) (<CTRL-E> or <CTRL-R>) then a single MIDI byte is entered as follows and immediately transmitted:
first type the high nibble as a hex digit 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Letter input is case insensitive. Next enter the low nibble the same style. Wrong input can be deleted with 'backspace'. Terminate input with a <SPACE> or <ENTER>. If the high nibble is = 0, then only the low nibble has to be entered and terminated as described before. Every byte is transmitted immediately after termination.
Example: send a NOTE ON message on MIDI channel #3 with chamber pitch 'a' and standard velocity: type 92<SPACE>45<SPACE>40<SPACE>.
If you have selected command input as raw DECIMAL bytes (& plus <CTRL-E> or <CTRL-R>) then a single MIDI byte is entered as follows and immediately transmitted:
first type the highest digit (hundreds, tens or ones) as a decimal digit 0,1,2,3,4,5,6,7,8,9. Next enter the less significant digits the same style. Wrong input can be deleted with 'backspace'. Terminate input with a <SPACE> or <ENTER>. If leading digits are = 0, they may be left out. Every byte is transmitted immediately after termination.
Example: send a NOTE ON message on MIDI channel #3 with chamber pitch 'a' and standard velocity: type 146<SPACE>69<SPACE>64<SPACE>.

How to receive and display raw MIDI bytes:

If you have selected display as raw HEX bytes (default or $ plus) (<CTRL-E> or <CTRL-R>) then received MIDI bytes are displayed as an unstructured stream of hex bytes.
If you have selected display as raw DECIMAL bytes (<& plus CTRL-E> or <CTRL-R>) then received MIDI bytes are displayed as an unstructured stream of decimal bytes.
Data will not be displayed before a complete MIDI conformant message was received.

How to send the same message repeatedly:

If you want to send the same message for several times without the need to enter it again: type CTRL-A
If you have selected the MIDI message mode, the last transmitted MIDI message will be repeated. In the raw bytes mode, the last entered byte will be repeated.


* State of information December 2015.
* Right of technical modifications reserved. Information based on best knowledge - without any warranty. Any responsibility is excluded.
* This description is for information only. No product specifications are assured in juridical sense.
* Trademarks and product names cited in this text are property of their respective owners.