MIDITERM - simple MIDI test console
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.
When you start MIDITERM, first a list of the actually available MIDI OUT devices is displayed. Select one from the list by typing the corresponding number.
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>.
Different modes for typing and display of MIDI messages are available:
You can change your mode of typing/display at any time with <CTRL-Q,W,E or R>.
- Type CTRL_Q or Key F1: enter MIDI Messages to be sent as coded ASCII text. Received messages are displayed as formatted and commented ASCII text (default)
- Type CTRL_W or Key F2: enter MIDI Messages to be sent as coded ASCII text. Received messages are displayed as raw byte values
- Type CTRL_E or Key F3: enter raw bytes to be sent as ASCII text. Received messages are displayed as formatted and commented ASCII text
- Type CTRL_R or Key F4: enter raw bytes to be sent as ASCII text. Received messages are displayed as raw byte values
- The number base is selected by typing $ (hex, default) 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: For Windows XP and later versions simply close the window. For older versions it is recommended to terminate the program by typing the <ESC> key.
How to send MIDI messages: (see short manual by typing '?')
If you have selected command input as MIDI messages (CTRL-Q>/F1 or <CTRL-W>/F2) then a MIDI message has to be entered as follows:
All command and parameter input is case insensitive. A preselected MIDI channel (command 'M') is used.
A MIDI message is entered by a letter which specifies the message type (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 or decimal number (depending on the active number base), finally the velocity (0-127/hex7F) as hex or decimal number.
- NOTE ON message: type N, then the MIDI note value (0-127/hex7F) as hex or decimal number, finally the velocity (0-127/hex7F) as hex or decimal 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 or decimal number, finally the velocity (0-hex7F) as hex or decimal 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 or decimal number.
- PROGRAM CHANGE message: type P, then the program number (0-127/hex7F) as hex or decimal 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 or decimal number.
- PITCH BEND (PITCH WHEEL CHANGE) message: type W, then the LSB value (0-127/hex7F) as hex or decimal number, finally the MSB value (0-127/hex7F) as hex or decimal 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. 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>/F1 or <CTRL-E>/F3), 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 active number base. Where applicable, the corresponding note value is added. 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>/F3 or <CTRL-R>/F4), 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>/F3 or <CTRL-R>/F4), 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.
How to receive and display raw MIDI bytes:
If you have selected display as raw bytes (<CTRL-W>/F2 or <CTRL-R>/F4) then received MIDI bytes are displayed as an unstructured stream of hex or decimal bytes, depending on the active number base (default = hex).
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 or Key F5
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.
New features of version December 2017:
- Send a file: type Key F6 (transmission slowed down, additional delay ca. 1,5ms per byte) or Key F7 (max. transfer speed). You will be asked to send the preselected file (name stored in "MIDITERM.SET" - can be changed temporarily with CTRL_F and later saved as preset) - or else you are requested. Primarily this is useful to send .SYX files. Theoretically any MIDI content can be transmitted - for example a file which contains a stream of binary coded MIDI messages. MIDI files (which include timing information) cannot be transmitted. Intended to be upgraded in a later version.
- Abort transmission immediately: Key F8
- Temporarily store any stream of MIDI messages (including Sysex and .SYX files) while the received content is displayed: type Key F9. The temporarily stored byte stream is saved on disk as "MIDITERM.REC" when you close the program or type Key F12.
- Temporarily store any stream of MIDI messages (including Sysex and .SYX files) without display: type Key F10. The temporarily stored byte stream is saved on disk as "MIDITERM.REC" when you close the program or type Key F12.
- Pause temporary storage: type Key F11. The text "_PaUsE_" is inserted into the record file for later recognition of different record segments. Recording can be restarted at any time with Key F9 or F10 and is appended to the originally opened file. The resulting file is stored on disk and closed when you terminate Miditerm or type Key F12. If Key F9 or F10 is pressed again after recording was finished with Key F12, the file "MIDITERM.REC" is overwritten without warning.
The subsequently downloadable material is copyrighted (c)2010-17 by Wolfgang Schemmert
Use of the software is permitted for free by everybody for any purpose ("freeware")
This software is provided "as is" - without any warranty. Any responsibility is excluded.
Download "MIDITERM.ZIP" (contains "miditerm.eee" and this HTML file in PDF format. "miditerm.eee" must be renamed to "miditerm.exe" before use.)
* State of information December 2017.
* 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.