Last modified 2023-10-22.
Time to read: 5 minutes.
This article was written because I wanted a MIDI patch librarian for my new Roland Juno-DS synth. Roland introduced this product in 2015, and it is readily available; however, Roland’s JUNO-DS Librarian is feeble. I have previously complained about Roland’s weak application software capability.
I prefer to do my audio and video work on Windows instead of Linux, Mac, or tablets. Linux is more difficult than one would want to deal with when attempting to make music. The expensive walled garden that Apple erected around the Mac does not provide good value. Some iOS apps, like Patch Base, are interesting, but none of them support the Juno-DS, and I would rather use a computer instead of a tablet for connectivity and UI reasons.
I also prefer to use open-source software instead of commercial products because I can diagnose software problems myself and even modify the software to suit my needs.
Also, I am adverse to software that requires a subscription. $X/month for the rest of your life is good for the publisher but is usually poor value for customers. The one exception I have made is for Pro Tools, but the value it provides is commensurate with the expense.
Available Patch Librarians
The Software Music Machine Archive has a collection of MIDI patch editors and librarians, including commercial, free and shareware products for Windows, Mac and Linux. Most are garbage or have been abandoned.
Writing a generally useful MIDI patch librarian for all synthesizers is not as easy as one might expect. Every synth has a different SysEx format for doing bulk dumps. Most of the work required to write a patch editor arises from the need to write and debug the code to parse and emit SysEx dumps. Vendor documentation is often buggy, incomplete, or entirely missing. Some synths don't have bulk dumps, and instead only provide single patch dumps or maybe bank dumps. Other synths use NRPN to make dumps.
I looked at Ctrlr, a F/OSS patch librarian. However, Ctrlr has not had any updates for 18 months; during this time, issues and pull requests have been piling up.
Ctrlr product can work as a VST, so it can be embedded in a DAW. This is a very nice feature. Pro Tools users would also need an AAX-to-VST bridge/wrapper.
The remainder of this article discusses KnobKraft-orm, a capable F/OSS MIDI patch librarian, and it’s recently added support for the Roland Juno-DS synthesizer.
KnobKraft auto-updates, which is very nice.
I installed the latest version of KnobKraft-orm on Windows 10.
On Windows, the program installs into
Directories of note:
adaptationssubdirectory contains Python program files that support various synthesizers.
%AppData%\KnobKraftcontains many versions of the SQLite database, with names like
HiDpi (4K Screens)
The following two alerts appeared during installation but were much smaller, so a magnifying glass was required to read them.
When the KnobKraft-orm app ran, the text was also quite small. I exited the app and set the Windows HiDpi settings as follows:
%LOCALAPPDATA%\Programs\KnobKraftOrm\KnobKraftOrm.exe, then click on Properties
Click on Change high DPI settings
Enable high DPI scaling behavior, then select System.
Now start the app and click on View / Scale 100%
If you have a Roland Juno-DS synthesizer, install the Juno-DS adaptation. The Options / Set user adaptation dir menu item shows the directory path for synthesizer adaptation program files.
For Windows, just copy
Roland_JunoDS.py from the adaptation directory to
I do not know the Mac directory, but the menu will tell you that information.
Restart KnobKraft after copying the adaptation program file.
There is scant documentation on how to use the product. The following is a result of trial and error, plus what I learned from this discussion with the author.
The user interface is somewhat haphazard.
In addition to pull-down menus, there is also a row of tabs under the menu that have no relationship to the menus.
The Library tab has a tree-structured navigator on the left that is
according to the latest release notes.
With your synthesizer on and/or connected via USB or MIDI cables, set the MIDI input and output ports and the MIDI channel as follows:
- Click on the Setup tab.
- Enable the types of synthesizers that you have (I have a Roland Juno-DS).
- Set the MIDI connection information by pressing the Autodetect button.
- Below, you see the resulting settings, .
It is probably a good idea to begin by importing your synthesizer's factory default presets into the patch manager. There are three ways to do this:
This is my preference for just importing one patch bank:
Select the Library tab, then click on the menu items All patches / Name of your synth / In synth / Preset Patches N, where N has integer values starting at 1. Each time you import a patch bank, the Library tab's navigation tree rolls up, and you must reselect it. Annoying!
This is my preference for importing all patch banks:
F7 (or use the MIDI / Import Preset patches from synth menu items), then press Import selected.
- Import a SysEx file or other file containing a collection of patches for your synthesizer. I exported the Juno-DS factory patches into a SysEx file and a PIF file in case you would like to import them.
Click on a patch in the central patch panel or the right-hand Synth Bank, and the synth will immediately be set to that patch.
Colors indicate that patches had tags automatically applied. You can use the filters to only display patches with the selected tag(s).
Exporting Patch Interchange Format
PatchInterchangeFormat, based on JSON, is only used by KnobKraft.
Selecting the menu items Patches / Export into PIF allows you to export all patches.
Importing Patch Files
To import a file containing patches, either press F3 or use the menu items Patches / Import files into database.
This allows you to select a system exclusive file (with file type
PatchInterchangeFormat based on JSON (with file type
The computer doing the import must have the same adaptor as the exported file was created for, and the setup must enable the adaptor, or the import will not succeed.