A Ton of bug fixes and a few hints at what's to come
All of the known memory leaks have been dealt with, and significant work has been done to help with the crashing/instability on mac.
the config file has been moved from the obs profile config, to under plugin_config/obs-midi, with a name like obs-midi-<profile>-<scenecollection>.json it is also saving in safe mode, so it backs up the files before it overwrites them.
The config files are now properly formatted JSON, so you can look at them in an external editor and actually read and write things,
I took into account your worries about saving everything including empty variables to the JSON file, so it now only saves variables that have values. which reduced the file size significantly.
Version numbers no longer are git hashes, which was becoming a pain to remember which was which and for now at least there is a GitHub action to autoincrement release versions,
I fixed the Mac CI pipeline, so it now will build on your repo, though without installing the mac codesigning stuff signing for releases will still error out.
speaking of the CI pipeline, I have integrated greater caching in order to speed up mac and windows build times. overall unless a cache needs to be rebuilt, or we are awaiting notarization from apple for a release package, build times are now < 4 minutes rather than 7-12
started working on the UI and framework for a macros system.
removed the action "set current scene" and merged it into transition, also gave the option to override transition and the transition duration.
You can now optionally use the midi "value" as part of the trigger instead of just in the actions, allowing people to scrobble through scenes, or on some devices they set `note on` for both button press and release, using the velocity as the determiner for action.
and I think that's it other than some other general cleanup.
Upcoming release info.
I will be doing a major rewrite with obs midi starting within the next week or so, The current system while it works, mostly, was thrown together very quickly without much thought behind how to do things cleanly or elegantly, It is basically held together with duct tape twine and bubblegum,
Any new features people want added I recommend putting in a feature request on the main GitHub issues page. Please understand that if you put a feature request here, I may not see it. I will be looking for any feature requests on the GitHub issues page as it is much easier to integrate into my workflow, and I get emailed on every new issue posted there and check that multiple times a day where I only check here intermittently.
Current Goals in the next release are;
Clean and simplify the UI
Create a system for Importing and Exporting Mappings
Expand the Triggerable actions.
Eliminating all of the memory leaks
Fixing the Mac OS build so it stops crashing
Clean-up of the various classes
Standardization of the variable names.
Implement better error handling.
Especially in regards to device connection and disconnection.
Adding support for plugging in hardware devices after OBS is started.
Either a refresh button
Or polling for devices.
Bonus Goals include;
Implementing a Multi-Action/Macros system
Implementing Translatable UI/Actions names
Building a framework for supporting Multiple Midi Based Standards (Mackie Control Universal, etc.)
If anyone wants to help with code work, Translations, cleanup, etc. I would love the help!