This is the homepage for asysex, a small command-line MIDI SysEx utility. It reads a System Exclusive (SysEx) message on its standard input and sends it to a connected MIDI device, then receives the device reply (if any) and prints to standard output.
Asysex is distributed under the terms of the GNU General Public License, version 3 or higher.
Asysex is no longer developed as a standalone project; it is now included in the kmxtool project, which was started from the asysex codebase.
To send an arbitrary System Exclusive message to the MIDI device, the user writes it, in hexadecimal, to asysex’s standard input. It is up to the user to feed asysex with a valid SysEx message; asysex itself simply verifies that the message starts with a F0 byte (“Start of SysEx” status byte) and ends with a F7 byte (“End of SysEx” status byte).
For example, to set the Master Balance of a MIDI device (connected to the default MIDI port) to “full left”:
$ asysex <<< "F07F0004020000F7"
Asysex ignores all non-hexadecimal characters in its input, and ignore all characters (including hexadecimal characters) from a ‘#’ to the next end of line. This allows to write annotated SysEx message in a file. The above message could be stored as follows:
F0 # SysEx message begin 7F # Universal System Exclusive message 00 # Global MIDI Channel is 1 0402 # Function is "Set Master Balance" 0000 # Value (0000, full left; 7F7F, full right; 4040, center) F7 # SysEx message end
and then sent to the device by feeding the file to asysex:
$ asysex < set_master_balance_message
When the message triggers a reply from the device, asysex receives it
and prints it on its standard output in “canonical hex+ASCII” format
(like hexdump -C
). For example, to dump a program from a
Korg synthesizer:
$ asysex <<< "F042307A1C210900F7" 00000000 f0 42 30 7a 4c 01 21 09 00 43 6f 6d 61 74 6f 73 |.B0zL.!..Comatos| 00000010 00 65 20 20 20 20 20 20 00 20 20 1e 1e 00 00 14 |.e . .....| [truncated output] 000001e0 14 00 00 00 3d 63 04 63 04 00 63 46 0a 00 1a 14 |....=c.c..cF....| 000001f0 0f 00 00 00 01 00 00 3c 00 00 3c 00 00 40 0e 00 |.......<..<..@..| 00000200 f0 7f 00 7f 00 00 f7 |.......|
The -r, --raw
option makes asysex write the reply in raw
binary format. Raw output can be sent to a file or piped to hexdump(1)
which would then display it in any format suitable to the user.
The -I, --inquiry
option makes asysex send a DEVICE
INQUIRY message to the connected device. Upon reception of that
universal System Exclusive message, any compliant MIDI device should
reply by identifying itself. Asysex reads that reply and prints the
information on standard output.
Here is an example with a Korg microX synthesizer:
$ asysex -I Korg model 7a, family 9, version 1.0.0.4
The following release tarball is available:
asysex-0.1.0.tar.gz (application/gzip, 108K)
For newer releases and latest source code, refer to the kmxtool project.