gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit 929df1d81e0fa58021cb6968f7dee895d7b2aed1
parent 826e2409ccdd38bc81cab6668bfb039bd8979d43
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Mon,  9 Jan 2023 09:03:00 +0100

update OSS version

Diffstat:
M.gitmodules | 3+++
MCMakeLists.txt | 4++++
Mdoc/changelog.txt | 11+++++++++++
Asource/clap-juce-extensions | 1+
Msource/jucePlugin/CMakeLists.txt | 24++++++++++++++++++++++++
Msource/synthLib/os.cpp | 5+++--
Msource/virusIntegrationTest/CMakeLists.txt | 1+
7 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -4,3 +4,6 @@ [submodule "source/JUCE"] path = source/JUCE url = https://github.com/dsp56300/JUCE +[submodule "source/clap-juce-extensions"] + path = source/clap-juce-extensions + url = ../../free-audio/clap-juce-extensions.git diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -16,6 +16,7 @@ set(ASMJIT_NO_INSTALL TRUE) set(BUILD_SHARED_LIBS OFF) option(${PROJECT_NAME}_BUILD_JUCEPLUGIN "Build Juce plugin" on) +option(${PROJECT_NAME}_BUILD_JUCEPLUGIN_CLAP "Build CLAP version of Juce plugin" on) add_subdirectory(source/dsp56300/source) add_subdirectory(source/synthLib) @@ -46,6 +47,9 @@ set_property(GLOBAL PROPERTY USE_FOLDERS YES) if(${PROJECT_NAME}_BUILD_JUCEPLUGIN) set(JUCE_ENABLE_MODULE_SOURCE_GROUPS ON CACHE BOOL "" FORCE) add_subdirectory(source/JUCE) + if(${PROJECT_NAME}_BUILD_JUCEPLUGIN_CLAP) + add_subdirectory(source/clap-juce-extensions) + endif() add_subdirectory(source/jucePluginLib) add_subdirectory(source/juceUiLib) add_subdirectory(source/jucePlugin) diff --git a/doc/changelog.txt b/doc/changelog.txt @@ -1,5 +1,16 @@ Release Notes +1.2.25 (2023.01.08) + +- [Imp] DSP56300 plugins are now also available in CLAP plugin format + +- [Fix] Preset export created incorrect preset if exported from any part but the first +- [Fix] Multi controls (part volume & pan) did not respond anymore after switching the active part and displayed incorrect values +- [Fix] Performance issues when using automation +- [Fix] Controls may have displayed incorrect values if a preset was loaded from an older Virus version +- [Fix] Do not attempt to process invalid Single Dump SysEx message the part number is invalid +- [Fix] Possible Audio Input crackling issues (Depending on the host sample rate) + 1.2.24 (2022.12.16) - [Fix] AU validation failed on MacOS (1.2.23 regression) diff --git a/source/clap-juce-extensions b/source/clap-juce-extensions @@ -0,0 +1 @@ +Subproject commit cf93cac7ca6a1c0c548c2bda85d49e9bfdb979e1 diff --git a/source/jucePlugin/CMakeLists.txt b/source/jucePlugin/CMakeLists.txt @@ -6,6 +6,8 @@ option(${CMAKE_PROJECT_NAME}_BUILD_FX_PLUGIN "Build FX plugin variants" off) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/version.h) +set(USE_CLAP ${CMAKE_PROJECT_NAME}_BUILD_JUCEPLUGIN_CLAP) + if(JUCE_GLOBAL_VST2_SDK_PATH) set(VST "VST") else() @@ -95,6 +97,22 @@ macro(createJucePlugin targetName productName isSynth plugin4CC binaryDataProjec #juce::juce_recommended_warning_flags ) + set(clapFeatures "") + if(${isSynth}) + list(APPEND clapFeatures instrument synthesizer) + else() + list(APPEND clapFeatures audio-effect synthesizer multi-effects) + endif() + + if(USE_CLAP) + clap_juce_extensions_plugin(TARGET ${targetName} + CLAP_ID "com.theusualsuspects.${plugin4CC}" + CLAP_FEATURES ${clapFeatures} + CLAP_SUPPORT_URL "https://dsp56300.wordpress.com" + CLAP_MANUAL_URL "https://dsp56300.wordpress.com" + ) + endif() + if(UNIX AND NOT APPLE) target_link_libraries(${targetName} PUBLIC -static-libgcc -static-libstdc++) endif() @@ -107,11 +125,17 @@ macro(createJucePlugin targetName productName isSynth plugin4CC binaryDataProjec if(APPLE) install(TARGETS ${targetName}_AU DESTINATION . COMPONENT AU${componentName}) endif() + if(USE_CLAP) + install(TARGETS ${targetName}_CLAP DESTINATION . COMPONENT CLAP${componentName}) + endif() elseif(UNIX) if(JUCE_GLOBAL_VST2_SDK_PATH) install(TARGETS ${targetName}_VST LIBRARY DESTINATION /usr/local/lib/vst/ COMPONENT VST2${componentName}) endif() install(TARGETS ${targetName}_VST3 LIBRARY DESTINATION /usr/local/lib/vst3/ COMPONENT VST3${componentName}) + if(USE_CLAP) + install(TARGETS ${targetName}_CLAP LIBRARY DESTINATION /usr/local/lib/clap/ COMPONENT CLAP${componentName}) + endif() endif() endmacro() diff --git a/source/synthLib/os.cpp b/source/synthLib/os.cpp @@ -84,6 +84,7 @@ namespace synthLib { fixPath(".vst"); fixPath(".vst3"); + fixPath(".clap"); fixPath(".component"); fixPath(".app"); } @@ -238,13 +239,13 @@ namespace synthLib if(path.empty()) path = getCurrentDirectory(); - auto f = findFile(".bin", _minSize, _maxSize); + auto f = findFile(path, ".bin", _minSize, _maxSize); if(!f.empty()) return f; path = getModulePath(false); - return findFile(".bin", _minSize, _maxSize); + return findFile(path, ".bin", _minSize, _maxSize); } std::string findROM(const size_t _expectedSize) diff --git a/source/virusIntegrationTest/CMakeLists.txt b/source/virusIntegrationTest/CMakeLists.txt @@ -19,3 +19,4 @@ add_test(NAME virusIntegrationTests COMMAND ${CMAKE_COMMAND} -DTEST_RUNNER=$<TARGET_FILE:virusIntegrationTest> -DROOT_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/runTest.cmake) +set_tests_properties(virusIntegrationTests PROPERTIES LABELS "IntegrationTest")