Releases: christofmuc/KnobKraft-orm
User defined lists, duplicate search, AND/OR search
This is the first major release since a while, and I have been working on an extension of the UI that has a lot of potential for future features - drag and drop of patches.
New features
- The old advanced search has been replaced by a new mechanism - lists and synth libraries in the tree. For the sake of simplicity, you can no longer search through a specified subset of synths by using the checkboxes, but you rather choose the "all patches" top level node in the tree to search through all synths.
- Moved the "By imports" lists to be just children of the synth itself, it felt very duplicated before.
- The tree now allows to create user lists of patches. Just create a list by clicking "Add new list", give it a name, and then drag patches from the grid on the list. The list has patches in order (you can rearrange the entries by dragging in the tree), and you can load the grid with the list by clicking on the list name. The list accepts patches from multiple synths!
- Double click on a list to bring up a dialog allowing you to rename the list
- The Orm will store one search per synth, and another one for the "all patches" - that means you can search through e.g. the OB-6 for bass patches and the Rev 2 for pads. When you switch back and forth between the two synths, the search you used last for the synth will be recalled. This is really useful if you like me tend to use one synth for a specific job (even during jamming).
- Added a trash can drag target - you can drag a single patch from the grid on the tash can to delete it from the database, or you can drag a whole list to delete the list, or you can drag a list entry on the trash to remove an item from the list.
- Added search for duplicate names functionality. This will actually limit the list to patches of duplicate names per patch, and will respect the hidden flag. This is useful for finding patches that are close duplicates but not identical. Use the compare patches dialog to see what is different.
- Added a new search mode "all must match" that turns the OR search for the categories into an AND search.
- A big warning box is opened when no Python version is found. This so far has only been a log message easily overlooked, and as on the Mac it is pretty hard to have the right Python versions, users would not be able to figure out why all the synths are missing. This is a workaround until I get finally to include Python with the Mac build as well. This is not an issue on Windows IIRC.
Fixes for custom category dialog, custom category import via PIF
So... the Edit Category dialog was fundamentally screwed up after the 1.13.5 release, but at least nothing bad happened in the database. I still need to understand the JUCE ListBox with custom components a bit better...
Bugfixes in this release:
- The PIF import now correctly allows to import categories even when some categories are not selected (turned on), before that, it would actually confuse categories
- The Edit Category dialog again functions like intended, and I also seem to have gotten rid of the redraw problems.
Add Ensoniq ESQ-1, Sequential MPE mode fixes
New features:
- Thanks to @Mostelin we have a new adaptation for the Ensoniq ESQ-1!
- The OB-6 implementation now fully supports editing the global settings including the page 3 which was added in firmware versions 1.6.4/1.6.6, so it is easy e.g. to switch to Vintage mode using the Orm. They also fixed the sysex bugs in the new firmware, so the global settings editor works again as intended
- Hacked a log output in get edit buffer operation to print the name of the current edit buffer. Very useful if you have a patch in the edit buffer and can't remember the name, and your synth (like the OB-6) only displays a number.
- Added an output of the program number to the patch button. This clutters the display a bit, but already helps. Probably I will need to add a view switch somewhere so you can select if you want to see names or program numbers.
Bug fixes:
- The EditCategory dialog was a bit of a mess and now has been rewritten to hopefully work more than once.
- Also fixing the detection of other Sequential synths when put into MPE mode, most probably the Prophet-6. They report MIDI channel 17 (0x10 = 16 in a zero based terminology), and that needs to be handled properly.
Fixing Sequential modules for Mac, Linux. Adding Take5, Sledge, MKS50
This is mainly a bug fix release which fixes the search path for Linux and Mac to the recently introduced generic Sequential module.
New synths supported:
- Adding the Studiologic Sledge
- Adding the Sequential Take 5
- Adding as very rough alpha version the Roland MKS-50. This synth cannot be autodetected, but the Orm can receive manual dumps (hopefully), send patches (both TONE and patch at the same time), and import sysex files (that I could test and it works)
Bug fixes:
Bulk export and bulk import/merge of Patch Interchange Format
New feature now working stable:
- The File menu has a new entry called "Export multiple databases...", and when you click it it wants you to select a folder. Then it will iterate through all databases in that folder and create a .json file next to the database - this is a full json export of that database ready for import.
The main use case for this is to create Patch Interchange Format files (those json exports of the KnobKraft database) in order to be imported and merged into a new database, with the second function: - The second entry new entry to the File menu is called "Merge multiple databases..." and really is a bulk import of all json files in the selected folder into the current database. So you could create a new blank empty database and then use the merge multiple... function to select the folder used in 1.), it will import all databases and deduplicate as usual.
Responsive layout, Roland MKS-80, DSI Mopho, Tetra, Evolver
I finally attacked the problem of layouting and responsiveness for different screen sizes, DPIs, and font sizes. This is still only supposed to work on single monitor/single solution setups, but at least it contains a host of improvements and UI changes. This pre-release is available for Windows only for now.
- Made the text search bar the prominent search feature, with text clear button and loupe Icon
- Introduced a left sidebar (resizable, position remembered) with currently the list of all imports. This will be used for future additional filters, like user collections of patches, saved searches, etc.
- Persist the position of the splitters, and the zoom level selected
- Added a slider below the patch button grid to change the number of buttons shown, from 8x8 default down to 7x7, 6x6, ... until 4x4. Also persisted.
- Cleaned up filtering
- Addressing problems caused by #94 by adding two new entries to the File menu - Export Multiple Databases and Merge Multiple Databases. The first menu item can be used to create a json export of each database in a given folder, and the second command can be run to import all json export files in a given folder. Run that with an empty database created to merge multiple databases into one.
New synths and adaptations:
- This contains a first beta version of the Roland MKS 80 support. I tested with my Rev 5 and it seems to work including auto detection and handshake communication, but I'd be interested in your feedback
- All Sequential/Dave Smith Instrument adaptations are now based on a new Python module called GenericSequential, and are only parametrizations of this. This brings a) all features to all DSI and Sequential synths, and b) allowed me to easily add the DSI Mopho, Mopho X4, and DSI Tetra synths. There is a beta version for the DSI Evolver as well, but this has a different and weired way of storing patch names, so would need substantially more work. I hope I broke nothing bad especially on the Prophet 12 ;-)
- Started writing generic adaptation tests, that at some point can be used to test all adaptations for at least well-defined behavior. If you are interested, look in the class TestAdaptation.py in the directory adaptions/sequential
More Bugfixes:
- This should fix the instabilities reported by #93
- Fixes wrong result when using name search and typing/correcting too fast
BETA - Fixing more layout issues and a few crashes
This should fix all issues reported in #42 when testing 1.13.0, except the sticky tool tip problem, which was not reproducible so far.
BETA - Responsive layout, Roland MKS80, DSI Mopho etc.
I finally attacked the problem of layouting and responsiveness for different screen sizes, DPIs, and font sizes. This is still only supposed to work on single monitor/single solution setups, but at least it contains a host of improvements and UI changes. This pre-release is available for Windows only for now.
- Made the text search bar the prominent search feature, with text clear button and loupe Icon
- Introduced a left sidebar (resizable, position remembered) with currently the list of all imports. This will be used for future additional filters, like user collections of patches, saved searches, etc.
- Persist the position of the splitters, and the zoom level selected
- Added a slider below the patch button grid to change the number of buttons shown, from 8x8 default down to 7x7, 6x6, ... until 4x4. Also persisted.
- Cleaned up filtering
New synths and adaptations:
- This contains a first beta version of the Roland MKS 80 support. I tested with my Rev 5 and it seems to work including auto detection and handshake communication, but I'd be interested in your feedback
- All Sequential/Dave Smith Instrument adaptations are now based on a new Python module called GenericSequential, and are only parametrizations of this. This brings a) all features to all DSI and Sequential synths, and b) allowed me to easily add the DSI Mopho, Mopho X4, and DSI Tetra synths. There is a beta version for the DSI Evolver as well, but this has a different and weired way of storing patch names, so would need substantially more work. I hope I broke nothing bad especially on the Prophet 12 ;-)
- Started writing generic adaptation tests, that at some point can be used to test all adaptations for at least well-defined behavior. If you are interested, look in the class TestAdaptation.py in the directory adaptions/sequential
More Bugfixes:
- This should fix the instabilities reported by #93
- Fixes wrong result when using name search and typing/correcting too fast
Fix for Prophet 12, reenable crash dumps and auto update
This version contains a fix for the DSI Prophet 12 adaptation allowing it to load specific third party sound banks.
Additionally, auto updating has been enabled once again, as well as crash dump reporting. If you have installed 1.12.1 or 1.12.2 you will need to manually download the installer to get back into the software auto updating on its own.
Stability fixes for Electra One, SMF support and copy to clipboard
New features:
- Added export of patches into Standard MIDI Files as an option (#83)
- Added a function to copy the current patch into the clipboard in a format suited for the CF sysex recorder (#87), somewhat of an experimental feature.
- Added a new Routing mode checkbox to the Macro Setup page: "Forward Electra One". This is a quick and dirty mode which opens the USB control port of the Electra One and forwards all messages from it to the currently selected synth (not yet into the other direction). This can be used to quickly test the Electra One without the need of more than one USB cable, no further MIDI connections required.
Bugfixes:
- Fixing crashes resulting from trying to send sysex messages larger than 64 KByte as they might happen with Electra One presets. The Crashes are fixed, but expect further problems when trying to send large presets directly to the Electra One. We're working on it.
- More stability fixes for crashes happening when you supply invalid Python adaptation code.
- Don't print Sysex messages longer than 1000 bytes into the MIDI log view - this would make the application sluggish/unresponsive.
- Don't print additional newlines when an adaptation calls print()
- Fix random crashes happening when switching the synth, caused by non-thread safe access of the new category list from the database.
- The Electra One adaptation got some more stability fixes given that some app store presets are invalid JSON and could easily crash the Orm.