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:
parent
8fd17c15c0
commit
6953168087
26 changed files with 389 additions and 333 deletions
30
.github/workflows/build.yml
vendored
30
.github/workflows/build.yml
vendored
|
|
@ -70,10 +70,10 @@ jobs:
|
|||
-D SFIZZ_JACK=OFF
|
||||
-D SFIZZ_RENDER=OFF
|
||||
-D SFIZZ_SHARED=OFF
|
||||
-D SFIZZ_LV2=ON
|
||||
-D SFIZZ_LV2_UI=ON
|
||||
-D SFIZZ_PUREDATA=ON
|
||||
-D SFIZZ_VST=ON
|
||||
-D PLUGIN_LV2=ON
|
||||
-D PLUGIN_LV2_UI=ON
|
||||
-D PLUGIN_PUREDATA=ON
|
||||
-D PLUGIN_VST3=ON
|
||||
)
|
||||
cmake "${options[@]}"
|
||||
- name: Build
|
||||
|
|
@ -106,10 +106,10 @@ jobs:
|
|||
-D CMAKE_BUILD_TYPE=${{ env.build_type }}
|
||||
-D CMAKE_CXX_STANDARD=17
|
||||
-D SFIZZ_SHARED=OFF
|
||||
-D SFIZZ_AU=ON
|
||||
-D SFIZZ_LV2=ON
|
||||
-D SFIZZ_LV2_UI=ON
|
||||
-D SFIZZ_VST=ON
|
||||
-D PLUGIN_AU=ON
|
||||
-D PLUGIN_LV2=ON
|
||||
-D PLUGIN_LV2_UI=ON
|
||||
-D PLUGIN_VST3=ON
|
||||
)
|
||||
if [[ ${{ github.ref_type }} == 'branch' ]]; then
|
||||
options=(
|
||||
|
|
@ -182,9 +182,9 @@ jobs:
|
|||
-S "${Env:GITHUB_WORKSPACE}" `
|
||||
-D CMAKE_BUILD_TYPE=${{ env.build_type }} `
|
||||
-D CMAKE_CXX_STANDARD=17 `
|
||||
-D SFIZZ_LV2=ON `
|
||||
-D SFIZZ_PUREDATA=ON `
|
||||
-D SFIZZ_VST=ON `
|
||||
-D PLUGIN_LV2=ON `
|
||||
-D PLUGIN_PUREDATA=ON `
|
||||
-D PLUGIN_VST3=ON `
|
||||
- name: Build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: cmake --build build --config ${{ env.build_type }} --verbose -j 2
|
||||
|
|
@ -301,8 +301,8 @@ jobs:
|
|||
-D ENABLE_LTO=OFF
|
||||
-D SFIZZ_STATIC_DEPENDENCIES=ON
|
||||
-D SFIZZ_JACK=OFF
|
||||
-D SFIZZ_PUREDATA=ON
|
||||
-D SFIZZ_VST=ON
|
||||
-D PLUGIN_PUREDATA=ON
|
||||
-D PLUGIN_VST3=ON
|
||||
)
|
||||
${{ matrix.platform }}-w64-mingw32-cmake "${options[@]}"
|
||||
- name: Build
|
||||
|
|
@ -353,8 +353,8 @@ jobs:
|
|||
-D PROJECT_SYSTEM_PROCESSOR=armv7-a \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D SFIZZ_JACK=OFF \
|
||||
-D SFIZZ_VST=OFF \
|
||||
-D SFIZZ_LV2_UI=OFF
|
||||
-D PLUGIN_VST3=OFF \
|
||||
-D PLUGIN_LV2_UI=OFF
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{ runner.workspace }}
|
||||
|
|
|
|||
|
|
@ -6,13 +6,29 @@ else()
|
|||
# The current upstream one needs a different configuration.
|
||||
# Minimum required to use SFIZZ_USE_SYSTEM_ABSEIL is 3.11,
|
||||
# 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()
|
||||
|
||||
project (sfizz VERSION 1.2.2 LANGUAGES CXX C)
|
||||
set (PROJECT_DESCRIPTION
|
||||
"SFZ based sampler, providing AU, LV2, PureData and VST plugins."
|
||||
# The project was splitted in 2 repositories:
|
||||
# - `sfizz` for the library, which represents the main repository reference
|
||||
# - `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
|
||||
set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/library/cmake;"
|
||||
|
|
@ -21,16 +37,21 @@ set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};"
|
|||
include(BuildType)
|
||||
include(OptionEx)
|
||||
|
||||
option_ex(SFIZZ_AU "Enable AU plug-in build" APPLE)
|
||||
option_ex(SFIZZ_LV2 "Enable LV2 plug-in build" ON)
|
||||
option_ex(SFIZZ_LV2_UI "Enable LV2 plug-in user interface" ON)
|
||||
option_ex(SFIZZ_PUREDATA "Enable Puredata plug-in build" OFF)
|
||||
option_ex(PLUGIN_AU "Enable AU plug-in build" APPLE)
|
||||
option_ex(PLUGIN_LV2 "Enable LV2 plug-in build" ON)
|
||||
option_ex(PLUGIN_LV2_UI "Enable LV2 plug-in user interface" ON)
|
||||
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_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
|
||||
if(WIN32)
|
||||
|
|
@ -50,7 +71,7 @@ if(WIN32)
|
|||
${PROJECT_BINARY_DIR}/innosetup.iss @ONLY)
|
||||
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)
|
||||
include(PluginsUninstall)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
# Requires the external program "dylibbundler"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,27 @@
|
|||
# This option is for MIDI CC support in absence of host midi:binding support
|
||||
option(SFIZZ_LV2_PSA "Enable plugin-side MIDI automations" ON)
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
# Configuration for this plugin
|
||||
# TODO: generate version from git
|
||||
set(LV2PLUGIN_VERSION_MINOR 10)
|
||||
set(LV2PLUGIN_VERSION_MICRO 3)
|
||||
set(LV2PLUGIN_NAME "sfizz")
|
||||
set(LV2PLUGIN_COMMENT "SFZ sampler")
|
||||
set(LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
|
||||
set(LV2PLUGIN_REPOSITORY SFIZZ_REPOSITORY)
|
||||
set(LV2PLUGIN_AUTHOR "SFZTools")
|
||||
set(LV2PLUGIN_EMAIL "paul@ferrand.cc")
|
||||
if(SFIZZ_USE_VCPKG)
|
||||
set(LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
|
||||
else()
|
||||
set(LV2PLUGIN_SPDX_LICENSE_ID "ISC")
|
||||
# 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
|
||||
|
||||
# This option is for MIDI CC support in absence of host midi:binding support
|
||||
option(PLUGIN_LV2_PSA "Enable plugin-side MIDI automations" ON)
|
||||
|
||||
set(LV2_PLUGIN_NAME "${PROJECT_NAME}")
|
||||
set(LV2_PLUGIN_COMMENT "${PROJECT_DESCRIPTION}")
|
||||
set(LV2_PLUGIN_URI "${PROJECT_HOMEPAGE_URL}")
|
||||
set(LV2_PLUGIN_REPOSITORY "${PROJECT_REPOSITORY}")
|
||||
set(LV2_PLUGIN_AUTHOR "${PROJECT_AUTHOR}")
|
||||
set(LV2_PLUGIN_EMAIL "${PROJECT_EMAIL}")
|
||||
|
||||
if(NOT LV2_PLUGIN_SPDX_LICENSE_ID)
|
||||
set(LV2_PLUGIN_SPDX_LICENSE_ID "ISC") # default license
|
||||
endif()
|
||||
|
||||
if(SFIZZ_LV2_UI)
|
||||
set(LV2PLUGIN_IF_ENABLE_UI "")
|
||||
if(PLUGIN_LV2_UI)
|
||||
set(LV2_PLUGIN_IF_ENABLE_UI "")
|
||||
else()
|
||||
set(LV2PLUGIN_IF_ENABLE_UI "#")
|
||||
set(LV2_PLUGIN_IF_ENABLE_UI "#")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
|
@ -34,43 +35,43 @@ else()
|
|||
endif()
|
||||
|
||||
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]")
|
||||
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]")
|
||||
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]")
|
||||
endif()
|
||||
|
||||
include(StringUtility)
|
||||
|
||||
function(sfizz_lv2_generate_controllers_ttl FILE)
|
||||
file(WRITE "${FILE}" "# LV2 parameters for SFZ controllers
|
||||
function(generate_lv2_controllers_ttl FILE)
|
||||
file(WRITE "${FILE}" "# LV2 parameters for MIDI CC controllers
|
||||
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
|
||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
||||
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
|
||||
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
|
||||
@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}")
|
||||
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
|
||||
endif()
|
||||
|
||||
string_left_pad(_i "${_i}" 3 0)
|
||||
file(APPEND "${FILE}" "
|
||||
sfizz:cc${_i}
|
||||
${PROJECT_NAME}:cc${_i}
|
||||
a lv2:Parameter ;
|
||||
rdfs:label \"Controller ${_i}\" ;
|
||||
rdfs:range atom:Float ;
|
||||
lv2:minimum 0.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 _digit2 "${_i}&15")
|
||||
string(SUBSTRING "0123456789ABCDEF" "${_digit1}" 1 _digit1)
|
||||
|
|
@ -85,22 +86,22 @@ sfizz:cc${_i}
|
|||
endforeach()
|
||||
|
||||
file(APPEND "${FILE}" "
|
||||
<${LV2PLUGIN_URI}>
|
||||
<${LV2_PLUGIN_URI}>
|
||||
a lv2:Plugin ;
|
||||
")
|
||||
|
||||
file(APPEND "${FILE}" " patch:readable")
|
||||
if(NOT SFIZZ_LV2_PSA)
|
||||
file(APPEND "${FILE}" " sfizz:cc000")
|
||||
if(NOT PLUGIN_LV2_PSA)
|
||||
file(APPEND "${FILE}" " ${PROJECT_NAME}:cc000")
|
||||
foreach(_i RANGE 1 "${_j}")
|
||||
string_left_pad(_i "${_i}" 3 0)
|
||||
file(APPEND "${FILE}" ", sfizz:cc${_i}")
|
||||
file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
|
||||
endforeach()
|
||||
else()
|
||||
file(APPEND "${FILE}" " sfizz:cc128")
|
||||
file(APPEND "${FILE}" " ${PROJECT_NAME}:cc128")
|
||||
foreach(_i RANGE 129 "${_j}")
|
||||
string_left_pad(_i "${_i}" 3 0)
|
||||
file(APPEND "${FILE}" ", sfizz:cc${_i}")
|
||||
file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
|
|
@ -108,17 +109,17 @@ sfizz:cc${_i}
|
|||
")
|
||||
|
||||
file(APPEND "${FILE}" " patch:writable")
|
||||
if(NOT SFIZZ_LV2_PSA)
|
||||
file(APPEND "${FILE}" " sfizz:cc000")
|
||||
if(NOT PLUGIN_LV2_PSA)
|
||||
file(APPEND "${FILE}" " ${PROJECT_NAME}:cc000")
|
||||
foreach(_i RANGE 1 "${_j}")
|
||||
string_left_pad(_i "${_i}" 3 0)
|
||||
file(APPEND "${FILE}" ", sfizz:cc${_i}")
|
||||
file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
|
||||
endforeach()
|
||||
else()
|
||||
file(APPEND "${FILE}" " sfizz:cc128")
|
||||
file(APPEND "${FILE}" " ${PROJECT_NAME}:cc128")
|
||||
foreach(_i RANGE 129 "${_j}")
|
||||
string_left_pad(_i "${_i}" 3 0)
|
||||
file(APPEND "${FILE}" ", sfizz:cc${_i}")
|
||||
file(APPEND "${FILE}" ", ${PROJECT_NAME}:cc${_i}")
|
||||
endforeach()
|
||||
endif()
|
||||
file(APPEND "${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")
|
||||
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/MakeUninstall.cmake.in"
|
||||
|
|
@ -7,13 +13,13 @@ if(NOT TARGET uninstall)
|
|||
add_custom_target(uninstall
|
||||
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
|
||||
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
|
||||
COMMAND rm -rv "${LV2_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
|
||||
endif()
|
||||
|
||||
if(SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
|
||||
if(PLUGIN_VST3 AND VST3_PLUGIN_INSTALL_DIR)
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
set(PD_IMP_DEF "${PROJECT_SOURCE_DIR}/plugins/puredata/external/pd/bin/pd.def")
|
||||
|
||||
|
|
@ -17,13 +23,13 @@ else()
|
|||
endif()
|
||||
|
||||
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]")
|
||||
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]")
|
||||
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]")
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +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
|
||||
|
||||
function(string_left_pad VAR INPUT LENGTH FILLCHAR)
|
||||
set(_output "${INPUT}")
|
||||
string(LENGTH "${_output}" _length)
|
||||
|
|
|
|||
|
|
@ -1,18 +1,24 @@
|
|||
set(VSTPLUGIN_NAME "sfizz")
|
||||
set(VSTPLUGIN_VENDOR "SFZTools")
|
||||
set(VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
|
||||
set(VSTPLUGIN_EMAIL "paul@ferrand.cc")
|
||||
# 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
|
||||
|
||||
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)
|
||||
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]")
|
||||
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]")
|
||||
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]")
|
||||
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]")
|
||||
endif()
|
||||
|
||||
|
|
|
|||
2
library
2
library
|
|
@ -1 +1 @@
|
|||
Subproject commit 9d59e1847264758e7840623ec139778c951e984d
|
||||
Subproject commit 9a3e371daa3548258db896d13ff3fcd3c7fb7901
|
||||
|
|
@ -43,18 +43,18 @@ elseif(APPLE)
|
|||
else()
|
||||
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)
|
||||
endif()
|
||||
|
||||
if(SFIZZ_LV2)
|
||||
if(PLUGIN_LV2)
|
||||
add_subdirectory(lv2)
|
||||
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)
|
||||
endif()
|
||||
|
||||
if(SFIZZ_PUREDATA)
|
||||
if(PLUGIN_PUREDATA)
|
||||
add_subdirectory(puredata)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -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(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)
|
||||
|
||||
# Keep non build turtle files in IDE
|
||||
set(LV2PLUGIN_TTL_SRC_FILES
|
||||
set(LV2_PLUGIN_TTL_SRC_FILES
|
||||
manifest.ttl.in
|
||||
${PROJECT_NAME}.ttl.in
|
||||
)
|
||||
if(SFIZZ_LV2_UI)
|
||||
list(APPEND LV2PLUGIN_TTL_SRC_FILES
|
||||
if(PLUGIN_LV2_UI)
|
||||
list(APPEND LV2_PLUGIN_TTL_SRC_FILES
|
||||
${PROJECT_NAME}_ui.ttl.in)
|
||||
endif()
|
||||
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}_lv2_common.cpp
|
||||
${LV2PLUGIN_TTL_SRC_FILES})
|
||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME} PRIVATE sfizz::sfizz sfizz::import sfizz::plugins-common)
|
||||
${LV2_PLUGIN_TTL_SRC_FILES})
|
||||
target_link_libraries(${LV2_PLUGIN_PRJ_NAME} PRIVATE sfizz::sfizz sfizz::import sfizz::plugins-common)
|
||||
|
||||
if(SFIZZ_LV2_UI)
|
||||
add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE
|
||||
if(PLUGIN_LV2_UI)
|
||||
add_library(${LV2_PLUGIN_PRJ_NAME}_ui MODULE
|
||||
${PROJECT_NAME}_ui.cpp
|
||||
${PROJECT_NAME}_lv2_common.cpp
|
||||
vstgui_helpers.h
|
||||
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()
|
||||
|
||||
if(SFIZZ_LV2_PSA)
|
||||
target_compile_definitions(${LV2PLUGIN_PRJ_NAME} PRIVATE "SFIZZ_LV2_PSA=1")
|
||||
if(SFIZZ_LV2_UI)
|
||||
target_compile_definitions(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE "SFIZZ_LV2_PSA=1")
|
||||
if(PLUGIN_LV2_PSA)
|
||||
target_compile_definitions(${LV2_PLUGIN_PRJ_NAME} PRIVATE "PLUGIN_LV2_PSA=1")
|
||||
if(PLUGIN_LV2_UI)
|
||||
target_compile_definitions(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "PLUGIN_LV2_PSA=1")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# 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
|
||||
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(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
|
||||
if(SFIZZ_LV2_UI)
|
||||
target_link_libraries(${LV2PLUGIN_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} PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2.version")
|
||||
# target_link_libraries(${LV2_PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
|
||||
if(PLUGIN_LV2_UI)
|
||||
target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/lv2ui.version")
|
||||
# target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
|
||||
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)
|
||||
find_path(LV2_INCLUDE_DIR "lv2.h")
|
||||
if(NOT LV2_INCLUDE_DIR)
|
||||
|
|
@ -60,41 +60,41 @@ if(SFIZZ_USE_SYSTEM_LV2)
|
|||
message(STATUS "Found system lv2")
|
||||
endif()
|
||||
else()
|
||||
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE vendor)
|
||||
target_include_directories(${LV2_PLUGIN_PRJ_NAME} PRIVATE vendor)
|
||||
endif()
|
||||
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
|
||||
sfizz_enable_lto_if_needed(${LV2_PLUGIN_PRJ_NAME})
|
||||
if(MINGW)
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
endif()
|
||||
|
||||
if(SFIZZ_LV2_UI)
|
||||
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
|
||||
if(PLUGIN_LV2_UI)
|
||||
target_include_directories(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
|
||||
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()
|
||||
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui)
|
||||
sfizz_enable_lto_if_needed(${LV2_PLUGIN_PRJ_NAME}_ui)
|
||||
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()
|
||||
|
||||
# Define a preprocessor variable to indicate a build with UI enabled
|
||||
if(SFIZZ_LV2_UI)
|
||||
target_compile_definitions(${LV2PLUGIN_PRJ_NAME} PRIVATE "SFIZZ_LV2_UI=1")
|
||||
target_compile_definitions(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE "SFIZZ_LV2_UI=1")
|
||||
if(PLUGIN_LV2_UI)
|
||||
target_compile_definitions(${LV2_PLUGIN_PRJ_NAME} PRIVATE "PLUGIN_LV2_UI=1")
|
||||
target_compile_definitions(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE "PLUGIN_LV2_UI=1")
|
||||
endif()
|
||||
|
||||
# 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/<plugin_name>.<ext>
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
||||
set_target_properties(${LV2PLUGIN_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 PREFIX "")
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
|
||||
if(SFIZZ_LV2_UI)
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
||||
set_target_properties(${LV2PLUGIN_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:>")
|
||||
if(PLUGIN_LV2_UI)
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
|
||||
set_target_properties(${LV2_PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
endif()
|
||||
|
||||
# Generate *.ttl files from *.in sources,
|
||||
|
|
@ -102,13 +102,13 @@ endif()
|
|||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.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)
|
||||
endif()
|
||||
configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
|
||||
|
||||
# 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
|
||||
set(LV2_RESOURCES
|
||||
|
|
@ -122,24 +122,24 @@ foreach(res ${LV2_RESOURCES})
|
|||
endforeach()
|
||||
|
||||
# Copy editor resources
|
||||
if(SFIZZ_LV2_UI)
|
||||
if(PLUGIN_LV2_UI)
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||
copy_editor_resources(
|
||||
${LV2PLUGIN_PRJ_NAME}_ui
|
||||
${LV2_PLUGIN_PRJ_NAME}_ui
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||
"${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||
endif()
|
||||
|
||||
# Installation
|
||||
if(NOT MSVC)
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2_PLUGIN_INSTALL_DIR}
|
||||
COMPONENT "lv2"
|
||||
USE_SOURCE_PERMISSIONS)
|
||||
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")
|
||||
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")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
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
|
||||
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
|
||||
contributors.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,17 +2,17 @@
|
|||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
|
||||
|
||||
<@LV2PLUGIN_URI@>
|
||||
<@LV2_PLUGIN_URI@>
|
||||
a lv2:Plugin ;
|
||||
lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ;
|
||||
rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> .
|
||||
|
||||
<@LV2PLUGIN_URI@-multi>
|
||||
<@LV2_PLUGIN_URI@-multi>
|
||||
a lv2:Plugin ;
|
||||
lv2:binary <Contents/Binary/@PROJECT_NAME@@CMAKE_SHARED_MODULE_SUFFIX@> ;
|
||||
rdfs:seeAlso <@PROJECT_NAME@.ttl>, <controllers.ttl> .
|
||||
|
||||
@LV2PLUGIN_IF_ENABLE_UI@<@LV2PLUGIN_URI@#ui>
|
||||
@LV2PLUGIN_IF_ENABLE_UI@ a ui:@LV2_UI_TYPE@ ;
|
||||
@LV2PLUGIN_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@<@LV2_PLUGIN_URI@#ui>
|
||||
@LV2_PLUGIN_IF_ENABLE_UI@ a ui:@LV2_UI_TYPE@ ;
|
||||
@LV2_PLUGIN_IF_ENABLE_UI@ ui:binary <Contents/Binary/@PROJECT_NAME@_ui@CMAKE_SHARED_MODULE_SUFFIX@> ;
|
||||
@LV2_PLUGIN_IF_ENABLE_UI@ rdfs:seeAlso <@PROJECT_NAME@_ui.ttl> .
|
||||
|
|
|
|||
|
|
@ -662,7 +662,7 @@ instantiate(const LV2_Descriptor *descriptor,
|
|||
self->text_description[0] = 0;
|
||||
self->resend_description = false;
|
||||
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
if (self->multi_out)
|
||||
self->rms_follower.setNumOutputs(MULTI_OUTPUT_COUNT);
|
||||
else
|
||||
|
|
@ -693,7 +693,7 @@ activate(LV2_Handle instance)
|
|||
sfizz_set_samples_per_block(self->synth, self->max_block_size);
|
||||
sfizz_set_sample_rate(self->synth, self->sample_rate);
|
||||
self->must_update_midnam.store(1);
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
self->rms_follower.init(self->sample_rate);
|
||||
#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);
|
||||
}
|
||||
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
static void
|
||||
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.
|
||||
// See LV2 midi:binding.
|
||||
#if defined(SFIZZ_LV2_PSA)
|
||||
#if defined(PLUGIN_LV2_PSA)
|
||||
switch (cc)
|
||||
{
|
||||
default:
|
||||
|
|
@ -1276,7 +1276,7 @@ run(LV2_Handle instance, uint32_t sample_count)
|
|||
|
||||
spin_mutex_unlock(self->synth_mutex);
|
||||
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
if (self->ui_active)
|
||||
{
|
||||
if (self->multi_out) {
|
||||
|
|
|
|||
|
|
@ -23,69 +23,69 @@
|
|||
midnam:interface a lv2:ExtensionData .
|
||||
midnam:update a lv2:Feature .
|
||||
|
||||
<@LV2PLUGIN_URI@#stereo_output>
|
||||
<@LV2_PLUGIN_URI@#stereo_output>
|
||||
a pg:StereoGroup, pg:OutputGroup ;
|
||||
lv2:symbol "stereo_output" ;
|
||||
lv2:name "Stereo output",
|
||||
"Sortie stéréo"@fr ,
|
||||
"Uscita stereo"@it .
|
||||
|
||||
<@LV2PLUGIN_URI@#config>
|
||||
<@LV2_PLUGIN_URI@#config>
|
||||
a pg:Group ;
|
||||
lv2:symbol "config" ;
|
||||
lv2:name "Configuration",
|
||||
"Configuration"@fr ,
|
||||
"Impostazioni"@it .
|
||||
|
||||
<@LV2PLUGIN_URI@#tuning>
|
||||
<@LV2_PLUGIN_URI@#tuning>
|
||||
a pg:Group ;
|
||||
lv2:symbol "tuning" ;
|
||||
lv2:name "Tuning",
|
||||
"Accordage"@fr ,
|
||||
"Accordatura"@it .
|
||||
|
||||
<@LV2PLUGIN_URI@#status>
|
||||
<@LV2_PLUGIN_URI@#status>
|
||||
a pg:Group ;
|
||||
lv2:symbol "status" ;
|
||||
lv2:name "status",
|
||||
"Statut"@fr .
|
||||
|
||||
<@LV2PLUGIN_URI@:sfzfile>
|
||||
<@LV2_PLUGIN_URI@:sfzfile>
|
||||
a lv2:Parameter ;
|
||||
rdfs:label "SFZ file",
|
||||
"Fichier SFZ"@fr ,
|
||||
"File SFZ"@it ;
|
||||
rdfs:range atom:Path .
|
||||
|
||||
<@LV2PLUGIN_URI@:tuningfile>
|
||||
<@LV2_PLUGIN_URI@:tuningfile>
|
||||
a lv2:Parameter ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
rdfs:label "Scala file",
|
||||
"Fichier Scala"@fr ,
|
||||
"File Scala"@it ;
|
||||
rdfs:range atom:Path .
|
||||
|
||||
<@LV2PLUGIN_URI@:description>
|
||||
<@LV2_PLUGIN_URI@:description>
|
||||
a lv2:Parameter ;
|
||||
rdfs:label "Instrument description" ;
|
||||
rdfs:range atom:String .
|
||||
|
||||
<@LV2PLUGIN_URI@>
|
||||
<@LV2_PLUGIN_URI@>
|
||||
a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ;
|
||||
|
||||
doap:name "@LV2PLUGIN_NAME@" ;
|
||||
doap:license <https://spdx.org/licenses/@LV2PLUGIN_SPDX_LICENSE_ID@> ;
|
||||
doap:name "@LV2_PLUGIN_NAME@" ;
|
||||
doap:license <https://spdx.org/licenses/@LV2_PLUGIN_SPDX_LICENSE_ID@> ;
|
||||
doap:maintainer [
|
||||
foaf:name "@LV2PLUGIN_AUTHOR@" ;
|
||||
foaf:homepage <@LV2PLUGIN_URI@> ;
|
||||
foaf:mbox <mailto:@LV2PLUGIN_EMAIL@> ;
|
||||
foaf:name "@LV2_PLUGIN_AUTHOR@" ;
|
||||
foaf:homepage <@LV2_PLUGIN_URI@> ;
|
||||
foaf:mbox <mailto:@LV2_PLUGIN_EMAIL@> ;
|
||||
] ;
|
||||
rdfs:comment "@LV2PLUGIN_COMMENT@",
|
||||
rdfs:comment "@LV2_PLUGIN_COMMENT@",
|
||||
"Échantillonneur SFZ"@fr ,
|
||||
"Campionatore SFZ"@it ;
|
||||
|
||||
lv2:minorVersion @LV2PLUGIN_VERSION_MINOR@ ;
|
||||
lv2:microVersion @LV2PLUGIN_VERSION_MICRO@ ;
|
||||
lv2:minorVersion @LV2_PLUGIN_VERSION_MINOR@ ;
|
||||
lv2:microVersion @LV2_PLUGIN_VERSION_MICRO@ ;
|
||||
|
||||
lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ;
|
||||
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 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> ,
|
||||
<@LV2PLUGIN_URI@:tuningfile> ;
|
||||
patch:readable <@LV2PLUGIN_URI@:description> ;
|
||||
patch:writable <@LV2_PLUGIN_URI@:sfzfile> ,
|
||||
<@LV2_PLUGIN_URI@:tuningfile> ;
|
||||
patch:readable <@LV2_PLUGIN_URI@:description> ;
|
||||
|
||||
pg:mainOutput <@LV2PLUGIN_URI@#stereo_output> ;
|
||||
pg:mainOutput <@LV2_PLUGIN_URI@#stereo_output> ;
|
||||
|
||||
lv2:port [
|
||||
a lv2:InputPort, atom:AtomPort ;
|
||||
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:index 0 ;
|
||||
lv2:symbol "control" ;
|
||||
|
|
@ -118,7 +118,7 @@ midnam:update a lv2:Feature .
|
|||
] , [
|
||||
a lv2:OutputPort, atom:AtomPort ;
|
||||
atom:bufferType atom:Sequence ;
|
||||
atom:supports patch:Message, <@LV2PLUGIN_URI@:OSCBlob> ;
|
||||
atom:supports patch:Message, <@LV2_PLUGIN_URI@:OSCBlob> ;
|
||||
lv2:designation lv2:control ;
|
||||
lv2:index 1 ;
|
||||
lv2:symbol "automate" ;
|
||||
|
|
@ -132,7 +132,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Left Output",
|
||||
"Sortie gauche"@fr ,
|
||||
"Uscita Sinistra"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#stereo_output> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#stereo_output> ;
|
||||
lv2:designation pg:left
|
||||
] , [
|
||||
a lv2:AudioPort, lv2:OutputPort ;
|
||||
|
|
@ -141,7 +141,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Right Output",
|
||||
"Sortie droite"@fr ,
|
||||
"Uscita Destra"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#stereo_output> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#stereo_output> ;
|
||||
lv2:designation pg:right
|
||||
] , [
|
||||
a lv2:InputPort, lv2:ControlPort ;
|
||||
|
|
@ -159,7 +159,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Polyphony",
|
||||
"Polyphonie"@fr ,
|
||||
"Polifonia"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -204,7 +204,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Oversampling factor",
|
||||
"Facteur de suréchantillonnage"@fr ,
|
||||
"Fattore Sovracampionamento"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -239,7 +239,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Preload size",
|
||||
"Taille préchargée"@fr ,
|
||||
"Grandezza Precaricamento"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -294,7 +294,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Scala root key",
|
||||
"Tonalité de base Scala"@fr ,
|
||||
"Tonalità di base Scala"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 60 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -307,7 +307,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Tuning frequency",
|
||||
"Fréquence d'accordage"@fr ,
|
||||
"Frequenza di accordatura"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:default 440.0 ;
|
||||
lv2:minimum 300.0 ;
|
||||
lv2:maximum 500.0 ;
|
||||
|
|
@ -319,7 +319,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Stretched tuning",
|
||||
"Accordage étiré"@fr ,
|
||||
"Tensione di accordatura"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:default 0.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 1.0 ;
|
||||
|
|
@ -331,7 +331,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Sample quality",
|
||||
"Qualité des échantillons"@fr ,
|
||||
"Qualità del campione"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 2.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 10.0
|
||||
|
|
@ -342,7 +342,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Oscillator quality",
|
||||
"Qualité des oscillateurs"@fr ,
|
||||
"Qualità dell'oscillatore"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 1.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 3.0
|
||||
|
|
@ -352,7 +352,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "active_voices" ;
|
||||
lv2:name "Active voices",
|
||||
"Voix utilisées"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -363,7 +363,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_curves" ;
|
||||
lv2:name "Number of curves",
|
||||
"Nombre de courbes"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -374,7 +374,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_masters" ;
|
||||
lv2:name "Number of masters",
|
||||
"Nombre de maîtres"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -385,7 +385,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_groups" ;
|
||||
lv2:name "Number of groups",
|
||||
"Nombre de groupes"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -396,7 +396,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_regions" ;
|
||||
lv2:name "Number of regions",
|
||||
"Nombre de régions"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -407,7 +407,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_samples" ;
|
||||
lv2:name "Number of samples",
|
||||
"Nombre d'échantillons"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -418,7 +418,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "freewheeling_sample_quality" ;
|
||||
lv2:name "Freewheeling Sample quality",
|
||||
"Qualité des échantillons en roue libre"@fr;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 10.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 10.0
|
||||
|
|
@ -428,7 +428,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "freewheeling_oscillator_quality" ;
|
||||
lv2:name "Freewheeling Oscillator quality",
|
||||
"Qualité des oscillateurs en roue libre"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 3.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 3.0
|
||||
|
|
@ -437,7 +437,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:index 22 ;
|
||||
lv2:symbol "sustain_cancels_release" ;
|
||||
lv2:name "Sustain cancels release";
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty lv2:toggled ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -446,22 +446,22 @@ midnam:update a lv2:Feature .
|
|||
|
||||
rdfs:seeAlso <controllers.ttl> .
|
||||
|
||||
<@LV2PLUGIN_URI@-multi>
|
||||
<@LV2_PLUGIN_URI@-multi>
|
||||
a doap:Project, lv2:Plugin, lv2:InstrumentPlugin ;
|
||||
|
||||
doap:name "@LV2PLUGIN_NAME@-multi" ;
|
||||
doap:license <https://spdx.org/licenses/@LV2PLUGIN_SPDX_LICENSE_ID@> ;
|
||||
doap:name "@LV2_PLUGIN_NAME@-multi" ;
|
||||
doap:license <https://spdx.org/licenses/@LV2_PLUGIN_SPDX_LICENSE_ID@> ;
|
||||
doap:maintainer [
|
||||
foaf:name "@LV2PLUGIN_AUTHOR@" ;
|
||||
foaf:homepage <@LV2PLUGIN_URI@> ;
|
||||
foaf:mbox <mailto:@LV2PLUGIN_EMAIL@> ;
|
||||
foaf:name "@LV2_PLUGIN_AUTHOR@" ;
|
||||
foaf:homepage <@LV2_PLUGIN_URI@> ;
|
||||
foaf:mbox <mailto:@LV2_PLUGIN_EMAIL@> ;
|
||||
] ;
|
||||
rdfs:comment "@LV2PLUGIN_COMMENT@",
|
||||
rdfs:comment "@LV2_PLUGIN_COMMENT@",
|
||||
"Échantillonneur SFZ"@fr ,
|
||||
"Campionatore SFZ"@it ;
|
||||
|
||||
lv2:minorVersion @LV2PLUGIN_VERSION_MINOR@ ;
|
||||
lv2:microVersion @LV2PLUGIN_VERSION_MICRO@ ;
|
||||
lv2:minorVersion @LV2_PLUGIN_VERSION_MINOR@ ;
|
||||
lv2:microVersion @LV2_PLUGIN_VERSION_MICRO@ ;
|
||||
|
||||
lv2:requiredFeature urid:map, bufsize:boundedBlockLength, work:schedule ;
|
||||
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 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> ,
|
||||
<@LV2PLUGIN_URI@:tuningfile> ;
|
||||
patch:readable <@LV2PLUGIN_URI@:description> ;
|
||||
patch:writable <@LV2_PLUGIN_URI@:sfzfile> ,
|
||||
<@LV2_PLUGIN_URI@:tuningfile> ;
|
||||
patch:readable <@LV2_PLUGIN_URI@:description> ;
|
||||
|
||||
pg:mainOutput <@LV2PLUGIN_URI@#stereo_output> ;
|
||||
pg:mainOutput <@LV2_PLUGIN_URI@#stereo_output> ;
|
||||
|
||||
lv2:port [
|
||||
a lv2:InputPort, atom:AtomPort ;
|
||||
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:index 0 ;
|
||||
lv2:symbol "control" ;
|
||||
|
|
@ -494,7 +494,7 @@ midnam:update a lv2:Feature .
|
|||
] , [
|
||||
a lv2:OutputPort, atom:AtomPort ;
|
||||
atom:bufferType atom:Sequence ;
|
||||
atom:supports patch:Message, <@LV2PLUGIN_URI@:OSCBlob> ;
|
||||
atom:supports patch:Message, <@LV2_PLUGIN_URI@:OSCBlob> ;
|
||||
lv2:designation lv2:control ;
|
||||
lv2:index 1 ;
|
||||
lv2:symbol "automate" ;
|
||||
|
|
@ -629,7 +629,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Polyphony",
|
||||
"Polyphonie"@fr ,
|
||||
"Polifonia"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -674,7 +674,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Oversampling factor",
|
||||
"Facteur de suréchantillonnage"@fr ,
|
||||
"Fattore Sovracampionamento"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -709,7 +709,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Preload size",
|
||||
"Taille préchargée"@fr ,
|
||||
"Grandezza Precaricamento"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty pprop:notAutomatic ;
|
||||
lv2:portProperty pprop:expensive ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
|
|
@ -764,7 +764,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Scala root key",
|
||||
"Tonalité de base Scala"@fr ,
|
||||
"Tonalità di base Scala"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 60 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -777,7 +777,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Tuning frequency",
|
||||
"Fréquence d'accordage"@fr ,
|
||||
"Frequenza di accordatura"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:default 440.0 ;
|
||||
lv2:minimum 300.0 ;
|
||||
lv2:maximum 500.0 ;
|
||||
|
|
@ -789,7 +789,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Stretched tuning",
|
||||
"Accordage étiré"@fr ,
|
||||
"Tensione di accordatura"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#tuning> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#tuning> ;
|
||||
lv2:default 0.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 1.0 ;
|
||||
|
|
@ -801,7 +801,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Sample quality",
|
||||
"Qualité des échantillons"@fr ,
|
||||
"Qualità del campione"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 2.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 10.0
|
||||
|
|
@ -812,7 +812,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:name "Oscillator quality",
|
||||
"Qualité des oscillateurs"@fr ,
|
||||
"Qualità dell'oscillatore"@it ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 1.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 3.0
|
||||
|
|
@ -822,7 +822,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "active_voices" ;
|
||||
lv2:name "Active voices",
|
||||
"Voix utilisées"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -833,7 +833,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_curves" ;
|
||||
lv2:name "Number of curves",
|
||||
"Nombre de courbes"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -844,7 +844,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_masters" ;
|
||||
lv2:name "Number of masters",
|
||||
"Nombre de maîtres"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -855,7 +855,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_groups" ;
|
||||
lv2:name "Number of groups",
|
||||
"Nombre de groupes"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -866,7 +866,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_regions" ;
|
||||
lv2:name "Number of regions",
|
||||
"Nombre de régions"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -877,7 +877,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "num_samples" ;
|
||||
lv2:name "Number of samples",
|
||||
"Nombre d'échantillons"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#status> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#status> ;
|
||||
lv2:portProperty lv2:integer ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
@ -888,7 +888,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "freewheeling_sample_quality" ;
|
||||
lv2:name "Freewheeling Sample quality",
|
||||
"Qualité des échantillons en roue libre"@fr;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 10.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 10.0
|
||||
|
|
@ -898,7 +898,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:symbol "freewheeling_oscillator_quality" ;
|
||||
lv2:name "Freewheeling Oscillator quality",
|
||||
"Qualité des oscillateurs en roue libre"@fr ;
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:default 3.0 ;
|
||||
lv2:minimum 0.0 ;
|
||||
lv2:maximum 3.0
|
||||
|
|
@ -907,7 +907,7 @@ midnam:update a lv2:Feature .
|
|||
lv2:index 36 ;
|
||||
lv2:symbol "sustain_cancels_release" ;
|
||||
lv2:name "Sustain cancels release";
|
||||
pg:group <@LV2PLUGIN_URI@#config> ;
|
||||
pg:group <@LV2_PLUGIN_URI@#config> ;
|
||||
lv2:portProperty lv2:toggled ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ bool sfizz_lv2_fetch_description(
|
|||
*/
|
||||
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);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ int sfizz_lv2_get_num_outputs(sfizz_plugin_t *self)
|
|||
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)
|
||||
{
|
||||
self->ui_active = ui_active;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "sfizz_lv2.h"
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
#include "plugin/RMSFollower.h"
|
||||
#endif
|
||||
#include <spin_mutex.h>
|
||||
|
|
@ -155,7 +155,7 @@ struct sfizz_plugin_t
|
|||
// OSC
|
||||
uint8_t osc_temp[OSC_TEMP_SIZE] {};
|
||||
|
||||
#if defined(SFIZZ_LV2_UI)
|
||||
#if defined(PLUGIN_LV2_UI)
|
||||
// UI
|
||||
volatile bool ui_active = false;
|
||||
RMSFollower rms_follower;
|
||||
|
|
|
|||
|
|
@ -805,7 +805,7 @@ void sfizz_ui_t::uiSendValue(EditId id, const EditValue& v)
|
|||
default:
|
||||
if (editIdIsCC(id)) {
|
||||
int cc = ccForEditId(id);
|
||||
#if defined(SFIZZ_LV2_PSA)
|
||||
#if defined(PLUGIN_LV2_PSA)
|
||||
if (cc >= 0 && cc < 128) {
|
||||
// Send MIDI message
|
||||
uint8_t msg[3];
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
|
||||
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
|
||||
|
||||
<@LV2PLUGIN_URI@#ui>
|
||||
<@LV2_PLUGIN_URI@#ui>
|
||||
lv2:extensionData ui:idleInterface ;
|
||||
lv2:extensionData ui:showInterface ;
|
||||
lv2:requiredFeature ui:idleInterface ;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ endfunction()
|
|||
|
||||
add_pd_external(sfizz_puredata "sfizz_puredata.c")
|
||||
target_compile_definitions(sfizz_puredata PRIVATE
|
||||
"MIDI_CC_MAX=${MIDI_CC_MAX}"
|
||||
"MIDI_CC_COUNT=${MIDI_CC_COUNT}"
|
||||
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
|
||||
target_link_libraries(sfizz_puredata PRIVATE sfizz::import sfizz::sfizz)
|
||||
|
||||
|
|
@ -48,10 +48,10 @@ copy_puredata_resources(sfizz_puredata
|
|||
|
||||
# Installation
|
||||
if(NOT MSVC)
|
||||
install(DIRECTORY "${PUREDATA_BINARY_DIR}" DESTINATION "${PDPLUGIN_INSTALL_DIR}"
|
||||
install(DIRECTORY "${PUREDATA_BINARY_DIR}" DESTINATION "${PD_PLUGIN_INSTALL_DIR}"
|
||||
COMPONENT "puredata"
|
||||
USE_SOURCE_PERMISSIONS)
|
||||
bundle_dylibs(puredata
|
||||
"${PDPLUGIN_INSTALL_DIR}/sfizz/sfizz${PUREDATA_SUFFIX}"
|
||||
"${PD_PLUGIN_INSTALL_DIR}/sfizz/sfizz${PUREDATA_SUFFIX}"
|
||||
COMPONENT "puredata")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
int cc = (int)f1;
|
||||
if (cc < 0 || cc >= MIDI_CC_MAX)
|
||||
if (cc < 0 || cc >= MIDI_CC_COUNT)
|
||||
return;
|
||||
sfizz_automate_hdcc(self->synth, 0, (int)cc, clamp01(f2));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,109 +67,109 @@ add_library(sfizz::vst3-core ALIAS sfizz-vst3-core)
|
|||
|
||||
# --- VST3 plugin --- #
|
||||
|
||||
if(SFIZZ_VST)
|
||||
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
||||
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
||||
if(PLUGIN_VST3)
|
||||
set(VST3_PLUGIN_PRJ_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)
|
||||
target_sources(${VSTPLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
||||
target_sources(${VST3_PLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
||||
endif()
|
||||
target_include_directories(${VSTPLUGIN_PRJ_NAME}
|
||||
target_include_directories(${VST3_PLUGIN_PRJ_NAME}
|
||||
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME}
|
||||
target_link_libraries(${VST3_PLUGIN_PRJ_NAME}
|
||||
PRIVATE sfizz-vst3-core)
|
||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
OUTPUT_NAME "${PROJECT_NAME}"
|
||||
PREFIX "")
|
||||
|
||||
plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
||||
plugin_add_vst3sdk(${VST3_PLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${VST3_PLUGIN_PRJ_NAME})
|
||||
|
||||
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")
|
||||
endif()
|
||||
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
|
||||
sfizz_enable_lto_if_needed(${VST3_PLUGIN_PRJ_NAME})
|
||||
if(MINGW)
|
||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
endif()
|
||||
|
||||
# Create the bundle(see "VST 3 Locations / Format")
|
||||
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(
|
||||
${VSTPLUGIN_PRJ_NAME}
|
||||
${VST3_PLUGIN_PRJ_NAME}
|
||||
"${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)
|
||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
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"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/win/desktop.ini"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}")
|
||||
elseif(APPLE)
|
||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
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"
|
||||
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_VERSION "${PROJECT_VERSION}")
|
||||
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()
|
||||
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>")
|
||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}/Contents/${VST3_PACKAGE_ARCHITECTURE}-linux/$<0:>")
|
||||
endif()
|
||||
|
||||
# Copy the license
|
||||
if(APPLE)
|
||||
# on macOS, files are not permitted at the bundle root, during code signing
|
||||
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()
|
||||
file(COPY "gpl-3.0.txt"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}")
|
||||
endif()
|
||||
|
||||
# To help debugging the link only
|
||||
if(FALSE)
|
||||
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
||||
target_link_options(${VST3_PLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
||||
endif()
|
||||
|
||||
# Installation
|
||||
if(NOT MSVC)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST3_PLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${VST3_PLUGIN_INSTALL_DIR}"
|
||||
COMPONENT "vst"
|
||||
USE_SOURCE_PERMISSIONS)
|
||||
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")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# --- 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")
|
||||
elseif(SFIZZ_AU)
|
||||
set(AUPLUGIN_PRJ_NAME "${PROJECT_NAME}_au")
|
||||
set(AUPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
||||
elseif(PLUGIN_AU)
|
||||
set(AU_PLUGIN_PRJ_NAME "${PROJECT_NAME}_au")
|
||||
set(AU_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
||||
|
||||
add_library(${AUPLUGIN_PRJ_NAME} MODULE
|
||||
add_library(${AU_PLUGIN_PRJ_NAME} MODULE
|
||||
"VstPluginFactory.cpp"
|
||||
"${AUWRAPPER_BASEDIR}/aucarbonview.mm"
|
||||
"${AUWRAPPER_BASEDIR}/aucocoaview.mm"
|
||||
"${AUWRAPPER_BASEDIR}/ausdk.mm"
|
||||
"${AUWRAPPER_BASEDIR}/auwrapper.mm"
|
||||
"${AUWRAPPER_BASEDIR}/NSDataIBStream.mm")
|
||||
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||
target_include_directories(${AU_PLUGIN_PRJ_NAME} PRIVATE
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${VST3SDK_BASEDIR}")
|
||||
target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||
target_link_libraries(${AU_PLUGIN_PRJ_NAME} PRIVATE
|
||||
"${APPLE_FOUNDATION_LIBRARY}"
|
||||
"${APPLE_COCOA_LIBRARY}"
|
||||
"${APPLE_CARBON_LIBRARY}"
|
||||
|
|
@ -178,14 +178,14 @@ elseif(SFIZZ_AU)
|
|||
"${APPLE_COREAUDIO_LIBRARY}"
|
||||
"${APPLE_COREMIDI_LIBRARY}")
|
||||
|
||||
target_link_libraries(${AUPLUGIN_PRJ_NAME}
|
||||
target_link_libraries(${AU_PLUGIN_PRJ_NAME}
|
||||
PRIVATE sfizz-vst3-core)
|
||||
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
||||
set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
OUTPUT_NAME "${PROJECT_NAME}"
|
||||
PREFIX "")
|
||||
|
||||
plugin_add_vst3sdk(${AUPLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${AUPLUGIN_PRJ_NAME})
|
||||
plugin_add_vst3sdk(${AU_PLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${AU_PLUGIN_PRJ_NAME})
|
||||
|
||||
# Get Core Audio utility classes if missing
|
||||
set(CA_UTILITY_BASEDIR
|
||||
|
|
@ -215,7 +215,7 @@ elseif(SFIZZ_AU)
|
|||
endif()
|
||||
|
||||
# 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/AudioUnits"
|
||||
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase"
|
||||
|
|
@ -223,29 +223,29 @@ elseif(SFIZZ_AU)
|
|||
"${CA_UTILITY_BASEDIR}/CoreAudio/PublicUtility")
|
||||
|
||||
# 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
|
||||
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)
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
|
||||
"#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
|
||||
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(
|
||||
${AUPLUGIN_PRJ_NAME}
|
||||
${AU_PLUGIN_PRJ_NAME}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||
"${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||
set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES
|
||||
"${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||
set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
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"
|
||||
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_VERSION "${PROJECT_VERSION}")
|
||||
set(SFIZZ_AU_BUNDLE_IDENTIFIER "tools.sfz.sfizz.au")
|
||||
|
|
@ -260,10 +260,10 @@ elseif(SFIZZ_AU)
|
|||
OUTPUT_VARIABLE SFIZZ_AU_HEXADECIMAL_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
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"
|
||||
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
|
||||
if(FALSE)
|
||||
|
|
@ -272,7 +272,7 @@ elseif(SFIZZ_AU)
|
|||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/audiounitconfig.h.in"
|
||||
"${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}"
|
||||
"-d" "SystemSevenOrLater=1"
|
||||
"-script" "Roman"
|
||||
|
|
@ -284,28 +284,28 @@ elseif(SFIZZ_AU)
|
|||
"-I" "/System/Library/Frameworks/AudioUnit.framework/Versions/A/Headers/"
|
||||
"-I" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase"
|
||||
"-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"
|
||||
"${AUWRAPPER_BASEDIR}/auresource.r")
|
||||
endif()
|
||||
|
||||
# Installation
|
||||
if(AUPLUGIN_INSTALL_DIR)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${AUPLUGIN_INSTALL_DIR}"
|
||||
if(AU_PLUGIN_INSTALL_DIR)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AU_PLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${AU_PLUGIN_INSTALL_DIR}"
|
||||
COMPONENT "au"
|
||||
USE_SOURCE_PERMISSIONS)
|
||||
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")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# --- VST2 wrapper --- #
|
||||
|
||||
if(SFIZZ_VST2)
|
||||
set(VST2PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst2")
|
||||
set(VST2PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst2")
|
||||
if(PLUGIN_VST2)
|
||||
set(VST2_PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst2")
|
||||
set(VST2_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst2")
|
||||
|
||||
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")
|
||||
|
|
@ -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}")
|
||||
endif()
|
||||
|
||||
add_library(${VST2PLUGIN_PRJ_NAME} MODULE
|
||||
add_library(${VST2_PLUGIN_PRJ_NAME} MODULE
|
||||
"VstPluginFactory.cpp"
|
||||
"Vst2PluginFactory.cpp"
|
||||
"Vst2PluginEntry.c"
|
||||
|
|
@ -322,54 +322,54 @@ if(SFIZZ_VST2)
|
|||
"${VST2WRAPPER_BASEDIR}/../basewrapper/basewrapper.cpp"
|
||||
"${VST2SDK_BASEDIR}/public.sdk/source/vst2.x/audioeffect.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}"
|
||||
"${VST2SDK_BASEDIR}")
|
||||
|
||||
if(NOT WIN32)
|
||||
target_compile_definitions(${VST2PLUGIN_PRJ_NAME} PRIVATE "__cdecl=")
|
||||
target_compile_definitions(${VST2_PLUGIN_PRJ_NAME} PRIVATE "__cdecl=")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${VST2PLUGIN_PRJ_NAME}
|
||||
target_link_libraries(${VST2_PLUGIN_PRJ_NAME}
|
||||
PRIVATE sfizz-vst3-core)
|
||||
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES
|
||||
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
OUTPUT_NAME "${PROJECT_NAME}"
|
||||
PREFIX "")
|
||||
|
||||
plugin_add_vst3sdk(${VST2PLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${VST2PLUGIN_PRJ_NAME})
|
||||
plugin_add_vst3sdk(${VST2_PLUGIN_PRJ_NAME})
|
||||
plugin_add_vstgui(${VST2_PLUGIN_PRJ_NAME})
|
||||
|
||||
# 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
|
||||
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(
|
||||
${VST2PLUGIN_PRJ_NAME}
|
||||
${VST2_PLUGIN_PRJ_NAME}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||
"${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}/Contents/Binary/$<0:>")
|
||||
"${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}/Contents/Binary/$<0:>")
|
||||
|
||||
file(COPY "gpl-3.0.txt"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}")
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}")
|
||||
|
||||
if(MINGW)
|
||||
set_target_properties(${VST2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
endif()
|
||||
|
||||
# Installation
|
||||
if(VST2PLUGIN_INSTALL_DIR)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST2PLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${VST2PLUGIN_INSTALL_DIR}"
|
||||
if(VST2_PLUGIN_INSTALL_DIR)
|
||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VST2_PLUGIN_BUNDLE_NAME}"
|
||||
DESTINATION "${VST2_PLUGIN_INSTALL_DIR}"
|
||||
COMPONENT "vst2"
|
||||
USE_SOURCE_PERMISSIONS)
|
||||
if(APPLE)
|
||||
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")
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
// 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
|
||||
|
||||
#define VSTPLUGIN_NAME "@VSTPLUGIN_NAME@"
|
||||
#define VSTPLUGIN_VENDOR "@VSTPLUGIN_VENDOR@"
|
||||
#define VSTPLUGIN_URL "@VSTPLUGIN_URL@"
|
||||
#define VSTPLUGIN_EMAIL "@VSTPLUGIN_EMAIL@"
|
||||
#define VSTPLUGIN_VERSION "@PROJECT_VERSION@"
|
||||
#define VST3_PLUGIN_NAME "@VST3_PLUGIN_NAME@"
|
||||
#define VST3_PLUGIN_VENDOR "@VST3_PLUGIN_VENDOR@"
|
||||
#define VST3_PLUGIN_URL "@VST3_PLUGIN_URL@"
|
||||
#define VST3_PLUGIN_EMAIL "@VST3_PLUGIN_EMAIL@"
|
||||
#define VST3_PLUGIN_VERSION "@PROJECT_VERSION@"
|
||||
|
|
|
|||
|
|
@ -15,37 +15,37 @@ class SfizzVstProcessor;
|
|||
class SfizzVstProcessorMulti;
|
||||
class SfizzVstController;
|
||||
|
||||
BEGIN_FACTORY_DEF(VSTPLUGIN_VENDOR,
|
||||
VSTPLUGIN_URL,
|
||||
"mailto:" VSTPLUGIN_EMAIL)
|
||||
BEGIN_FACTORY_DEF(VST3_PLUGIN_VENDOR,
|
||||
VST3_PLUGIN_URL,
|
||||
"mailto:" VST3_PLUGIN_EMAIL)
|
||||
|
||||
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessor_cid),
|
||||
PClassInfo::kManyInstances,
|
||||
kVstAudioEffectClass,
|
||||
VSTPLUGIN_NAME,
|
||||
VST3_PLUGIN_NAME,
|
||||
Vst::kDistributable,
|
||||
Vst::PlugType::kInstrumentSynth,
|
||||
VSTPLUGIN_VERSION,
|
||||
VST3_PLUGIN_VERSION,
|
||||
kVstVersionString,
|
||||
createInstance<SfizzVstProcessor>)
|
||||
|
||||
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstProcessorMulti_cid),
|
||||
PClassInfo::kManyInstances,
|
||||
kVstAudioEffectClass,
|
||||
VSTPLUGIN_NAME "-multi",
|
||||
VST3_PLUGIN_NAME "-multi",
|
||||
Vst::kDistributable,
|
||||
Vst::PlugType::kInstrumentSynth,
|
||||
VSTPLUGIN_VERSION,
|
||||
VST3_PLUGIN_VERSION,
|
||||
kVstVersionString,
|
||||
createInstance<SfizzVstProcessorMulti>)
|
||||
|
||||
DEF_CLASS2 (INLINE_UID_FROM_FUID(SfizzVstController_cid),
|
||||
PClassInfo::kManyInstances,
|
||||
kVstComponentControllerClass,
|
||||
VSTPLUGIN_NAME,
|
||||
VST3_PLUGIN_NAME,
|
||||
0, // not used here
|
||||
"", // not used here
|
||||
VSTPLUGIN_VERSION,
|
||||
VST3_PLUGIN_VERSION,
|
||||
kVstVersionString,
|
||||
createInstance<SfizzVstController>)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue