SysEx Librarian is an app to let your Mac communicate with MIDI devices using System Exclusive messages, also known as SysEx. The most common use is to backup patch data from synthesizers, although there are others (such as sending firmware updates).
It's easy to keep a library of the SysEx files you use most often, and to record new SysEx files.
SysEx Librarian is free to download and use. The source code is available as Open Source, under the BSD license.
Please check http://www.snoize.com/SysExLibrarian/ for news and updates.
SysEx Librarian is based around the idea of a library of files. Each file contains one or more SysEx messages. If you are familiar with iTunes, you will find that SysEx Librarian works much the same way.
The main part of the window contains the list of files in the library. The columns are as follows:
To add files to the library, use the button and pick a file. You may also drag files or folders from the Finder into the list of files, or onto the SysEx Librarian icon in the dock. SysEx Librarian understands raw SysEx files (which often have the extension .syx
at the end of the file name) and can also read SysEx messages from standard MIDI files (which usually have the extension .mid
).
You can change a file's name by double-clicking its name, or by selecting it and choosing Change Name from the menu. Use the button or the Delete key on your keyboard to delete a file from the library. To see the actual file on your disk, use the menu command Show SysEx File.
To send SysEx to a device, select a file by clicking on it. (Shift-click or command-click to select more than one file.) Then press the Play button, and the SysEx messages in the selected files will be sent to the selected destination. A progress indicator will show the number of messages and amount of data sent.
(If you choose the destination named "Act as a source for other programs", other MIDI programs running on the computer will see an input source named "SysEx Librarian". You can then play SysEx messages to those programs. Sending will happen instantaneously, so no progress indicator will be shown.)
To record a new file, press the Record One or Record Many button. Record One records just one SysEx message, and then automatically stops recording. Record Many will keep recording messages until you tell it to stop. SysEx Librarian listens to all input ports on all MIDI interfaces connected to your computer, so you don't need to select any one in particular.
Recorded files are stored in your SysEx folder. By default, this is a folder named "SysEx Librarian", in the Documents folder in your home folder. However, you may change this location in the preferences. Note that you may also move files around on your disk; SysEx Librarian will try to find them even if they have moved. If a file can't be found, SysEx Librarian will ask you to locate it.
To see the contents of a SysEx file, select it and press the Contents button, or use the Show Contents menu command. This will open a new window showing a list of messages in the file.
Click on a message to see its data in hexadecimal and ASCII formats.
The preferences window lets you change the way that SysEx Librarian works. Changes in this window take effect immediately.
Please note two things:
If you're having problems, your first step should be to get the latest version of the driver for your MIDI interface. Almost all manufacturers have web sites where the drivers can be downloaded—please check with the manufacturer of your particular device.
Because MIDI is a very old and primitive communications protocol, it doesn't have the kind of error checking that we take for granted in more modern systems. When SysEx Librarian records a message coming from your device, it has almost no way of checking that it received the message correctly. The message could have been corrupted while in transit—either by the MIDI hardware or by the software in the driver—but SysEx Librarian cannot tell the difference between a correct message and a bogus one. Similarly, when SysEx Librarian sends a message to a MIDI device, it cannot tell whether the message was successfully received.
As a result, many apparent "bugs" in SysEx Librarian really turn out to be bugs in the MIDI interface or its driver.
To trace this problem, we need to know a few things:
You should see two sysex messages in the MIDI Monitor window, one labeled "To your MIDI interface" and one labeled "From your MIDI interface". They should have the same length and the same contents, and they should be the same as the message that appears in SysEx Librarian.
If the "To your MIDI interface" message is different from the one in SysEx Librarian, then SysEx Librarian is doing the wrong thing. I don't think this will happen, but if it does, please let me know.
If the "From your MIDI interface" message is different from the "To your MIDI interface" message, then the driver either didn't send the same thing that SysEx Librarian told it to, or it couldn't receive the same message back again without corrupting it. Either way, it's a bug in the driver.
Please send questions or comments to SysExLibrarian@snoize.com
If you find this app useful, if you encounter bugs, or if you have suggestions for improvement, I'd love to hear about it!
SysEx Librarian is copyright © 2002-2021 by Kurt Revis. All rights reserved.
The source code is available at https://github.com/krevis/MIDIApps.
SysEx Librarian includes software from:
Hex Fiend license:
Copyright (c) 2005-2016, Peter Ammon * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Thanks to the folks on the CoreAudio-API mailing list for all the help they have provided, and to everyone who has sent in bug reports and feature requests.
Also thanks to Steve Grace for his original SysEx app for Classic Mac OS.