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.

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.

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


Serial Port (CAT)

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.