CMake definitions and format rearrangement

- Rename some SFIZZ_ prefixed definitions where possible to permit some modules
  to be generic and be reused in other projects, keep project' information
  in the same place and more explicit
- Fixed non-compliant code formatting
This commit is contained in:
redtide 2023-05-20 16:21:00 +02:00
parent 8fd17c15c0
commit 6953168087
No known key found for this signature in database
26 changed files with 389 additions and 333 deletions

View file

@ -70,10 +70,10 @@ jobs:
-D SFIZZ_JACK=OFF -D SFIZZ_JACK=OFF
-D SFIZZ_RENDER=OFF -D SFIZZ_RENDER=OFF
-D SFIZZ_SHARED=OFF -D SFIZZ_SHARED=OFF
-D SFIZZ_LV2=ON -D PLUGIN_LV2=ON
-D SFIZZ_LV2_UI=ON -D PLUGIN_LV2_UI=ON
-D SFIZZ_PUREDATA=ON -D PLUGIN_PUREDATA=ON
-D SFIZZ_VST=ON -D PLUGIN_VST3=ON
) )
cmake "${options[@]}" cmake "${options[@]}"
- name: Build - name: Build
@ -106,10 +106,10 @@ jobs:
-D CMAKE_BUILD_TYPE=${{ env.build_type }} -D CMAKE_BUILD_TYPE=${{ env.build_type }}
-D CMAKE_CXX_STANDARD=17 -D CMAKE_CXX_STANDARD=17
-D SFIZZ_SHARED=OFF -D SFIZZ_SHARED=OFF
-D SFIZZ_AU=ON -D PLUGIN_AU=ON
-D SFIZZ_LV2=ON -D PLUGIN_LV2=ON
-D SFIZZ_LV2_UI=ON -D PLUGIN_LV2_UI=ON
-D SFIZZ_VST=ON -D PLUGIN_VST3=ON
) )
if [[ ${{ github.ref_type }} == 'branch' ]]; then if [[ ${{ github.ref_type }} == 'branch' ]]; then
options=( options=(
@ -182,9 +182,9 @@ jobs:
-S "${Env:GITHUB_WORKSPACE}" ` -S "${Env:GITHUB_WORKSPACE}" `
-D CMAKE_BUILD_TYPE=${{ env.build_type }} ` -D CMAKE_BUILD_TYPE=${{ env.build_type }} `
-D CMAKE_CXX_STANDARD=17 ` -D CMAKE_CXX_STANDARD=17 `
-D SFIZZ_LV2=ON ` -D PLUGIN_LV2=ON `
-D SFIZZ_PUREDATA=ON ` -D PLUGIN_PUREDATA=ON `
-D SFIZZ_VST=ON ` -D PLUGIN_VST3=ON `
- name: Build - name: Build
working-directory: ${{ runner.workspace }} working-directory: ${{ runner.workspace }}
run: cmake --build build --config ${{ env.build_type }} --verbose -j 2 run: cmake --build build --config ${{ env.build_type }} --verbose -j 2
@ -301,8 +301,8 @@ jobs:
-D ENABLE_LTO=OFF -D ENABLE_LTO=OFF
-D SFIZZ_STATIC_DEPENDENCIES=ON -D SFIZZ_STATIC_DEPENDENCIES=ON
-D SFIZZ_JACK=OFF -D SFIZZ_JACK=OFF
-D SFIZZ_PUREDATA=ON -D PLUGIN_PUREDATA=ON
-D SFIZZ_VST=ON -D PLUGIN_VST3=ON
) )
${{ matrix.platform }}-w64-mingw32-cmake "${options[@]}" ${{ matrix.platform }}-w64-mingw32-cmake "${options[@]}"
- name: Build - name: Build
@ -353,8 +353,8 @@ jobs:
-D PROJECT_SYSTEM_PROCESSOR=armv7-a \ -D PROJECT_SYSTEM_PROCESSOR=armv7-a \
-D CMAKE_BUILD_TYPE=Release \ -D CMAKE_BUILD_TYPE=Release \
-D SFIZZ_JACK=OFF \ -D SFIZZ_JACK=OFF \
-D SFIZZ_VST=OFF \ -D PLUGIN_VST3=OFF \
-D SFIZZ_LV2_UI=OFF -D PLUGIN_LV2_UI=OFF
- name: Build - name: Build
shell: bash shell: bash
working-directory: ${{ runner.workspace }} working-directory: ${{ runner.workspace }}

View file

@ -1,18 +1,34 @@
if (WIN32) if(WIN32)
cmake_minimum_required (VERSION 3.15) cmake_minimum_required(VERSION 3.15)
cmake_policy(SET CMP0091 NEW) cmake_policy(SET CMP0091 NEW)
else() else()
# FIXME: The old JPC fork of mod-plugin-builder image used in CI requires 3.5. # FIXME: The old JPC fork of mod-plugin-builder image used in CI requires 3.5.
# The current upstream one needs a different configuration. # The current upstream one needs a different configuration.
# Minimum required to use SFIZZ_USE_SYSTEM_ABSEIL is 3.11, # Minimum required to use SFIZZ_USE_SYSTEM_ABSEIL is 3.11,
# see library/cmake/SfizzDeps.cmake at line 70. # see library/cmake/SfizzDeps.cmake at line 70.
cmake_minimum_required(VERSION 3.11) # CMake 3.12 supports object libraries, can be used to share a single build
# between AU, VST2 and VST3 plugins; also to use project' HOMEPAGE_URL.
cmake_minimum_required(VERSION 3.12)
endif() endif()
project (sfizz VERSION 1.2.2 LANGUAGES CXX C) # The project was splitted in 2 repositories:
set (PROJECT_DESCRIPTION # - `sfizz` for the library, which represents the main repository reference
"SFZ based sampler, providing AU, LV2, PureData and VST plugins." # - `sfizz-ui` for UIs (plugins with a future standalone UI in mind).
# However, to keep the original structure, we assume this as "sfizz" project,
# containing the "libsfizz" sub project in the `library` git submodule.
project(sfizz
DESCRIPTION "SFZ sampler, providing AU, LV2, PureData and VST plugins."
HOMEPAGE_URL "http://sfztools.github.io/sfizz"
LANGUAGES CXX C
VERSION 1.2.2
) )
set(PROJECT_REPOSITORY "https://github.com/sfztools/sfizz")
set(PROJECT_AUTHOR "SFZTools")
set(PROJECT_EMAIL "paul@ferrand.cc")
set(LV2_PLUGIN_VERSION_MINOR 10)
set(LV2_PLUGIN_VERSION_MICRO 3)
# External configuration CMake scripts # External configuration CMake scripts
set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};" set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};"
"${CMAKE_CURRENT_SOURCE_DIR}/library/cmake;" "${CMAKE_CURRENT_SOURCE_DIR}/library/cmake;"
@ -21,16 +37,21 @@ set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};"
include(BuildType) include(BuildType)
include(OptionEx) include(OptionEx)
option_ex(SFIZZ_AU "Enable AU plug-in build" APPLE) option_ex(PLUGIN_AU "Enable AU plug-in build" APPLE)
option_ex(SFIZZ_LV2 "Enable LV2 plug-in build" ON) option_ex(PLUGIN_LV2 "Enable LV2 plug-in build" ON)
option_ex(SFIZZ_LV2_UI "Enable LV2 plug-in user interface" ON) option_ex(PLUGIN_LV2_UI "Enable LV2 plug-in user interface" ON)
option_ex(SFIZZ_PUREDATA "Enable Puredata plug-in build" OFF) option_ex(PLUGIN_PUREDATA "Enable Puredata plug-in build" OFF)
option_ex(PLUGIN_VST2 "Enable VST2 plug-in build (unsupported)" OFF)
option_ex(PLUGIN_VST3 "Enable VST3 plug-in build" ON)
option_ex(SFIZZ_USE_SYSTEM_LV2 "Use LV2 headers preinstalled on system" OFF) option_ex(SFIZZ_USE_SYSTEM_LV2 "Use LV2 headers preinstalled on system" OFF)
option_ex(SFIZZ_USE_SYSTEM_VST3SDK "Use VST3SDK source files preinstalled on system" OFF) option_ex(SFIZZ_USE_SYSTEM_VST3SDK "Use VST3SDK source files preinstalled on system" OFF)
option_ex(SFIZZ_VST2 "Enable VST2 plug-in build (unsupported)" OFF)
option_ex(SFIZZ_VST "Enable VST plug-in build" ON)
set(MIDI_CC_MAX 512 CACHE STRING "Maximum amount of Control Change Messages") set(MIDI_CC_COUNT 512 CACHE STRING "Maximum amount of Control Change Messages")
# TODO: VCPKG OR SNDFILE_STATIC?
if(PLUGIN_LV2 AND SFIZZ_USE_VCPKG)
set(LV2_PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
endif()
# Set Windows compatibility level to 10 required by VSTGUI # Set Windows compatibility level to 10 required by VSTGUI
if(WIN32) if(WIN32)
@ -50,8 +71,8 @@ if(WIN32)
${PROJECT_BINARY_DIR}/innosetup.iss @ONLY) ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY)
endif() endif()
# Put it at the end so that the vst/lv2 directories are registered # Leave this at the end so that the vst/lv2 directories are registered
if (NOT MSVC) if(NOT MSVC)
include(PluginsUninstall) include(PluginsUninstall)
endif() endif()

View file

@ -1,3 +1,9 @@
# SPDX-License-Identifier: BSD-2-Clause
# This code is part of the sfizz library and is licensed under a BSD 2-clause
# license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
# Dylib bundler for macOS # Dylib bundler for macOS
# Requires the external program "dylibbundler" # Requires the external program "dylibbundler"

View file

@ -1,26 +1,27 @@
# This option is for MIDI CC support in absence of host midi:binding support # SPDX-License-Identifier: BSD-2-Clause
option(SFIZZ_LV2_PSA "Enable plugin-side MIDI automations" ON)
# Configuration for this plugin # This code is part of the sfizz library and is licensed under a BSD 2-clause
# TODO: generate version from git # license. You should have receive a LICENSE.md file along with the code.
set(LV2PLUGIN_VERSION_MINOR 10) # If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
set(LV2PLUGIN_VERSION_MICRO 3)
set(LV2PLUGIN_NAME "sfizz") # This option is for MIDI CC support in absence of host midi:binding support
set(LV2PLUGIN_COMMENT "SFZ sampler") option(PLUGIN_LV2_PSA "Enable plugin-side MIDI automations" ON)
set(LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
set(LV2PLUGIN_REPOSITORY SFIZZ_REPOSITORY) set(LV2_PLUGIN_NAME "${PROJECT_NAME}")
set(LV2PLUGIN_AUTHOR "SFZTools") set(LV2_PLUGIN_COMMENT "${PROJECT_DESCRIPTION}")
set(LV2PLUGIN_EMAIL "paul@ferrand.cc") set(LV2_PLUGIN_URI "${PROJECT_HOMEPAGE_URL}")
if(SFIZZ_USE_VCPKG) set(LV2_PLUGIN_REPOSITORY "${PROJECT_REPOSITORY}")
set(LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only") set(LV2_PLUGIN_AUTHOR "${PROJECT_AUTHOR}")
else() set(LV2_PLUGIN_EMAIL "${PROJECT_EMAIL}")
set(LV2PLUGIN_SPDX_LICENSE_ID "ISC")
if(NOT LV2_PLUGIN_SPDX_LICENSE_ID)
set(LV2_PLUGIN_SPDX_LICENSE_ID "ISC") # default license
endif() endif()
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
set(LV2PLUGIN_IF_ENABLE_UI "") set(LV2_PLUGIN_IF_ENABLE_UI "")
else() else()
set(LV2PLUGIN_IF_ENABLE_UI "#") set(LV2_PLUGIN_IF_ENABLE_UI "#")
endif() endif()
if(WIN32) if(WIN32)
@ -34,43 +35,43 @@ else()
endif() endif()
if(APPLE) if(APPLE)
set(LV2PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/LV2" CACHE STRING set(LV2_PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/LV2" CACHE STRING
"Install destination for LV2 bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/LV2]") "Install destination for LV2 bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/LV2]")
elseif(MSVC) elseif(MSVC)
set(LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING set(LV2_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lv2]") "Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lv2]")
else() else()
set(LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2" CACHE STRING set(LV2_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2" CACHE STRING
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/lv2]") "Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/lv2]")
endif() endif()
include(StringUtility) include(StringUtility)
function(sfizz_lv2_generate_controllers_ttl FILE) function(generate_lv2_controllers_ttl FILE)
file(WRITE "${FILE}" "# LV2 parameters for SFZ controllers file(WRITE "${FILE}" "# LV2 parameters for MIDI CC controllers
@prefix atom: <http://lv2plug.in/ns/ext/atom#> . @prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> . @prefix midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> . @prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sfizz: <${LV2PLUGIN_URI}#> . @prefix ${PROJECT_NAME}: <${LV2_PLUGIN_URI}#> .
") ")
math(EXPR _j "${MIDI_CC_MAX}-1") math(EXPR _j "${MIDI_CC_COUNT}-1")
foreach(_i RANGE "${_j}") foreach(_i RANGE "${_j}")
if(_i LESS 128 AND SFIZZ_LV2_PSA) if(_i LESS 128 AND PLUGIN_LV2_PSA)
continue() # Don't generate automation parameters for CCs with plugin-side automation continue() # Don't generate automation parameters for CCs with plugin-side automation
endif() endif()
string_left_pad(_i "${_i}" 3 0) string_left_pad(_i "${_i}" 3 0)
file(APPEND "${FILE}" " file(APPEND "${FILE}" "
sfizz:cc${_i} ${PROJECT_NAME}:cc${_i}
a lv2:Parameter ; a lv2:Parameter ;
rdfs:label \"Controller ${_i}\" ; rdfs:label \"Controller ${_i}\" ;
rdfs:range atom:Float ; rdfs:range atom:Float ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 1.0") lv2:maximum 1.0")
if(_i LESS 128 AND NOT SFIZZ_LV2_PSA) if(_i LESS 128 AND NOT PLUGIN_LV2_PSA)
math(EXPR _digit1 "${_i}>>4") math(EXPR _digit1 "${_i}>>4")
math(EXPR _digit2 "${_i}&15") math(EXPR _digit2 "${_i}&15")
string(SUBSTRING "0123456789ABCDEF" "${_digit1}" 1 _digit1) string(SUBSTRING "0123456789ABCDEF" "${_digit1}" 1 _digit1)
@ -85,22 +86,22 @@ sfizz:cc${_i}
endforeach() endforeach()
file(APPEND "${FILE}" " file(APPEND "${FILE}" "
<${LV2PLUGIN_URI}> <${LV2_PLUGIN_URI}>
a lv2:Plugin ; a lv2:Plugin ;
") ")
file(APPEND "${FILE}" " patch:readable") file(APPEND "${FILE}" " patch:readable")
if(NOT SFIZZ_LV2_PSA) if(NOT PLUGIN_LV2_PSA)
file(APPEND "${FILE}" " sfizz:cc000") file(APPEND "${FILE}" " ${PROJECT_NAME}:cc000")
foreach(_i RANGE 1 "${_j}") foreach(_i RANGE 1 "${_j}")
string_left_pad(_i "${_i}" 3 0) string_left_pad(_i "${_i}" 3 0)
file(APPEND "${FILE}" ", sfizz:cc${_i}") file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
endforeach() endforeach()
else() else()
file(APPEND "${FILE}" " sfizz:cc128") file(APPEND "${FILE}" " ${PROJECT_NAME}:cc128")
foreach(_i RANGE 129 "${_j}") foreach(_i RANGE 129 "${_j}")
string_left_pad(_i "${_i}" 3 0) string_left_pad(_i "${_i}" 3 0)
file(APPEND "${FILE}" ", sfizz:cc${_i}") file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
endforeach() endforeach()
endif() endif()
@ -108,17 +109,17 @@ sfizz:cc${_i}
") ")
file(APPEND "${FILE}" " patch:writable") file(APPEND "${FILE}" " patch:writable")
if(NOT SFIZZ_LV2_PSA) if(NOT PLUGIN_LV2_PSA)
file(APPEND "${FILE}" " sfizz:cc000") file(APPEND "${FILE}" " ${PROJECT_NAME}:cc000")
foreach(_i RANGE 1 "${_j}") foreach(_i RANGE 1 "${_j}")
string_left_pad(_i "${_i}" 3 0) string_left_pad(_i "${_i}" 3 0)
file(APPEND "${FILE}" ", sfizz:cc${_i}") file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
endforeach() endforeach()
else() else()
file(APPEND "${FILE}" " sfizz:cc128") file(APPEND "${FILE}" " ${PROJECT_NAME}:cc128")
foreach(_i RANGE 129 "${_j}") foreach(_i RANGE 129 "${_j}")
string_left_pad(_i "${_i}" 3 0) string_left_pad(_i "${_i}" 3 0)
file(APPEND "${FILE}" ", sfizz:cc${_i}") file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
endforeach() endforeach()
endif() endif()
file(APPEND "${FILE}" " . file(APPEND "${FILE}" " .

View file

@ -1,3 +1,9 @@
# SPDX-License-Identifier: BSD-2-Clause
# This code is part of the sfizz library and is licensed under a BSD 2-clause
# license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
endif() endif()

View file

@ -1,3 +1,9 @@
# SPDX-License-Identifier: BSD-2-Clause
# This code is part of the sfizz library and is licensed under a BSD 2-clause
# license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
if(NOT TARGET uninstall) if(NOT TARGET uninstall)
configure_file( configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/MakeUninstall.cmake.in" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/MakeUninstall.cmake.in"
@ -7,13 +13,13 @@ if(NOT TARGET uninstall)
add_custom_target(uninstall add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake)
if(SFIZZ_LV2 AND LV2PLUGIN_INSTALL_DIR) if(PLUGIN_LV2 AND LV2_PLUGIN_INSTALL_DIR)
add_custom_command(TARGET uninstall add_custom_command(TARGET uninstall
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2") COMMAND rm -rv "${LV2_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
endif() endif()
if(SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR) if(PLUGIN_VST3 AND VST3_PLUGIN_INSTALL_DIR)
add_custom_command(TARGET uninstall add_custom_command(TARGET uninstall
COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3") COMMAND rm -rv "${VST3_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3")
endif() endif()
endif() endif()

View file

@ -1,3 +1,9 @@
# SPDX-License-Identifier: BSD-2-Clause
# This code is part of the sfizz library and is licensed under a BSD 2-clause
# license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
find_path(PD_INCLUDE_BASEDIR "m_pd.h" PATH_SUFFIXES "pd") find_path(PD_INCLUDE_BASEDIR "m_pd.h" PATH_SUFFIXES "pd")
set(PD_IMP_DEF "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/bin/pd.def") set(PD_IMP_DEF "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/bin/pd.def")
@ -17,13 +23,13 @@ else()
endif() endif()
if(APPLE) if(APPLE)
set(PDPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Pd" CACHE STRING set(PD_PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Pd" CACHE STRING
"Install destination for Puredata bundle [default: $ENV{HOME}/Library/Pd]") "Install destination for Puredata bundle [default: $ENV{HOME}/Library/Pd]")
elseif(MSVC) elseif(MSVC)
set(PDPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/Pd/extra" CACHE STRING set(PD_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/Pd/extra" CACHE STRING
"Install destination for Puredata bundle [default: ${CMAKE_INSTALL_PREFIX}/Pd/extra]") "Install destination for Puredata bundle [default: ${CMAKE_INSTALL_PREFIX}/Pd/extra]")
else() else()
set(PDPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/pd/extra" CACHE STRING set(PD_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/pd/extra" CACHE STRING
"Install destination for Puredata bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/pd/extra]") "Install destination for Puredata bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/pd/extra]")
endif() endif()

View file

@ -1,5 +1,9 @@
# SPDX-License-Identifier: BSD-2-Clause # SPDX-License-Identifier: BSD-2-Clause
# This code is part of the sfizz library and is licensed under a BSD 2-clause
# license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
function(string_left_pad VAR INPUT LENGTH FILLCHAR) function(string_left_pad VAR INPUT LENGTH FILLCHAR)
set(_output "${INPUT}") set(_output "${INPUT}")
string(LENGTH "${_output}" _length) string(LENGTH "${_output}" _length)

View file

@ -1,18 +1,24 @@
set(VSTPLUGIN_NAME "sfizz") # SPDX-License-Identifier: BSD-2-Clause
set(VSTPLUGIN_VENDOR "SFZTools")
set(VSTPLUGIN_URL "http://sfztools.github.io/sfizz") # This code is part of the sfizz library and is licensed under a BSD 2-clause
set(VSTPLUGIN_EMAIL "paul@ferrand.cc") # license. You should have receive a LICENSE.md file along with the code.
# If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
set(VST3_PLUGIN_NAME "${PROJECT_NAME}")
set(VST3_PLUGIN_VENDOR "${PROJECT_AUTHOR}")
set(VST3_PLUGIN_URL "${PROJECT_HOMEPAGE_URL}")
set(VST3_PLUGIN_EMAIL "${PROJECT_EMAIL}")
if(APPLE) if(APPLE)
set(VSTPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" CACHE STRING set(VST3_PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" CACHE STRING
"Install destination for VST bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/VST3]") "Install destination for VST bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/VST3]")
set(AUPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components" CACHE STRING set(AU_PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components" CACHE STRING
"Install destination for AudioUnit bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/Components]") "Install destination for AudioUnit bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/Components]")
elseif(MSVC) elseif(MSVC)
set(VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING set(VST3_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/vst3]") "Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/vst3]")
else() else()
set(VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/vst3" CACHE STRING set(VST3_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/vst3" CACHE STRING
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/vst3]") "Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/vst3]")
endif() endif()

@ -1 +1 @@
Subproject commit 9d59e1847264758e7840623ec139778c951e984d Subproject commit 9a3e371daa3548258db896d13ff3fcd3c7fb7901

View file

@ -43,18 +43,18 @@ elseif(APPLE)
else() else()
endif() endif()
if((SFIZZ_LV2 AND SFIZZ_LV2_UI) OR SFIZZ_VST OR SFIZZ_AU OR SFIZZ_VST2) if((PLUGIN_LV2 AND PLUGIN_LV2_UI) OR PLUGIN_VST3 OR PLUGIN_AU OR PLUGIN_VST2)
add_subdirectory(editor) add_subdirectory(editor)
endif() endif()
if(SFIZZ_LV2) if(PLUGIN_LV2)
add_subdirectory(lv2) add_subdirectory(lv2)
endif() endif()
if((SFIZZ_VST OR SFIZZ_AU OR SFIZZ_VST2) AND NOT (PROJECT_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc).*")) if((PLUGIN_VST3 OR PLUGIN_AU OR PLUGIN_VST2) AND NOT (PROJECT_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc).*"))
add_subdirectory(vst) add_subdirectory(vst)
endif() endif()
if(SFIZZ_PUREDATA) if(PLUGIN_PUREDATA)
add_subdirectory(puredata) add_subdirectory(puredata)
endif() endif()

View file

@ -1,4 +1,4 @@
set(LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2") set(LV2_PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/ # Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2") set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
@ -7,51 +7,51 @@ set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
include(LV2Config) include(LV2Config)
# Keep non build turtle files in IDE # Keep non build turtle files in IDE
set(LV2PLUGIN_TTL_SRC_FILES set(LV2_PLUGIN_TTL_SRC_FILES
manifest.ttl.in manifest.ttl.in
${PROJECT_NAME}.ttl.in ${PROJECT_NAME}.ttl.in
) )
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
list(APPEND LV2PLUGIN_TTL_SRC_FILES list(APPEND LV2_PLUGIN_TTL_SRC_FILES
${PROJECT_NAME}_ui.ttl.in) ${PROJECT_NAME}_ui.ttl.in)
endif() endif()
source_group("Turtle Files" FILES source_group("Turtle Files" FILES
${LV2PLUGIN_TTL_SRC_FILES} ${LV2_PLUGIN_TTL_SRC_FILES}
) )
add_library(${LV2PLUGIN_PRJ_NAME} MODULE add_library(${LV2_PLUGIN_PRJ_NAME} MODULE
${PROJECT_NAME}.cpp ${PROJECT_NAME}.cpp
${PROJECT_NAME}_lv2_common.cpp ${PROJECT_NAME}_lv2_common.cpp
${LV2PLUGIN_TTL_SRC_FILES}) ${LV2_PLUGIN_TTL_SRC_FILES})
target_link_libraries(${LV2PLUGIN_PRJ_NAME} PRIVATE sfizz::sfizz sfizz::import sfizz::plugins-common) target_link_libraries(${LV2_PLUGIN_PRJ_NAME} PRIVATE sfizz::sfizz sfizz::import sfizz::plugins-common)
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE add_library(${LV2_PLUGIN_PRJ_NAME}_ui MODULE
${PROJECT_NAME}_ui.cpp ${PROJECT_NAME}_ui.cpp
${PROJECT_NAME}_lv2_common.cpp ${PROJECT_NAME}_lv2_common.cpp
vstgui_helpers.h vstgui_helpers.h
vstgui_helpers.cpp) vstgui_helpers.cpp)
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE sfizz::editor sfizz::vstgui sfizz::plugins-common) target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE sfizz::editor sfizz::vstgui sfizz::plugins-common)
endif() endif()
if(SFIZZ_LV2_PSA) if(PLUGIN_LV2_PSA)
target_compile_definitions(${LV2PLUGIN_PRJ_NAME} PRIVATE "SFIZZ_LV2_PSA=1") target_compile_definitions(${LV2_PLUGIN_PRJ_NAME} PRIVATE "PLUGIN_LV2_PSA=1")
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
target_compile_definitions(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE "SFIZZ_LV2_PSA=1") target_compile_definitions(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "PLUGIN_LV2_PSA=1")
endif() endif()
endif() endif()
# Explicitely strip all symbols on Linux but lv2_descriptor() # Explicitely strip all symbols on Linux but lv2_descriptor()
# MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555 # MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
target_link_libraries(${LV2PLUGIN_PRJ_NAME} PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2.version") target_link_libraries(${LV2_PLUGIN_PRJ_NAME} PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2.version")
# target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor") # target_link_libraries(${LV2_PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2ui.version") target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2ui.version")
# target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor") # target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
endif() endif()
endif() endif()
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour) target_include_directories(${LV2_PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
if(SFIZZ_USE_SYSTEM_LV2) if(SFIZZ_USE_SYSTEM_LV2)
find_path(LV2_INCLUDE_DIR "lv2.h") find_path(LV2_INCLUDE_DIR "lv2.h")
if(NOT LV2_INCLUDE_DIR) if(NOT LV2_INCLUDE_DIR)
@ -60,41 +60,41 @@ if(SFIZZ_USE_SYSTEM_LV2)
message(STATUS "Found system lv2") message(STATUS "Found system lv2")
endif() endif()
else() else()
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE vendor) target_include_directories(${LV2_PLUGIN_PRJ_NAME} PRIVATE vendor)
endif() endif()
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${LV2_PLUGIN_PRJ_NAME})
if(MINGW) if(MINGW)
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif() endif()
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour) target_include_directories(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
if(NOT SFIZZ_USE_SYSTEM_LV2) if(NOT SFIZZ_USE_SYSTEM_LV2)
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE vendor) target_include_directories(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE vendor)
endif() endif()
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui) sfizz_enable_lto_if_needed(${LV2_PLUGIN_PRJ_NAME}_ui)
if(MINGW) if(MINGW)
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static") set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
endif() endif()
endif() endif()
# Define a preprocessor variable to indicate a build with UI enabled # Define a preprocessor variable to indicate a build with UI enabled
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
target_compile_definitions(${LV2PLUGIN_PRJ_NAME} PRIVATE "SFIZZ_LV2_UI=1") target_compile_definitions(${LV2_PLUGIN_PRJ_NAME} PRIVATE "PLUGIN_LV2_UI=1")
target_compile_definitions(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE "SFIZZ_LV2_UI=1") target_compile_definitions(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "PLUGIN_LV2_UI=1")
endif() endif()
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir # Remove the "lib" prefix, rename the target name and build it in the .lv build dir
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to # <build_dir>/lv2/<plugin_name>_lv2.<ext> to
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext> # <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "") set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>") set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "") set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui") set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>") set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
endif() endif()
# Generate *.ttl files from *.in sources, # Generate *.ttl files from *.in sources,
@ -102,13 +102,13 @@ endif()
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl) configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl) configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl) configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
endif() endif()
configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md) configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
# Generate controllers.ttl # Generate controllers.ttl
sfizz_lv2_generate_controllers_ttl("${PROJECT_BINARY_DIR}/controllers.ttl") generate_lv2_controllers_ttl("${PROJECT_BINARY_DIR}/controllers.ttl")
# Copy resource files into the bundle # Copy resource files into the bundle
set(LV2_RESOURCES set(LV2_RESOURCES
@ -122,24 +122,24 @@ foreach(res ${LV2_RESOURCES})
endforeach() endforeach()
# Copy editor resources # Copy editor resources
if(SFIZZ_LV2_UI) if(PLUGIN_LV2_UI)
execute_process( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
${LV2PLUGIN_PRJ_NAME}_ui ${LV2_PLUGIN_PRJ_NAME}_ui
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
"${PROJECT_BINARY_DIR}/Contents/Resources") "${PROJECT_BINARY_DIR}/Contents/Resources")
endif() endif()
# Installation # Installation
if(NOT MSVC) if(NOT MSVC)
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR} install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2_PLUGIN_INSTALL_DIR}
COMPONENT "lv2" COMPONENT "lv2"
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
bundle_dylibs(lv2 bundle_dylibs(lv2
"${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2/Contents/Binary/sfizz.so" "${LV2_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2/Contents/Binary/sfizz.so"
COMPONENT "lv2") COMPONENT "lv2")
bundle_dylibs(lv2-ui bundle_dylibs(lv2-ui
"${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2/Contents/Binary/sfizz_ui.so" "${LV2_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2/Contents/Binary/sfizz_ui.so"
COMPONENT "lv2") COMPONENT "lv2")
endif() endif()

View file

@ -1,7 +1,7 @@
Most of the code in the plug comes from various examples in the LV2 distribution and Most of the code in the plug comes from various examples in the LV2 distribution and
example plugins. As such, the source code of the LV2 plugin version of `sfizz` is example plugins. As such, the source code of the LV2 plugin version of `sfizz` is
distributed under the same terms as the LV2 specification, which is the ISC license. distributed under the same terms as the LV2 specification, which is the ISC license.
Check the LICENSE.md at (@LV2PLUGIN_REPOSITORY@) file for more Check the LICENSE.md at (@LV2_PLUGIN_REPOSITORY@) file for more
information about the license of the source code of the `sfizz` library and its information about the license of the source code of the `sfizz` library and its
contributors. contributors.

View file

@ -2,17 +2,17 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . @prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
<@LV2PLUGIN_URI@> <@LV2_PLUGIN_URI@>
a lv2:Plugin ; a lv2:Plugin ;
lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ; lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ;
rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> . rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> .
<@LV2PLUGIN_URI@-multi> <@LV2_PLUGIN_URI@-multi>
a lv2:Plugin ; a lv2:Plugin ;
lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ; lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ;
rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> . rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> .
@LV2PLUGIN_IF_ENABLE_UI@<@LV2PLUGIN_URI@#ui> @LV2_PLUGIN_IF_ENABLE_UI@<@LV2_PLUGIN_URI@#ui>
@LV2PLUGIN_IF_ENABLE_UI@ a ui:@LV2_UI_TYPE@ ; @LV2_PLUGIN_IF_ENABLE_UI@ a ui:@LV2_UI_TYPE@ ;
@LV2PLUGIN_IF_ENABLE_UI@ ui:binary <Contents/Binary/@PROJECT_NAME@_ui@CMAKE_SHARED_MODULE_SUFFIX@> ; @LV2_PLUGIN_IF_ENABLE_UI@ ui:binary <Contents/Binary/@PROJECT_NAME@_ui@CMAKE_SHARED_MODULE_SUFFIX@> ;
@LV2PLUGIN_IF_ENABLE_UI@ rdfs:seeAlso <@PROJECT_NAME@_ui.ttl> . @LV2_PLUGIN_IF_ENABLE_UI@ rdfs:seeAlso <@PROJECT_NAME@_ui.ttl> .

View file

@ -662,7 +662,7 @@ instantiate(const LV2_Descriptor *descriptor,
self->text_description[0] = 0; self->text_description[0] = 0;
self->resend_description = false; self->resend_description = false;
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
if (self->multi_out) if (self->multi_out)
self->rms_follower.setNumOutputs(MULTI_OUTPUT_COUNT); self->rms_follower.setNumOutputs(MULTI_OUTPUT_COUNT);
else else
@ -693,7 +693,7 @@ activate(LV2_Handle instance)
sfizz_set_samples_per_block(self->synth, self->max_block_size); sfizz_set_samples_per_block(self->synth, self->max_block_size);
sfizz_set_sample_rate(self->synth, self->sample_rate); sfizz_set_sample_rate(self->synth, self->sample_rate);
self->must_update_midnam.store(1); self->must_update_midnam.store(1);
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
self->rms_follower.init(self->sample_rate); self->rms_follower.init(self->sample_rate);
#endif #endif
} }
@ -761,7 +761,7 @@ sfizz_lv2_send_controller(sfizz_plugin_t *self, LV2_URID verb_uri, unsigned cc,
lv2_atom_forge_pop(forge, &frame); lv2_atom_forge_pop(forge, &frame);
} }
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
static void static void
sfizz_lv2_send_levels(sfizz_plugin_t *self, const float* levels, uint32_t num_levels) sfizz_lv2_send_levels(sfizz_plugin_t *self, const float* levels, uint32_t num_levels)
{ {
@ -890,7 +890,7 @@ sfizz_lv2_process_midi_event(sfizz_plugin_t *self, const LV2_Atom_Event *ev)
// Note(jpc) CC must be mapped by host, not handled here. // Note(jpc) CC must be mapped by host, not handled here.
// See LV2 midi:binding. // See LV2 midi:binding.
#if defined(SFIZZ_LV2_PSA) #if defined(PLUGIN_LV2_PSA)
switch (cc) switch (cc)
{ {
default: default:
@ -1276,7 +1276,7 @@ run(LV2_Handle instance, uint32_t sample_count)
spin_mutex_unlock(self->synth_mutex); spin_mutex_unlock(self->synth_mutex);
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
if (self->ui_active) if (self->ui_active)
{ {
if (self->multi_out) { if (self->multi_out) {

View file

@ -23,69 +23,69 @@
midnam:interface a lv2:ExtensionData . midnam:interface a lv2:ExtensionData .
midnam:update a lv2:Feature . midnam:update a lv2:Feature .
<@LV2PLUGIN_URI@#stereo_output> <@LV2_PLUGIN_URI@#stereo_output>
a pg:StereoGroup, pg:OutputGroup ; a pg:StereoGroup, pg:OutputGroup ;
lv2:symbol "stereo_output" ; lv2:symbol "stereo_output" ;
lv2:name "Stereo output", lv2:name "Stereo output",
"Sortie stéréo"@fr , "Sortie stéréo"@fr ,
"Uscita stereo"@it . "Uscita stereo"@it .
<@LV2PLUGIN_URI@#config> <@LV2_PLUGIN_URI@#config>
a pg:Group ; a pg:Group ;
lv2:symbol "config" ; lv2:symbol "config" ;
lv2:name "Configuration", lv2:name "Configuration",
"Configuration"@fr , "Configuration"@fr ,
"Impostazioni"@it . "Impostazioni"@it .
<@LV2PLUGIN_URI@#tuning> <@LV2_PLUGIN_URI@#tuning>
a pg:Group ; a pg:Group ;
lv2:symbol "tuning" ; lv2:symbol "tuning" ;
lv2:name "Tuning", lv2:name "Tuning",
"Accordage"@fr , "Accordage"@fr ,
"Accordatura"@it . "Accordatura"@it .
<@LV2PLUGIN_URI@#status> <@LV2_PLUGIN_URI@#status>
a pg:Group ; a pg:Group ;
lv2:symbol "status" ; lv2:symbol "status" ;
lv2:name "status", lv2:name "status",
"Statut"@fr . "Statut"@fr .
<@LV2PLUGIN_URI@:sfzfile> <@LV2_PLUGIN_URI@:sfzfile>
a lv2:Parameter ; a lv2:Parameter ;
rdfs:label "SFZ file", rdfs:label "SFZ file",
"Fichier SFZ"@fr , "Fichier SFZ"@fr ,
"File SFZ"@it ; "File SFZ"@it ;
rdfs:range atom:Path . rdfs:range atom:Path .
<@LV2PLUGIN_URI@:tuningfile> <@LV2_PLUGIN_URI@:tuningfile>
a lv2:Parameter ; a lv2:Parameter ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
rdfs:label "Scala file", rdfs:label "Scala file",
"Fichier Scala"@fr , "Fichier Scala"@fr ,
"File Scala"@it ; "File Scala"@it ;
rdfs:range atom:Path . rdfs:range atom:Path .
<@LV2PLUGIN_URI@:description> <@LV2_PLUGIN_URI@:description>
a lv2:Parameter ; a lv2:Parameter ;
rdfs:label "Instrument description" ; rdfs:label "Instrument description" ;
rdfs:range atom:String . rdfs:range atom:String .
<@LV2PLUGIN_URI@> <@LV2_PLUGIN_URI@>
a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ; a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ;
doap:name "@LV2PLUGIN_NAME@" ; doap:name "@LV2_PLUGIN_NAME@" ;
doap:license <https://spdx.org/licenses/@LV2PLUGIN_SPDX_LICENSE_ID@> ; doap:license <https://spdx.org/licenses/@LV2_PLUGIN_SPDX_LICENSE_ID@> ;
doap:maintainer [ doap:maintainer [
foaf:name "@LV2PLUGIN_AUTHOR@" ; foaf:name "@LV2_PLUGIN_AUTHOR@" ;
foaf:homepage <@LV2PLUGIN_URI@> ; foaf:homepage <@LV2_PLUGIN_URI@> ;
foaf:mbox <mailto:@LV2PLUGIN_EMAIL@> ; foaf:mbox <mailto:@LV2_PLUGIN_EMAIL@> ;
] ; ] ;
rdfs:comment "@LV2PLUGIN_COMMENT@", rdfs:comment "@LV2_PLUGIN_COMMENT@",
"Échantillonneur SFZ"@fr , "Échantillonneur SFZ"@fr ,
"Campionatore SFZ"@it ; "Campionatore SFZ"@it ;
lv2:minorVersion @LV2PLUGIN_VERSION_MINOR@ ; lv2:minorVersion @LV2_PLUGIN_VERSION_MINOR@ ;
lv2:microVersion @LV2PLUGIN_VERSION_MICRO@ ; lv2:microVersion @LV2_PLUGIN_VERSION_MICRO@ ;
lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ; lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ;
lv2:optionalFeature lv2:hardRTCapable, opts:options, state:mapPath, state:freePath ; lv2:optionalFeature lv2:hardRTCapable, opts:options, state:mapPath, state:freePath ;
@ -97,18 +97,18 @@ midnam:update a lv2:Feature .
opts:supportedOption param:sampleRate ; opts:supportedOption param:sampleRate ;
opts:supportedOption bufsize:maxBlockLength, bufsize:nominalBlockLength ; opts:supportedOption bufsize:maxBlockLength, bufsize:nominalBlockLength ;
@LV2PLUGIN_IF_ENABLE_UI@ui:ui <@LV2PLUGIN_URI@#ui> ; @LV2_PLUGIN_IF_ENABLE_UI@ui:ui <@LV2_PLUGIN_URI@#ui> ;
patch:writable <@LV2PLUGIN_URI@:sfzfile> , patch:writable <@LV2_PLUGIN_URI@:sfzfile> ,
<@LV2PLUGIN_URI@:tuningfile> ; <@LV2_PLUGIN_URI@:tuningfile> ;
patch:readable <@LV2PLUGIN_URI@:description> ; patch:readable <@LV2_PLUGIN_URI@:description> ;
pg:mainOutput <@LV2PLUGIN_URI@#stereo_output> ; pg:mainOutput <@LV2_PLUGIN_URI@#stereo_output> ;
lv2:port [ lv2:port [
a lv2:InputPort, atom:AtomPort ; a lv2:InputPort, atom:AtomPort ;
atom:bufferType atom:Sequence ; atom:bufferType atom:Sequence ;
atom:supports patch:Message, midi:MidiEvent, time:Position, <@LV2PLUGIN_URI@:OSCBlob>, <@LV2PLUGIN_URI@:Notify> ; atom:supports patch:Message, midi:MidiEvent, time:Position, <@LV2_PLUGIN_URI@:OSCBlob>, <@LV2_PLUGIN_URI@:Notify> ;
lv2:designation lv2:control ; lv2:designation lv2:control ;
lv2:index 0 ; lv2:index 0 ;
lv2:symbol "control" ; lv2:symbol "control" ;
@ -118,7 +118,7 @@ midnam:update a lv2:Feature .
] , [ ] , [
a lv2:OutputPort, atom:AtomPort ; a lv2:OutputPort, atom:AtomPort ;
atom:bufferType atom:Sequence ; atom:bufferType atom:Sequence ;
atom:supports patch:Message, <@LV2PLUGIN_URI@:OSCBlob> ; atom:supports patch:Message, <@LV2_PLUGIN_URI@:OSCBlob> ;
lv2:designation lv2:control ; lv2:designation lv2:control ;
lv2:index 1 ; lv2:index 1 ;
lv2:symbol "automate" ; lv2:symbol "automate" ;
@ -132,7 +132,7 @@ midnam:update a lv2:Feature .
lv2:name "Left Output", lv2:name "Left Output",
"Sortie gauche"@fr , "Sortie gauche"@fr ,
"Uscita Sinistra"@it ; "Uscita Sinistra"@it ;
pg:group <@LV2PLUGIN_URI@#stereo_output> ; pg:group <@LV2_PLUGIN_URI@#stereo_output> ;
lv2:designation pg:left lv2:designation pg:left
] , [ ] , [
a lv2:AudioPort, lv2:OutputPort ; a lv2:AudioPort, lv2:OutputPort ;
@ -141,7 +141,7 @@ midnam:update a lv2:Feature .
lv2:name "Right Output", lv2:name "Right Output",
"Sortie droite"@fr , "Sortie droite"@fr ,
"Uscita Destra"@it ; "Uscita Destra"@it ;
pg:group <@LV2PLUGIN_URI@#stereo_output> ; pg:group <@LV2_PLUGIN_URI@#stereo_output> ;
lv2:designation pg:right lv2:designation pg:right
] , [ ] , [
a lv2:InputPort, lv2:ControlPort ; a lv2:InputPort, lv2:ControlPort ;
@ -159,7 +159,7 @@ midnam:update a lv2:Feature .
lv2:name "Polyphony", lv2:name "Polyphony",
"Polyphonie"@fr , "Polyphonie"@fr ,
"Polifonia"@it ; "Polifonia"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -204,7 +204,7 @@ midnam:update a lv2:Feature .
lv2:name "Oversampling factor", lv2:name "Oversampling factor",
"Facteur de suréchantillonnage"@fr , "Facteur de suréchantillonnage"@fr ,
"Fattore Sovracampionamento"@it ; "Fattore Sovracampionamento"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -239,7 +239,7 @@ midnam:update a lv2:Feature .
lv2:name "Preload size", lv2:name "Preload size",
"Taille préchargée"@fr , "Taille préchargée"@fr ,
"Grandezza Precaricamento"@it ; "Grandezza Precaricamento"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -294,7 +294,7 @@ midnam:update a lv2:Feature .
lv2:name "Scala root key", lv2:name "Scala root key",
"Tonalité de base Scala"@fr , "Tonalité de base Scala"@fr ,
"Tonalità di base Scala"@it ; "Tonalità di base Scala"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 60 ; lv2:default 60 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -307,7 +307,7 @@ midnam:update a lv2:Feature .
lv2:name "Tuning frequency", lv2:name "Tuning frequency",
"Fréquence d'accordage"@fr , "Fréquence d'accordage"@fr ,
"Frequenza di accordatura"@it ; "Frequenza di accordatura"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:default 440.0 ; lv2:default 440.0 ;
lv2:minimum 300.0 ; lv2:minimum 300.0 ;
lv2:maximum 500.0 ; lv2:maximum 500.0 ;
@ -319,7 +319,7 @@ midnam:update a lv2:Feature .
lv2:name "Stretched tuning", lv2:name "Stretched tuning",
"Accordage étiré"@fr , "Accordage étiré"@fr ,
"Tensione di accordatura"@it ; "Tensione di accordatura"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:default 0.0 ; lv2:default 0.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 1.0 ; lv2:maximum 1.0 ;
@ -331,7 +331,7 @@ midnam:update a lv2:Feature .
lv2:name "Sample quality", lv2:name "Sample quality",
"Qualité des échantillons"@fr , "Qualité des échantillons"@fr ,
"Qualità del campione"@it ; "Qualità del campione"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 2.0 ; lv2:default 2.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 10.0 lv2:maximum 10.0
@ -342,7 +342,7 @@ midnam:update a lv2:Feature .
lv2:name "Oscillator quality", lv2:name "Oscillator quality",
"Qualité des oscillateurs"@fr , "Qualité des oscillateurs"@fr ,
"Qualità dell'oscillatore"@it ; "Qualità dell'oscillatore"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 1.0 ; lv2:default 1.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 3.0 lv2:maximum 3.0
@ -352,7 +352,7 @@ midnam:update a lv2:Feature .
lv2:symbol "active_voices" ; lv2:symbol "active_voices" ;
lv2:name "Active voices", lv2:name "Active voices",
"Voix utilisées"@fr ; "Voix utilisées"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -363,7 +363,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_curves" ; lv2:symbol "num_curves" ;
lv2:name "Number of curves", lv2:name "Number of curves",
"Nombre de courbes"@fr ; "Nombre de courbes"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -374,7 +374,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_masters" ; lv2:symbol "num_masters" ;
lv2:name "Number of masters", lv2:name "Number of masters",
"Nombre de maîtres"@fr ; "Nombre de maîtres"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -385,7 +385,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_groups" ; lv2:symbol "num_groups" ;
lv2:name "Number of groups", lv2:name "Number of groups",
"Nombre de groupes"@fr ; "Nombre de groupes"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -396,7 +396,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_regions" ; lv2:symbol "num_regions" ;
lv2:name "Number of regions", lv2:name "Number of regions",
"Nombre de régions"@fr ; "Nombre de régions"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -407,7 +407,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_samples" ; lv2:symbol "num_samples" ;
lv2:name "Number of samples", lv2:name "Number of samples",
"Nombre d'échantillons"@fr ; "Nombre d'échantillons"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -418,7 +418,7 @@ midnam:update a lv2:Feature .
lv2:symbol "freewheeling_sample_quality" ; lv2:symbol "freewheeling_sample_quality" ;
lv2:name "Freewheeling Sample quality", lv2:name "Freewheeling Sample quality",
"Qualité des échantillons en roue libre"@fr; "Qualité des échantillons en roue libre"@fr;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 10.0 ; lv2:default 10.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 10.0 lv2:maximum 10.0
@ -428,7 +428,7 @@ midnam:update a lv2:Feature .
lv2:symbol "freewheeling_oscillator_quality" ; lv2:symbol "freewheeling_oscillator_quality" ;
lv2:name "Freewheeling Oscillator quality", lv2:name "Freewheeling Oscillator quality",
"Qualité des oscillateurs en roue libre"@fr ; "Qualité des oscillateurs en roue libre"@fr ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 3.0 ; lv2:default 3.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 3.0 lv2:maximum 3.0
@ -437,7 +437,7 @@ midnam:update a lv2:Feature .
lv2:index 22 ; lv2:index 22 ;
lv2:symbol "sustain_cancels_release" ; lv2:symbol "sustain_cancels_release" ;
lv2:name "Sustain cancels release"; lv2:name "Sustain cancels release";
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty lv2:toggled ; lv2:portProperty lv2:toggled ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -446,22 +446,22 @@ midnam:update a lv2:Feature .
rdfs:seeAlso <controllers.ttl> . rdfs:seeAlso <controllers.ttl> .
<@LV2PLUGIN_URI@-multi> <@LV2_PLUGIN_URI@-multi>
a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ; a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ;
doap:name "@LV2PLUGIN_NAME@-multi" ; doap:name "@LV2_PLUGIN_NAME@-multi" ;
doap:license <https://spdx.org/licenses/@LV2PLUGIN_SPDX_LICENSE_ID@> ; doap:license <https://spdx.org/licenses/@LV2_PLUGIN_SPDX_LICENSE_ID@> ;
doap:maintainer [ doap:maintainer [
foaf:name "@LV2PLUGIN_AUTHOR@" ; foaf:name "@LV2_PLUGIN_AUTHOR@" ;
foaf:homepage <@LV2PLUGIN_URI@> ; foaf:homepage <@LV2_PLUGIN_URI@> ;
foaf:mbox <mailto:@LV2PLUGIN_EMAIL@> ; foaf:mbox <mailto:@LV2_PLUGIN_EMAIL@> ;
] ; ] ;
rdfs:comment "@LV2PLUGIN_COMMENT@", rdfs:comment "@LV2_PLUGIN_COMMENT@",
"Échantillonneur SFZ"@fr , "Échantillonneur SFZ"@fr ,
"Campionatore SFZ"@it ; "Campionatore SFZ"@it ;
lv2:minorVersion @LV2PLUGIN_VERSION_MINOR@ ; lv2:minorVersion @LV2_PLUGIN_VERSION_MINOR@ ;
lv2:microVersion @LV2PLUGIN_VERSION_MICRO@ ; lv2:microVersion @LV2_PLUGIN_VERSION_MICRO@ ;
lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ; lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ;
lv2:optionalFeature lv2:hardRTCapable, opts:options, state:mapPath, state:freePath ; lv2:optionalFeature lv2:hardRTCapable, opts:options, state:mapPath, state:freePath ;
@ -473,18 +473,18 @@ midnam:update a lv2:Feature .
opts:supportedOption param:sampleRate ; opts:supportedOption param:sampleRate ;
opts:supportedOption bufsize:maxBlockLength, bufsize:nominalBlockLength ; opts:supportedOption bufsize:maxBlockLength, bufsize:nominalBlockLength ;
@LV2PLUGIN_IF_ENABLE_UI@ui:ui <@LV2PLUGIN_URI@#ui> ; @LV2_PLUGIN_IF_ENABLE_UI@ui:ui <@LV2_PLUGIN_URI@#ui> ;
patch:writable <@LV2PLUGIN_URI@:sfzfile> , patch:writable <@LV2_PLUGIN_URI@:sfzfile> ,
<@LV2PLUGIN_URI@:tuningfile> ; <@LV2_PLUGIN_URI@:tuningfile> ;
patch:readable <@LV2PLUGIN_URI@:description> ; patch:readable <@LV2_PLUGIN_URI@:description> ;
pg:mainOutput <@LV2PLUGIN_URI@#stereo_output> ; pg:mainOutput <@LV2_PLUGIN_URI@#stereo_output> ;
lv2:port [ lv2:port [
a lv2:InputPort, atom:AtomPort ; a lv2:InputPort, atom:AtomPort ;
atom:bufferType atom:Sequence ; atom:bufferType atom:Sequence ;
atom:supports patch:Message, midi:MidiEvent, time:Position, <@LV2PLUGIN_URI@:OSCBlob>, <@LV2PLUGIN_URI@:Notify> ; atom:supports patch:Message, midi:MidiEvent, time:Position, <@LV2_PLUGIN_URI@:OSCBlob>, <@LV2_PLUGIN_URI@:Notify> ;
lv2:designation lv2:control ; lv2:designation lv2:control ;
lv2:index 0 ; lv2:index 0 ;
lv2:symbol "control" ; lv2:symbol "control" ;
@ -494,7 +494,7 @@ midnam:update a lv2:Feature .
] , [ ] , [
a lv2:OutputPort, atom:AtomPort ; a lv2:OutputPort, atom:AtomPort ;
atom:bufferType atom:Sequence ; atom:bufferType atom:Sequence ;
atom:supports patch:Message, <@LV2PLUGIN_URI@:OSCBlob> ; atom:supports patch:Message, <@LV2_PLUGIN_URI@:OSCBlob> ;
lv2:designation lv2:control ; lv2:designation lv2:control ;
lv2:index 1 ; lv2:index 1 ;
lv2:symbol "automate" ; lv2:symbol "automate" ;
@ -629,7 +629,7 @@ midnam:update a lv2:Feature .
lv2:name "Polyphony", lv2:name "Polyphony",
"Polyphonie"@fr , "Polyphonie"@fr ,
"Polifonia"@it ; "Polifonia"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -674,7 +674,7 @@ midnam:update a lv2:Feature .
lv2:name "Oversampling factor", lv2:name "Oversampling factor",
"Facteur de suréchantillonnage"@fr , "Facteur de suréchantillonnage"@fr ,
"Fattore Sovracampionamento"@it ; "Fattore Sovracampionamento"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -709,7 +709,7 @@ midnam:update a lv2:Feature .
lv2:name "Preload size", lv2:name "Preload size",
"Taille préchargée"@fr , "Taille préchargée"@fr ,
"Grandezza Precaricamento"@it ; "Grandezza Precaricamento"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty pprop:notAutomatic ; lv2:portProperty pprop:notAutomatic ;
lv2:portProperty pprop:expensive ; lv2:portProperty pprop:expensive ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
@ -764,7 +764,7 @@ midnam:update a lv2:Feature .
lv2:name "Scala root key", lv2:name "Scala root key",
"Tonalité de base Scala"@fr , "Tonalité de base Scala"@fr ,
"Tonalità di base Scala"@it ; "Tonalità di base Scala"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 60 ; lv2:default 60 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -777,7 +777,7 @@ midnam:update a lv2:Feature .
lv2:name "Tuning frequency", lv2:name "Tuning frequency",
"Fréquence d'accordage"@fr , "Fréquence d'accordage"@fr ,
"Frequenza di accordatura"@it ; "Frequenza di accordatura"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:default 440.0 ; lv2:default 440.0 ;
lv2:minimum 300.0 ; lv2:minimum 300.0 ;
lv2:maximum 500.0 ; lv2:maximum 500.0 ;
@ -789,7 +789,7 @@ midnam:update a lv2:Feature .
lv2:name "Stretched tuning", lv2:name "Stretched tuning",
"Accordage étiré"@fr , "Accordage étiré"@fr ,
"Tensione di accordatura"@it ; "Tensione di accordatura"@it ;
pg:group <@LV2PLUGIN_URI@#tuning> ; pg:group <@LV2_PLUGIN_URI@#tuning> ;
lv2:default 0.0 ; lv2:default 0.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 1.0 ; lv2:maximum 1.0 ;
@ -801,7 +801,7 @@ midnam:update a lv2:Feature .
lv2:name "Sample quality", lv2:name "Sample quality",
"Qualité des échantillons"@fr , "Qualité des échantillons"@fr ,
"Qualità del campione"@it ; "Qualità del campione"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 2.0 ; lv2:default 2.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 10.0 lv2:maximum 10.0
@ -812,7 +812,7 @@ midnam:update a lv2:Feature .
lv2:name "Oscillator quality", lv2:name "Oscillator quality",
"Qualité des oscillateurs"@fr , "Qualité des oscillateurs"@fr ,
"Qualità dell'oscillatore"@it ; "Qualità dell'oscillatore"@it ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 1.0 ; lv2:default 1.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 3.0 lv2:maximum 3.0
@ -822,7 +822,7 @@ midnam:update a lv2:Feature .
lv2:symbol "active_voices" ; lv2:symbol "active_voices" ;
lv2:name "Active voices", lv2:name "Active voices",
"Voix utilisées"@fr ; "Voix utilisées"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -833,7 +833,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_curves" ; lv2:symbol "num_curves" ;
lv2:name "Number of curves", lv2:name "Number of curves",
"Nombre de courbes"@fr ; "Nombre de courbes"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -844,7 +844,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_masters" ; lv2:symbol "num_masters" ;
lv2:name "Number of masters", lv2:name "Number of masters",
"Nombre de maîtres"@fr ; "Nombre de maîtres"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -855,7 +855,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_groups" ; lv2:symbol "num_groups" ;
lv2:name "Number of groups", lv2:name "Number of groups",
"Nombre de groupes"@fr ; "Nombre de groupes"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -866,7 +866,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_regions" ; lv2:symbol "num_regions" ;
lv2:name "Number of regions", lv2:name "Number of regions",
"Nombre de régions"@fr ; "Nombre de régions"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -877,7 +877,7 @@ midnam:update a lv2:Feature .
lv2:symbol "num_samples" ; lv2:symbol "num_samples" ;
lv2:name "Number of samples", lv2:name "Number of samples",
"Nombre d'échantillons"@fr ; "Nombre d'échantillons"@fr ;
pg:group <@LV2PLUGIN_URI@#status> ; pg:group <@LV2_PLUGIN_URI@#status> ;
lv2:portProperty lv2:integer ; lv2:portProperty lv2:integer ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;
@ -888,7 +888,7 @@ midnam:update a lv2:Feature .
lv2:symbol "freewheeling_sample_quality" ; lv2:symbol "freewheeling_sample_quality" ;
lv2:name "Freewheeling Sample quality", lv2:name "Freewheeling Sample quality",
"Qualité des échantillons en roue libre"@fr; "Qualité des échantillons en roue libre"@fr;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 10.0 ; lv2:default 10.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 10.0 lv2:maximum 10.0
@ -898,7 +898,7 @@ midnam:update a lv2:Feature .
lv2:symbol "freewheeling_oscillator_quality" ; lv2:symbol "freewheeling_oscillator_quality" ;
lv2:name "Freewheeling Oscillator quality", lv2:name "Freewheeling Oscillator quality",
"Qualité des oscillateurs en roue libre"@fr ; "Qualité des oscillateurs en roue libre"@fr ;
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:default 3.0 ; lv2:default 3.0 ;
lv2:minimum 0.0 ; lv2:minimum 0.0 ;
lv2:maximum 3.0 lv2:maximum 3.0
@ -907,7 +907,7 @@ midnam:update a lv2:Feature .
lv2:index 36 ; lv2:index 36 ;
lv2:symbol "sustain_cancels_release" ; lv2:symbol "sustain_cancels_release" ;
lv2:name "Sustain cancels release"; lv2:name "Sustain cancels release";
pg:group <@LV2PLUGIN_URI@#config> ; pg:group <@LV2_PLUGIN_URI@#config> ;
lv2:portProperty lv2:toggled ; lv2:portProperty lv2:toggled ;
lv2:default 0 ; lv2:default 0 ;
lv2:minimum 0 ; lv2:minimum 0 ;

View file

@ -147,7 +147,7 @@ bool sfizz_lv2_fetch_description(
*/ */
int sfizz_lv2_get_num_outputs(sfizz_plugin_t *self); int sfizz_lv2_get_num_outputs(sfizz_plugin_t *self);
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
void sfizz_lv2_set_ui_active(sfizz_plugin_t *self, bool ui_active); void sfizz_lv2_set_ui_active(sfizz_plugin_t *self, bool ui_active);
#endif #endif

View file

@ -39,7 +39,7 @@ int sfizz_lv2_get_num_outputs(sfizz_plugin_t *self)
return 2; return 2;
} }
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
void sfizz_lv2_set_ui_active(sfizz_plugin_t *self, bool ui_active) void sfizz_lv2_set_ui_active(sfizz_plugin_t *self, bool ui_active)
{ {
self->ui_active = ui_active; self->ui_active = ui_active;

View file

@ -7,7 +7,7 @@
#pragma once #pragma once
#include "sfizz_lv2.h" #include "sfizz_lv2.h"
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
#include "plugin/RMSFollower.h" #include "plugin/RMSFollower.h"
#endif #endif
#include <spin_mutex.h> #include <spin_mutex.h>
@ -155,7 +155,7 @@ struct sfizz_plugin_t
// OSC // OSC
uint8_t osc_temp[OSC_TEMP_SIZE] {}; uint8_t osc_temp[OSC_TEMP_SIZE] {};
#if defined(SFIZZ_LV2_UI) #if defined(PLUGIN_LV2_UI)
// UI // UI
volatile bool ui_active = false; volatile bool ui_active = false;
RMSFollower rms_follower; RMSFollower rms_follower;

View file

@ -805,7 +805,7 @@ void sfizz_ui_t::uiSendValue(EditId id, const EditValue& v)
default: default:
if (editIdIsCC(id)) { if (editIdIsCC(id)) {
int cc = ccForEditId(id); int cc = ccForEditId(id);
#if defined(SFIZZ_LV2_PSA) #if defined(PLUGIN_LV2_PSA)
if (cc >= 0 && cc < 128) { if (cc >= 0 && cc < 128) {
// Send MIDI message // Send MIDI message
uint8_t msg[3]; uint8_t msg[3];

View file

@ -3,7 +3,7 @@
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . @prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> . @prefix urid: <http://lv2plug.in/ns/ext/urid#> .
<@LV2PLUGIN_URI@#ui> <@LV2_PLUGIN_URI@#ui>
lv2:extensionData ui:idleInterface ; lv2:extensionData ui:idleInterface ;
lv2:extensionData ui:showInterface ; lv2:extensionData ui:showInterface ;
lv2:requiredFeature ui:idleInterface ; lv2:requiredFeature ui:idleInterface ;

View file

@ -25,7 +25,7 @@ endfunction()
add_pd_external(sfizz_puredata "sfizz_puredata.c") add_pd_external(sfizz_puredata "sfizz_puredata.c")
target_compile_definitions(sfizz_puredata PRIVATE target_compile_definitions(sfizz_puredata PRIVATE
"MIDI_CC_MAX=${MIDI_CC_MAX}" "MIDI_CC_COUNT=${MIDI_CC_COUNT}"
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"") "SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
target_link_libraries(sfizz_puredata PRIVATE sfizz::import sfizz::sfizz) target_link_libraries(sfizz_puredata PRIVATE sfizz::import sfizz::sfizz)
@ -48,10 +48,10 @@ copy_puredata_resources(sfizz_puredata
# Installation # Installation
if(NOT MSVC) if(NOT MSVC)
install(DIRECTORY "${PUREDATA_BINARY_DIR}" DESTINATION "${PDPLUGIN_INSTALL_DIR}" install(DIRECTORY "${PUREDATA_BINARY_DIR}" DESTINATION "${PD_PLUGIN_INSTALL_DIR}"
COMPONENT "puredata" COMPONENT "puredata"
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
bundle_dylibs(puredata bundle_dylibs(puredata
"${PDPLUGIN_INSTALL_DIR}/sfizz/sfizz${PUREDATA_SUFFIX}" "${PD_PLUGIN_INSTALL_DIR}/sfizz/sfizz${PUREDATA_SUFFIX}"
COMPONENT "puredata") COMPONENT "puredata")
endif() endif()

View file

@ -238,7 +238,7 @@ static void sfizz_tilde_reload(t_sfizz_tilde* self, t_float value)
static void sfizz_tilde_hdcc(t_sfizz_tilde* self, t_float f1, t_float f2) static void sfizz_tilde_hdcc(t_sfizz_tilde* self, t_float f1, t_float f2)
{ {
int cc = (int)f1; int cc = (int)f1;
if (cc < 0 || cc >= MIDI_CC_MAX) if (cc < 0 || cc >= MIDI_CC_COUNT)
return; return;
sfizz_automate_hdcc(self->synth, 0, (int)cc, clamp01(f2)); sfizz_automate_hdcc(self->synth, 0, (int)cc, clamp01(f2));
} }

View file

@ -67,109 +67,109 @@ add_library(sfizz::vst3-core ALIAS sfizz-vst3-core)
# --- VST3 plugin --- # # --- VST3 plugin --- #
if(SFIZZ_VST) if(PLUGIN_VST3)
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3") set(VST3_PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3") set(VST3_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
add_library(${VSTPLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp") add_library(${VST3_PLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
if(WIN32) if(WIN32)
target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def) target_sources(${VST3_PLUGIN_PRJ_NAME} PRIVATE vst3.def)
endif() endif()
target_include_directories(${VSTPLUGIN_PRJ_NAME} target_include_directories(${VST3_PLUGIN_PRJ_NAME}
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
target_link_libraries(${VSTPLUGIN_PRJ_NAME} target_link_libraries(${VST3_PLUGIN_PRJ_NAME}
PRIVATE sfizz-vst3-core) PRIVATE sfizz-vst3-core)
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
OUTPUT_NAME "${PROJECT_NAME}" OUTPUT_NAME "${PROJECT_NAME}"
PREFIX "") PREFIX "")
plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME}) plugin_add_vst3sdk(${VST3_PLUGIN_PRJ_NAME})
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME}) plugin_add_vstgui(${VST3_PLUGIN_PRJ_NAME})
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE target_link_libraries(${VST3_PLUGIN_PRJ_NAME} PRIVATE
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version") "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
endif() endif()
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${VST3_PLUGIN_PRJ_NAME})
if(MINGW) if(MINGW)
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif() endif()
# Create the bundle(see "VST 3 Locations / Format") # Create the bundle(see "VST 3 Locations / Format")
execute_process( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
${VSTPLUGIN_PRJ_NAME} ${VST3_PLUGIN_PRJ_NAME}
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources") "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Resources")
if(WIN32) if(WIN32)
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
SUFFIX ".vst3" SUFFIX ".vst3"
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-win/$<0:>") LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-win/$<0:>")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/win/Plugin.ico" file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/win/Plugin.ico"
"${CMAKE_CURRENT_SOURCE_DIR}/win/desktop.ini" "${CMAKE_CURRENT_SOURCE_DIR}/win/desktop.ini"
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}") DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}")
elseif(APPLE) elseif(APPLE)
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
SUFFIX "" SUFFIX ""
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>") LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo" file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo"
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents") DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents")
set(SFIZZ_VST3_BUNDLE_EXECUTABLE "${PROJECT_NAME}") set(SFIZZ_VST3_BUNDLE_EXECUTABLE "${PROJECT_NAME}")
set(SFIZZ_VST3_BUNDLE_VERSION "${PROJECT_VERSION}") set(SFIZZ_VST3_BUNDLE_VERSION "${PROJECT_VERSION}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.vst3.plist" configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.vst3.plist"
"${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY) "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY)
else() else()
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>") LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>")
endif() endif()
# Copy the license # Copy the license
if(APPLE) if(APPLE)
# on macOS, files are not permitted at the bundle root, during code signing # on macOS, files are not permitted at the bundle root, during code signing
file(COPY "gpl-3.0.txt" file(COPY "gpl-3.0.txt"
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License") DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
else() else()
file(COPY "gpl-3.0.txt" file(COPY "gpl-3.0.txt"
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}") DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}")
endif() endif()
# To help debugging the link only # To help debugging the link only
if(FALSE) if(FALSE)
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined") target_link_options(${VST3_PLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
endif() endif()
# Installation # Installation
if(NOT MSVC) if(NOT MSVC)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}" install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}"
DESTINATION "${VSTPLUGIN_INSTALL_DIR}" DESTINATION "${VST3_PLUGIN_INSTALL_DIR}"
COMPONENT "vst" COMPONENT "vst"
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
bundle_dylibs(vst bundle_dylibs(vst
"${VSTPLUGIN_INSTALL_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz" "${VST3_PLUGIN_INSTALL_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
COMPONENT "vst") COMPONENT "vst")
endif() endif()
endif() endif()
# --- Audio Unit wrapper --- # # --- Audio Unit wrapper --- #
if(SFIZZ_AU AND NOT APPLE) if(PLUGIN_AU AND NOT APPLE)
message(WARNING "Audio Unit is available only for macOS builds") message(WARNING "Audio Unit is available only for macOS builds")
elseif(SFIZZ_AU) elseif(PLUGIN_AU)
set(AUPLUGIN_PRJ_NAME "${PROJECT_NAME}_au") set(AU_PLUGIN_PRJ_NAME "${PROJECT_NAME}_au")
set(AUPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component") set(AU_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
add_library(${AUPLUGIN_PRJ_NAME} MODULE add_library(${AU_PLUGIN_PRJ_NAME} MODULE
"VstPluginFactory.cpp" "VstPluginFactory.cpp"
"${AUWRAPPER_BASEDIR}/aucarbonview.mm" "${AUWRAPPER_BASEDIR}/aucarbonview.mm"
"${AUWRAPPER_BASEDIR}/aucocoaview.mm" "${AUWRAPPER_BASEDIR}/aucocoaview.mm"
"${AUWRAPPER_BASEDIR}/ausdk.mm" "${AUWRAPPER_BASEDIR}/ausdk.mm"
"${AUWRAPPER_BASEDIR}/auwrapper.mm" "${AUWRAPPER_BASEDIR}/auwrapper.mm"
"${AUWRAPPER_BASEDIR}/NSDataIBStream.mm") "${AUWRAPPER_BASEDIR}/NSDataIBStream.mm")
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE target_include_directories(${AU_PLUGIN_PRJ_NAME} PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
"${VST3SDK_BASEDIR}") "${VST3SDK_BASEDIR}")
target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE target_link_libraries(${AU_PLUGIN_PRJ_NAME} PRIVATE
"${APPLE_FOUNDATION_LIBRARY}" "${APPLE_FOUNDATION_LIBRARY}"
"${APPLE_COCOA_LIBRARY}" "${APPLE_COCOA_LIBRARY}"
"${APPLE_CARBON_LIBRARY}" "${APPLE_CARBON_LIBRARY}"
@ -178,14 +178,14 @@ elseif(SFIZZ_AU)
"${APPLE_COREAUDIO_LIBRARY}" "${APPLE_COREAUDIO_LIBRARY}"
"${APPLE_COREMIDI_LIBRARY}") "${APPLE_COREMIDI_LIBRARY}")
target_link_libraries(${AUPLUGIN_PRJ_NAME} target_link_libraries(${AU_PLUGIN_PRJ_NAME}
PRIVATE sfizz-vst3-core) PRIVATE sfizz-vst3-core)
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
OUTPUT_NAME "${PROJECT_NAME}" OUTPUT_NAME "${PROJECT_NAME}"
PREFIX "") PREFIX "")
plugin_add_vst3sdk(${AUPLUGIN_PRJ_NAME}) plugin_add_vst3sdk(${AU_PLUGIN_PRJ_NAME})
plugin_add_vstgui(${AUPLUGIN_PRJ_NAME}) plugin_add_vstgui(${AU_PLUGIN_PRJ_NAME})
# Get Core Audio utility classes if missing # Get Core Audio utility classes if missing
set(CA_UTILITY_BASEDIR set(CA_UTILITY_BASEDIR
@ -215,7 +215,7 @@ elseif(SFIZZ_AU)
endif() endif()
# Add Core Audio utility classes # Add Core Audio utility classes
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE target_include_directories(${AU_PLUGIN_PRJ_NAME} PRIVATE
"${CA_UTILITY_BASEDIR}/CoreAudio" "${CA_UTILITY_BASEDIR}/CoreAudio"
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits"
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase"
@ -223,29 +223,29 @@ elseif(SFIZZ_AU)
"${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility") "${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility")
# Add VST hosting classes # Add VST hosting classes
target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting) target_link_libraries(${AU_PLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting)
# Add generated source # Add generated source
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include") target_include_directories(${AU_PLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include")
string(TIMESTAMP SFIZZ_AU_CLASS_PREFIX_NUMBER "%s" UTC) string(TIMESTAMP SFIZZ_AU_CLASS_PREFIX_NUMBER "%s" UTC)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h" file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
"#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_") "#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_")
sfizz_enable_lto_if_needed(${AUPLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${AU_PLUGIN_PRJ_NAME})
# Create the bundle # Create the bundle
execute_process( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
${AUPLUGIN_PRJ_NAME} ${AU_PLUGIN_PRJ_NAME}
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
"${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources") "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/Resources")
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
SUFFIX "" SUFFIX ""
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>") LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/MacOS/$<0:>")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo" file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/mac/PkgInfo"
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents") DESTINATION "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents")
set(SFIZZ_AU_BUNDLE_EXECUTABLE "${PROJECT_NAME}") set(SFIZZ_AU_BUNDLE_EXECUTABLE "${PROJECT_NAME}")
set(SFIZZ_AU_BUNDLE_VERSION "${PROJECT_VERSION}") set(SFIZZ_AU_BUNDLE_VERSION "${PROJECT_VERSION}")
set(SFIZZ_AU_BUNDLE_IDENTIFIER "tools.sfz.sfizz.au") set(SFIZZ_AU_BUNDLE_IDENTIFIER "tools.sfz.sfizz.au")
@ -260,10 +260,10 @@ elseif(SFIZZ_AU)
OUTPUT_VARIABLE SFIZZ_AU_HEXADECIMAL_VERSION OUTPUT_VARIABLE SFIZZ_AU_HEXADECIMAL_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.au.plist" configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.au.plist"
"${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY) "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/Info.plist" @ONLY)
file(COPY "gpl-3.0.txt" file(COPY "gpl-3.0.txt"
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License") DESTINATION "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
# Add the resource fork # Add the resource fork
if(FALSE) if(FALSE)
@ -272,7 +272,7 @@ elseif(SFIZZ_AU)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/audiounitconfig.h.in" configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/audiounitconfig.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/include/audiounitconfig.h" @ONLY) "${CMAKE_CURRENT_BINARY_DIR}/include/audiounitconfig.h" @ONLY)
add_custom_command(TARGET ${AUPLUGIN_PRJ_NAME} POST_BUILD COMMAND add_custom_command(TARGET ${AU_PLUGIN_PRJ_NAME} POST_BUILD COMMAND
"${OSX_REZ_COMMAND}" "${OSX_REZ_COMMAND}"
"-d" "SystemSevenOrLater=1" "-d" "SystemSevenOrLater=1"
"-script" "Roman" "-script" "Roman"
@ -284,28 +284,28 @@ elseif(SFIZZ_AU)
"-I" "/System/Library/Frameworks/AudioUnit.framework/Versions/A/Headers/" "-I" "/System/Library/Frameworks/AudioUnit.framework/Versions/A/Headers/"
"-I" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase" "-I" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase"
"-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h "-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h
"-o" "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc" "-o" "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc"
"-useDF" "-useDF"
"${AUWRAPPER_BASEDIR}/auresource.r") "${AUWRAPPER_BASEDIR}/auresource.r")
endif() endif()
# Installation # Installation
if(AUPLUGIN_INSTALL_DIR) if(AU_PLUGIN_INSTALL_DIR)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}" install(DIRECTORY "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}"
DESTINATION "${AUPLUGIN_INSTALL_DIR}" DESTINATION "${AU_PLUGIN_INSTALL_DIR}"
COMPONENT "au" COMPONENT "au"
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
bundle_dylibs(au bundle_dylibs(au
"${AUPLUGIN_INSTALL_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz" "${AU_PLUGIN_INSTALL_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/MacOS/sfizz"
COMPONENT "au") COMPONENT "au")
endif() endif()
endif() endif()
# --- VST2 wrapper --- # # --- VST2 wrapper --- #
if(SFIZZ_VST2) if(PLUGIN_VST2)
set(VST2PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst2") set(VST2_PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst2")
set(VST2PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst2") set(VST2_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst2")
set(VST2SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/vstsdk2.4") set(VST2SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/vstsdk2.4")
set(VST2WRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK/public.sdk/source/vst/vst2wrapper") set(VST2WRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK/public.sdk/source/vst/vst2wrapper")
@ -314,7 +314,7 @@ if(SFIZZ_VST2)
message(FATAL_ERROR "VST SDK 2.4 is missing. Make it available in the following folder: ${VST2SDK_BASEDIR}") message(FATAL_ERROR "VST SDK 2.4 is missing. Make it available in the following folder: ${VST2SDK_BASEDIR}")
endif() endif()
add_library(${VST2PLUGIN_PRJ_NAME} MODULE add_library(${VST2_PLUGIN_PRJ_NAME} MODULE
"VstPluginFactory.cpp" "VstPluginFactory.cpp"
"Vst2PluginFactory.cpp" "Vst2PluginFactory.cpp"
"Vst2PluginEntry.c" "Vst2PluginEntry.c"
@ -322,54 +322,54 @@ if(SFIZZ_VST2)
"${VST2WRAPPER_BASEDIR}/../basewrapper/basewrapper.cpp" "${VST2WRAPPER_BASEDIR}/../basewrapper/basewrapper.cpp"
"${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffect.cpp" "${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffect.cpp"
"${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffectx.cpp") "${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffectx.cpp")
target_include_directories(${VST2PLUGIN_PRJ_NAME} PRIVATE target_include_directories(${VST2_PLUGIN_PRJ_NAME} PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
"${VST2SDK_BASEDIR}") "${VST2SDK_BASEDIR}")
if(NOT WIN32) if(NOT WIN32)
target_compile_definitions(${VST2PLUGIN_PRJ_NAME} PRIVATE "__cdecl=") target_compile_definitions(${VST2_PLUGIN_PRJ_NAME} PRIVATE "__cdecl=")
endif() endif()
target_link_libraries(${VST2PLUGIN_PRJ_NAME} target_link_libraries(${VST2_PLUGIN_PRJ_NAME}
PRIVATE sfizz-vst3-core) PRIVATE sfizz-vst3-core)
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
OUTPUT_NAME "${PROJECT_NAME}" OUTPUT_NAME "${PROJECT_NAME}"
PREFIX "") PREFIX "")
plugin_add_vst3sdk(${VST2PLUGIN_PRJ_NAME}) plugin_add_vst3sdk(${VST2_PLUGIN_PRJ_NAME})
plugin_add_vstgui(${VST2PLUGIN_PRJ_NAME}) plugin_add_vstgui(${VST2_PLUGIN_PRJ_NAME})
# Add VST hosting classes # Add VST hosting classes
target_link_libraries(${VST2PLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting) target_link_libraries(${VST2_PLUGIN_PRJ_NAME} PRIVATE vst3sdk_hosting)
sfizz_enable_lto_if_needed(${VST2PLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${VST2_PLUGIN_PRJ_NAME})
# Create the bundle # Create the bundle
execute_process( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
${VST2PLUGIN_PRJ_NAME} ${VST2_PLUGIN_PRJ_NAME}
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
"${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Resources") "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Resources")
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Binary/$<0:>") LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Binary/$<0:>")
file(COPY "gpl-3.0.txt" file(COPY "gpl-3.0.txt"
DESTINATION "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}") DESTINATION "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}")
if(MINGW) if(MINGW)
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif() endif()
# Installation # Installation
if(VST2PLUGIN_INSTALL_DIR) if(VST2_PLUGIN_INSTALL_DIR)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}" install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}"
DESTINATION "${VST2PLUGIN_INSTALL_DIR}" DESTINATION "${VST2_PLUGIN_INSTALL_DIR}"
COMPONENT "vst2" COMPONENT "vst2"
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
if(APPLE) if(APPLE)
bundle_dylibs(vst2 bundle_dylibs(vst2
"${VST2PLUGIN_INSTALL_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Binary/sfizz.${CMAKE_SHARED_MODULE_SUFFIX}" "${VST2_PLUGIN_INSTALL_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Binary/sfizz.${CMAKE_SHARED_MODULE_SUFFIX}"
COMPONENT "vst2") COMPONENT "vst2")
endif() endif()
endif() endif()

View file

@ -4,8 +4,8 @@
// license. You should have receive a LICENSE.md file along with the code. // license. You should have receive a LICENSE.md file along with the code.
// If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz // If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
#define VSTPLUGIN_NAME "@VSTPLUGIN_NAME@" #define VST3_PLUGIN_NAME "@VST3_PLUGIN_NAME@"
#define VSTPLUGIN_VENDOR "@VSTPLUGIN_VENDOR@" #define VST3_PLUGIN_VENDOR "@VST3_PLUGIN_VENDOR@"
#define VSTPLUGIN_URL "@VSTPLUGIN_URL@" #define VST3_PLUGIN_URL "@VST3_PLUGIN_URL@"
#define VSTPLUGIN_EMAIL "@VSTPLUGIN_EMAIL@" #define VST3_PLUGIN_EMAIL "@VST3_PLUGIN_EMAIL@"
#define VSTPLUGIN_VERSION "@PROJECT_VERSION@" #define VST3_PLUGIN_VERSION "@PROJECT_VERSION@"

View file

@ -15,37 +15,37 @@ class SfizzVstProcessor;
class SfizzVstProcessorMulti; class SfizzVstProcessorMulti;
class SfizzVstController; class SfizzVstController;
BEGIN_FACTORY_DEF(VSTPLUGIN_VENDOR, BEGIN_FACTORY_DEF(VST3_PLUGIN_VENDOR,
VSTPLUGIN_URL, VST3_PLUGIN_URL,
"mailto:" VSTPLUGIN_EMAIL) "mailto:" VST3_PLUGIN_EMAIL)
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessor_cid), DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessor_cid),
PClassInfo::kManyInstances, PClassInfo::kManyInstances,
kVstAudioEffectClass, kVstAudioEffectClass,
VSTPLUGIN_NAME, VST3_PLUGIN_NAME,
Vst::kDistributable, Vst::kDistributable,
Vst::PlugType::kInstrumentSynth, Vst::PlugType::kInstrumentSynth,
VSTPLUGIN_VERSION, VST3_PLUGIN_VERSION,
kVstVersionString, kVstVersionString,
createInstance<SfizzVstProcessor>) createInstance<SfizzVstProcessor>)
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessorMulti_cid), DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessorMulti_cid),
PClassInfo::kManyInstances, PClassInfo::kManyInstances,
kVstAudioEffectClass, kVstAudioEffectClass,
VSTPLUGIN_NAME "-multi", VST3_PLUGIN_NAME "-multi",
Vst::kDistributable, Vst::kDistributable,
Vst::PlugType::kInstrumentSynth, Vst::PlugType::kInstrumentSynth,
VSTPLUGIN_VERSION, VST3_PLUGIN_VERSION,
kVstVersionString, kVstVersionString,
createInstance<SfizzVstProcessorMulti>) createInstance<SfizzVstProcessorMulti>)
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstController_cid), DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstController_cid),
PClassInfo::kManyInstances, PClassInfo::kManyInstances,
kVstComponentControllerClass, kVstComponentControllerClass,
VSTPLUGIN_NAME, VST3_PLUGIN_NAME,
0, // not used here 0, // not used here
"", // not used here "", // not used here
VSTPLUGIN_VERSION, VST3_PLUGIN_VERSION,
kVstVersionString, kVstVersionString,
createInstance<SfizzVstController>) createInstance<SfizzVstController>)