KORG microX utility.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Damien Goutte-Gattat 20284b203e Fix man pages.
Use correct page name in kmxtool's page. Use correct arguments
for the .TH command.
3 years ago
lib Remove malloc wrappers 7 years ago
m4 Initial commit 11 years ago
man Fix man pages. 3 years ago
src kmxtool: Add a --local-control option 7 years ago
.gitignore Add complete documentation for the MIDI modules 10 years ago
AUTHORS Update project location. 5 years ago
COPYING Initial commit 11 years ago
Doxyfile Add complete documentation for the MIDI modules 10 years ago
Makefile.am Markdown-ify the README file 7 years ago
NEWS Prepare kmxtool-0.3.0 release 7 years ago
README.md Update project location. 5 years ago
configure.ac Prepare kmxtool-0.3.0 release 7 years ago


kmxtool - KORG microX utility

Kmxtool is a command-line utility to interact with a KORG microX synthesizer. It allows to dump and load data from and to the synth, to query the synths status, and to list available Programs.

Kmxtool comes bundled with the asysex program, from which it is derived; asysex is a generic (non KORG-specific) tool for emitting and receiving System Exclusive (SysEx) MIDI messages. It reads a SysEx message from its standard input and sends it to a MIDI device, then receives a single SysEx message in response (if any) and prints it to standard output.


Kmxtool uses either ALSA or OSS to access the hardware MIDI ports; it runs at least on GNU/Linux and should run on most Unix-like systems with an OSS-compatible interface.

If called without the -p option to explicitly specify a MIDI port to use, kmxtool will scan all available ports until it finds a device announcing itself as a microX synthesizer.

The default behavior of kmxtool is to print the current status of the synthesizer:

$ kmxtool
KORG microX synthesizer, version
Global channel:                 0
Active mode:                    MULTI
Status of Global mode:
  Local Control:                No
  Clock Source:                 AUTO
  Bank Map:                     GM
  Memorize Mode on Power On:    On
  Rec. Ext.Realtime Command:    Yes
  Enable Program Change:        Yes


Dumping parameter data

With the -d option, you specify the memory slot that you want to dump from the microX to your computer. Dumped data is written to standard output in hexdumps “canonical hex+ASCII” format.

$ kmxtool -d PC7
00000000  47 6f 73 70 65 6c 20 50  65 72 63 4f 72 67 61 6e  |Gospel PercOrgan|
00000010  c4 32 65 34 65 32 31 32  64 11 1c 09 1b 9c 78 04  |.2e4e212d.....x.|
00000020  28 40 02 00 40 00 7f 7f  08 41 83 e7 01 8c f1 c5  |.@..@...0A......|

A memory slot is identified by:

  • an uppercase letter indicating the type of slot (P for programs, C for combinations, M for multis, D for drumkits, A for arpeggio patterns, and E for external controllers sets);
  • (only for programs and combinations) an uppercase letter indicating the bank, or an asterisk to dump all programs or combinations in all banks;
  • up to three decimal digits indicating the slot number, or an asterisk to dump all slots in the given bank (for programs and combinations) or all slots of the given type (for multis, drumkits, arpeggio patterns and external controllers sets).

The following table gives some examples of memory slot specifications:

Argument of -d Meaning
PA78 dump parameter data for program #78 in bank A
PE* dump parameter data for all programs in bank E
CB50 dump parameter for combination #50 in bank B
C* dump parameter data for all combinations in all banks
M108 dump parameter data for multi #108
D* dump parameter data for all drumkits

Loading parameter data

The -l option performs the opposite of -d, that is, loads parameter data (read from standard input in the same “canonical hex+ASCII” format) from your computer to a specified memory slot on the microX.

The target memory slot is specified in the same way as for the -d option, except that asterisks are forbidden—you can only load a single slot at a time, loading an entire bank is not supported.

MIDI backends

Kmxtool and asysex currently support ALSA and OSS MIDI backends. Please note that as I only use ALSA, the OSS backend has only been tested against the ALSA emulation layer for OSS; it does work against the emulated OSS, so I expect it should also work against a real OSS, but I cannot guarantee that.

MIDI backends available on the target system are enabled by default; if support for a given backend is not wanted, use the corresponding `--disable-{alsa,oss}' option at configure time.

When the -p, --port option is used, the name of the MIDI port determines which backend is used. For example, /dev/midi00 selects the OSS backend, while `hw:1,0,0' selects the ALSA backend.


Kmxtool is distributed under the terms of the GNU General Public License, version 3 or higher. The full license is included in the COPYING file of the source distribution.

Homepage and contact

The project homepage, where release tarballs may be found, is located at http://www.incenp.org/dvlpt/kmxtool.html. The repository with the latest source code is available at https://git.incenp.org/damien/kmxtool.