如果您是希望使用Surge XT的音乐家,请从我们的网站下载适当的二进制文件。 Suger Synth团队定期为所有受支持的平台发布。
CI:版本:Release-XT:
Surge XT是一种免费的开源混合合成器,最初由 @Kurasu/Claes Johanson在Vember Audio上作为商业产品撰写并出售。 2018年9月,CLAES决定在GPL3下发布部分Suger 1.6的部分版本,此后,一组开发人员一直在改善它。您可以在https://surge-synth-team.org/上了解有关团队的更多信息,或在不和谐中与我们联系。
如果您还想参加XT的讨论,测试和设计,我们将在下面以及Suger XT网站的贡献者部分中提供详细信息。
此读数是电涌XT的开发人员文档的根源。
我们欢迎开发人员!我们的工作流围绕该存储库中的GitHub问题和我们的Discord服务器进行了对话。您可以在开发人员指南文档中阅读我们的开发人员指南。如果您想做出贡献,并且是Git的新手,那么我们还可以在Sprive XT开发方面量身定制GIT。
开发人员指南还包含有关特定平台上特定主机的测试和调试的信息。
Surge XT用于其所有与构建相关的任务使用CMake,并需要一组免费的工具来构建合成器。如果您设置了开发环境,那么您几乎肯定拥有所需的东西,但如果没有,请查看:
设置环境后,您需要使用git,抓取子模块,运行cmake进行配置,然后运行cmake以构建来签约。您的IDE可能支持CMAKE(以下更多内容),但是在所有平台上构建SUGH XT的可靠方法是:
git clone https://github.com/surge-synthesizer/surge.git
cd surge
git submodule update --init --recursive
cmake -Bbuild
cmake --build build --config Release --target surge-staged-assets
这将在目录build/surge_xt_products
中构建所有激增XT二进制资产,并且通常足以进行公式进行构建。
我们的git如何解释我们如何使用git。如果您想从叉子开发,请在那里咨询,但是简短的版本是(1)叉子上的该项目和(2)克隆叉子,而不是如上所述的主要储备。因此,按下此处的Fork
按钮:
git clone [email protected]:youruserid/surge.git
其余步骤不变。
当您运行第一个CMAKE步骤时,CMAKE将为您生成IDE兼容的文件。在Windows上,它将生成Visual Studio文件。在Mac上,它默认情况下会生成makefiles,但是如果添加参数-GXcode
则可以在需要的情况下获得Xcode项目。
Surge XT开发人员会定期使用各种工具开发。 CLION,Visual Studio,Vim,Emacs,VS代码以及许多其他人可以与软件正常使用。
由于许可限制,可能不会重新分布VST2的VST2构建。但是,可以构建sugry XT的VST2供您个人使用。首先,获取VST2 SDK的本地副本,然后将其解压缩到您选择的文件夹中。然后将VST2SDK_DIR
设置为指向该文件夹:
export VST2SDK_DIR="/your/path/to/VST2SDK"
或者,在Windows命令提示符中:
set VST2SDK_DIR=c:pathtoVST2SDK
最后,重新运行cmake并构建VST2目标:
cmake -Bbuild_vst2
cmake --build build_vst2 --config Release --target surge-xt_VST --parallel 4
cmake --build build_vst2 --config Release --target surge-fx_VST --parallel 4
然后,您将分别在build_vst2/surge-xt_artefacts/Release/VST
和build_vst2/surge-fx_artefacts/Release/VST
中使用VST2插件。通过修改--parallel
参数的值来调整将用于构建过程的内核数。
在Windows上,使用ASIO的构建通常是Suger XT独立的首选,因为它使用户可以使用ASIO低延迟音频驱动程序。
不幸的是,由于许可冲突,使用ASIO构建的激增XT的二进制文件可能不会被重新分配。但是,只要您不重新分配这些构建,就可以使用ASIO构建ASIO供您个人使用。
如果您已经拥有ASIO SDK的副本,则只需设置以下环境变量,就可以了!
set ASIOSDK_DIR=c:pathtoasio
如果您没有ASIO SDK的副本,CMAKE可以为您下载它,并允许您在您自己的个人许可下与ASIO一起构建。要启用此功能,请按照以下方式运行CMake Configuration命令:
cmake -Bbuild -DBUILD_USING_MY_ASIO_LICENSE=True
Sugh XT 1.3家庭移至Juce 7,其中包括对LV2构建的支持。由于多种原因,我们默认或在CI管道中都不构建LV2。您可以通过在初始CMake构建中添加-DSURGE_BUILD_LV2=TRUE
来激活环境中的LV2构建。
Surge XT使用pybind
将合成器的内部曝光到Python代码,以直接访问其所有功能。这是一种对开发人员最有用的工具,而Empure-Python存储库显示了一些用途。
要以这种方式使用潮流XT,您需要构建Python扩展。这是这样的方式(这显示了Mac上的结果,但是Windows和Linux相似)。
首先,用Python绑定配置构建,激活了:
cmake -Bignore/bpy -DSURGE_BUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release
请注意,目录ignore/bpy
可能是您想要的任何东西。 ignore
目录很方便,因为它通过.gitignore
忽略。
然后构建Python插件:
cmake --build ignore/bpy --parallel --target surgepy
这应该导致python .dll存在:
% ls ignore/bpy/src/surge-python/ * so
ignore/bpy/src/surge-python/surgepy.cpython-311-darwin.so
在Windows上,而是查找.pyd
文件:
ls ignore/bpy/src/surge-python/Debug/ * pyd
您应该看到一个像surgepy.cp312-win_amd64.pyd
这样的文件
现在,您最终可以开始Python加载它。这是一个示例交互式会话,但它将在您选择的工具中类似地工作:
% python3
Python 3.11.4 (main, Jun 20 2023, 17:37:48) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type " help " , " copyright " , " credits " or " license " for more information.
>>> import sys
>>> sys.path.append( " ignore/bpy/src/surge-python " )
>>> import surgepy
>>> surgepy.getVersion ()
' 1.3.main.850bd53b '
>>> quit ()
在Windows上,运行sys.path.append("ignore/bpy/src/surge-python/Debug")
,因为路径略有不同。
CMAKE目标surge-xt-distribution
在构建过程结束时在平台上构建安装图像。在Mac和Linux上,安装程序生成器内置在平台中。在Windows上,我们的CMAKE文件使用Nuget下载Innosetup,因此您需要路径中的Nuget.exe CLI。
我们还有其他各种CMAKE选项和目标,可以使您更轻松地开发和安装Suger XT。
Juce支持一种模式,其中将插件(AU,VST3等...)复制到构建后的本地安装区域。默认情况下使用CMAKE,但是您可以使用-DSURGE_COPY_AFTER_BUILD=True
在cmake
Time时将其打开。如果您在Unixes上执行此操作,则构建VST3或AU目标将将它们复制到适当的局部区域(Linux上的~/.vst3
, ~/Library/Audio/Plugins
在Mac上)。在Windows上,它将尝试安装VST3,因此设置此选项可能需要您的构建环境中的管理员特权。
在UNIX AND NOT APPLE
系统上,CMAKE文件提供了一个安装目标,该目标将安装所有必需的资产到CMAKE_INSTALL_PREFIX
。这意味着可以通过以下方式完成完整的安装。
cmake -Bignore/sxt -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build ignore/sxt --config Release --parallel 8
sudo cmake --install ignore/sxt
您应该在/usr/bin
, /usr/share
和/usr/lib
中进行工作安装。
如果您正在使用Visual Studio 2019构建,请使用CMAKE命令中的-A
标志指定32/64位:
# 64-bit
cmake -Bbuild -G " Visual Studio 16 2019 " -A x64
# 32-bit
cmake -Bbuild32 -G " Visual Studio 16 2019 " -A Win32
如果您使用的是旧版本的Visual Studio,则必须通过选择CMAKE GENERATOR来指定您的偏好:
# 64-bit
cmake -Bbuild -G " Visual Studio 15 2017 Win64 "
# 32-bit
cmake -Bbuild32 -G " Visual Studio 15 2017 "
要在Mac上构建脂肪二进制,只需将以下CMAKE参数添加到您的初始CMake运行中:
-D"CMAKE_OSX_ARCHITECTURES=arm64;x86_64"
SUBRE XT在64位Raspberry Pi操作系统上本地建立。安装您的编译器工具链并运行标准CMAKE命令。 Suger XT不会在32位Raspberry Pi系统上构建,而在春季混响和DSP代码中的其他地方出现错误。如果您想解决此问题,请参阅cmakelists.txt中的评论或在我们的Discord或github上放下一行。
但是,截至2023年6月,在某些发行版中,海湾合作委员会有一个明显的错误,该错误产生了一个奇异的警告,我们会宣传这一错误。我们发现Sprive XT用gcc (Debian 10.2.1-6) 10.2.1 20210110
汇总,但与他人没有。浪涌XT还用Clang 11编译。所讨论的错误采用形式:
/home/pi/Documents/github/surge/libs/sst/sst-filters/include/sst/filters/QuadFilterUnit_Impl.h:539:26: error: requested alignment 16 is larger than 8 [-Werror=attributes]
int DTi alignas(16)[4], SEi alignas(16)[4];
如果您发现该错误并正在处理RPI,则您的选择是:
用clang构建:
sudo apt install clang
cmake -Bignore/s13clang -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
cmake --build ignore/s13clang --target surge-xt_Standalone --parallel 3
要跨编译AARCH64,请使用Aarch64的CMake Linux工具链,如Azure Pipeline所示:
cmake -Bignore/xc64 -DCMAKE_TOOLCHAIN_FILE=cmake/linux-aarch64-ubuntu-crosscompile-toolchain.cmake -DCMAKE_BUILD_TYPE=DEBUG -GNinja
cmake --build ignore/xc64 --config Debug --target surge-testrunner
当然,该工具链做出具体选择。您可以做出其他选择,只要(1)您设置CMAKE变量LINUX_ON_ARM
,并且(2)您确保主机和目标编译器均为64位。
来自Linux和BSD的MACOS Intel的激增XT交叉编译。
build_compiler_rt.sh
构建的libclang_rt
库。 cmake -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-apple-darwin20.4-clang.cmake -DCMAKE_FIND_ROOT_PATH=<path_to_osxcross_sdk> -Bbuild
cmake --build build
该存储库中的每个版本的振荡都有1.6 beta 6左右的分支。只需检查一下并阅读关联的读数即可。
您需要安装以下内容:
要在MacOS上构建,您需要Xcode
, Xcode Command Line Utilities
和CMAKE。从应用商店安装Xcode
后,安装Xcode Command Line Utilities
命令行是:
xcode-select --install
有多种安装CMAKE的方法。如果您使用自制者,则可以:
brew install cmake
大多数Linux系统都安装了CMAKE,GIT和现代C ++编译器。确保您的工作。我们对大多数7岁左右的大多数海湾合作委员会进行测试,并在9或10之后进行叮当声。您还需要安装一组依赖项。如果您使用apt
,请这样做:
sudo apt install build-essential libcairo-dev libxkbcommon-x11-dev libxkbcommon-dev libxcb-cursor-dev libxcb-keysyms1-dev libxcb-util-dev libxrandr-dev libxinerama-dev libxcursor-dev libasound2-dev libjack-jackd2-dev
您可以在本文档中找到有关Linux和其他类似Unix的发行版的更多信息。
除了上面的构建命令外,我们还使用Azure管道进行连续集成。这意味着每个拉的请求都将在我们所有的环境中自动构建,并且在所有平台上的干净构建都是明显的先决条件。如果您对我们的CI工具有疑问,请随时在我们的Discord服务器上询问。我们感谢Microsoft免费为开源社区提供Azure管道!