JUCE 5.4.4 breaks a lot of code, because several APIs that used to use plain pointer types have been converted to std::unique_ptr. Fortunately, this only affects the OB-Xd code in two spots. I've done a bit of fancy footwork with #define/#if to allow the code to compile cleanly with either version, but this kind of thing shouldn't be carried on forever. I'd strongly recommend switching to JUCE 5.4.4 as soon as it's practical, and then getting rid of all this #if business.
These changes allow use of the default JUCE paths on all platforms. Life is much simpler if you put JUCE where it "wants" to be: ~/JUCE on Mac/Linux or C:\JUCE on Windows.
I also cleaned up some settings for the VS2019 builds. x64/x32 were reversed, etc. This is all tested in both VS2019 and VS2017.
To ensure backward-compatibility with older banks, the program format has been updated to include a new "voiceCount" attribute (with value 32). When loading patches, the patch XML is checked, and if it does not include the "voiceCount" attribute, the value of the VOICE_COUNT parameter is scaled by 0.25, i.e., to the range 0-8, instead of the new range 0-32. Newly-saved patches will have the new attribute, and the parameter value will not be scaled when the patch is read in.
Adding 32 voices broke compatibility with previous release banks and presets. Code had to be reverted back to 8 voice handling. Projucer project is now correctly configured for Linux and Windows
Updated jucer file (VST3, standalone support).
Default GUI set to Blue.
Updated to be compiled with JUCE 5.4.3
Skins menu drop down list displays sorted.