This page describes the use of:

  • MIDI devices such as the Hercules DJ console and the Behringer CMD PL-1 
  • ELAD's Tmate2
  • Serial ports (CAT) used by logbooks and OmniRig-enabled programs




MIDI Support

What Is MIDI?

The Musical Instrument Digital Interface (MIDI) is a protocol and set of commands for storing and transmitting information about music. MIDI output devices interpret this information and use it to synthesize music. [link]

What Is A Controller?

A MIDI Controller or MIDI Control Surface is a digital device that transmits MIDI data to other devices capable of receiving it. The most common use of a MIDI Controller is to control software instruments used on a computer. [link]

There are various types of MIDI controller, the most common used with SDR software is a DJ controller. DJ Controllers have one or two large rotary dials, idea for tuning the receiver frequency. Other controls are used for mode, volume etc. 

In the above picture you see the Behringer CMD PL-1 DJ Controller, typically available for approximately $99.


SDR software implements MIDI support with the MIDI functions, part of the Windows multimedia API.

Console Support

The console has a simple interface where you assign controls (buttons, sliders etc.) on the controller to options in the console:

  • VFO selection,
  • Audio level,
  • Tuning,
  • Filter width.

Single Options

When you configure an option of type Single the value used is that generated when the button is selected (pressed down). 

Range Options

When you configure an option of type Range (Audio level, Tuning) there are two value: minimum and maximum. As you slide or rotate the control the range is displayed.

Frequency Tuning

You typically assign the large rotary controller (aka platter) to the frequency tuning. Some controllers send value 65 when rotated clockwise and 63 when rotated counter-clockwise. Others such as the Behringer CMD PL-1 DJ Controller send a value which indicates the direction and speed of rotation.

You can manually enter the recommended range of values:

  • Tuning >> 65 to 127
  • Tuning << 1 to 63

Future Additions

It is possible to write to some controllers, for example to set LED colour an intensity. At present this is not supported.




Tmate 2

September 5th, 2016 Now fully supported.

The Tmate 2 from www.woodboxradio.com is the solution for SDR users who require 'real knobs' on their radio. The current hard-coded configuration is:

  • E1 Volume
  • E2 Filter High / Low / Shift, press to select the desired option
  • Current receiver frequency, press for fast tuning
  • F1 Mute
  • F5, F6 previous / next mode


Behringer CMD PL-1 DJ Controller

This solidly built MIDI controller is a good option for SDR software, offering:

  • 8 rotatory dials
  • 8 numbered push buttons
  • A large 10 cm (4") speed-sensitive platter
  • A slider (ideal for volume levels)
  • Other chunky push buttons

It also has four sets of values, selected by the Deck button.


When you touch the platter it sends value 127, when released it sends 0. These values are ignored in the tuning support.


The Behringer CMD PL-1 DJ Controller typically retails for approximately $99.



Serial Port Configuration

This program supports the use of serial ports for exchanging information with third-party programs such as logbooks. Normally you use virtual serial ports, for example those created using the VSP Manager by K5FR or VSPE from Eterlogic.

You connect the third-party program to one end of the serial cable and this program to the other. The third-party program sends commands to this program, for example to set the frequency and mode. The serial port cannot be used to monitor and synchronise another radio. In this window you select the ports which are opened by this program. This program opens and closes ports as you make changes to the selections in this window. The status is shown in the main logfile window.

In the program options select Port Selection:

Protocol: in your logbook program select the Kenwood TS-2000 protocol.

Note: you cannot use a serial port for a third-party program and at the same time use it to connect to an external radio unless these programs use Omni-Rig or similar. Use one serial port per program.

Speed: If you are using a virtual serial port the default speed of 57,600 can be used, if using a hardware port then the speed must match the speed at the other end of the connection. To change the speed you first select an entry in the list and then select the new speed from the dropdown at the top of the window.

Configuring Omni-Rig

If you are using Omni-Rig set the timeout to 100ms (the lowest value supported).

The above image shows the recommended Omni-Rig settings.

Serial Port Commands

The serial port commands are shown below. The format follows the Kenwood TS-2000 protocol so software which uses the basic TS-2000 commands will not require significant changes.


Frequency in Hz for receiver 1 (FA) to 6 (FF).

Read: FA; reads the frequency for receiver 1;

Write: FC + <11 digit frequency> + ; sets the frequency of receiver 3.


Auto information

Read: AI; always returns AI0; (auto-information off).

Write: ignored. Auto information is always disabled.


Transceiver information

Read: IF; returns the standard IF data 9see TS-2000 format).

Write: ignored.


Signal meter level

Read: SM; returns the signal level as a four-digit value in 3dB steps (one S-unit is 6dB):

  • S0 = 0 units
  • S5 = 10 units
  • S9 - 18 units.

If the current signal level is below S0 the value returned is 0.

Write: ignored.



Read: MD; returns the current mode.

Write MD<mode>;

The mode values are:

3 CW (upper sideband)
4 FM
5 AM (includes ECSS)
6 Not used
7 Not used
8 Wide FM
9 Broadcast FM
10 Synchronous AM


Transmit status, currently ignored


Receive status, currently ignored


Power status

Read: PS; always returns PS1; (power on) - if the power is not supplied to the computer then it is unlikely that it will function in a reliable way - on indeed function at all. If you have a computer that runs without power first find a good patent lawyer and then contact your local Green party representative.


AGC - Off (0), Fast (1), Medium (2), Slow (3)

Read: GT; returns the current AGC setting, for example GT3; (slow).

Write: GT<agc>;


Filter high value in Hz

Read: SH; returns the filter high value in Hz, for example SH03000; (3 kHz).

Write SH<value>;


Filter low value in Hz, otherwise same as SH above.


AF gain, range is 0 to 100.

Read: AG; returns the current value, for example AG075; (75 %).

Write: AG<value>;


Audio mute status.

Read: MU; returns wither 0 (muted) or 1 (not muted).

Write: MU<status>; tba


Read-only, returns the radio name, for example NetSDR. This is the same value shown at the bottom left of the status bar.


Read-only, returns the current sample rate.


Read-only, returns the transmitter index which is always 0.


Read-only, returns the current receiver index.