Patchician is a general purpose patch librarian for synthesizers. It runs on Linux using gtk4 and can send patch changes using ALSA MIDI. The included configuration works with the Yamaha MX49/MX61/MX88 synths. Other synths can be used after generating a db with patchician_importer.
The name is a combination of "Patch" and "Magician".
- Sqlite database stores information about banks and patches, including custom names, tags, and notes.
- Available patches are displayed, and may be filtered, sorted and edited.
- Filter and sort by bank, name, tags, or notes
- Patch changes may be sent via ALSA MIDI to control instruments (sent as a Bank Select followed by Program Change to the selected channel).
To compile patchician, you'll need the development files for a few libraries. Example package names in parentheses are for Debian/Ubuntu.
- gtk4 (libgtk-4-dev)
- sqlite3 (libsqlite3-dev)
- alsa (libasound2-dev)
- jack (libjack-jackd2-dev)
Run the script "./patch", or run the one important command in that file. It produces the output binary "./patchician".
Patchician expects a default.db file to be present. The included DB is based on the Yamaha MX patch collection. The companion tool, patchician_importer, can create this DB.
Patchician opens an ALSA MIDI output port while running. This port may be connected to your instrument via a utility such as aconnectgui. Patch changes will be sent to this port when pressing the "Send It" button.
- Allow specifying the DB file name.
- JACK MIDI support. (Present JACK code is not correct.)
- Use high level ALSA sequencer for MIDI (in place of raw MIDI).
- Set client name
- Database functions and gtk model are excessively coupled
- "Send on select" works when selecting a new row, but not when selecting the same row.
- Display PC / bank select numbers in the table
- Add column-show/hide GtkCheckMenuItems to customize which columns are displayed.
- RaySession support
- Display a bank of known tags that may be added to a patch's tag collection
- Virtual banks
- Trigger patch changes via MIDI input
- Offer a grid view of patches