Если вы музыкант, хотите использовать Surge XT, пожалуйста, загрузите соответствующий двоичный файл с нашего веб -сайта. Команда Surge Synth выполняет регулярные релизы для всех поддерживаемых платформ.
CI: релиз: релиз-ST:
Surge XT-это бесплатный гибридный синтезатор с открытым исходным кодом, первоначально написанный и продаваемый в качестве коммерческого продукта @Kurasu/Claes Johanson в Vember Audio. В сентябре 2018 года Claes решил выпустить частично завершенную версию Surge 1.6 под GPL3, и с тех пор группа разработчиков улучшает ее. Вы можете узнать больше о команде по адресу https://surge-synth-team.org/ или связаться с нами на Discord.
Если вы также хотите принять участие в обсуждениях, тестировании и разработке Surge XT, у нас есть подробности ниже, а также в разделе участников веб -сайта Surge XT.
Это чтение служит корнем документации разработчика для Surge XT.
Мы приветствуем разработчиков! Наш рабочий процесс вращается вокруг проблем GitHub в этом репозитории и разговорах на нашем сервере Discord. Вы можете прочитать наши руководящие принципы разработчика в нашем документе «Руководство разработчика». Если вы хотите внести свой вклад и новичок в GIT, у нас также есть Git, как это сделать в Durge XT Development.
Руководство по разработчике также содержит информацию о тестировании и отладке, в частности, хостов на определенных платформах.
Surge XT использует CMAKE для всех своих задач, связанных с сборкой и требует набора бесплатных инструментов для создания синтезатора. Если у вас установлена среда разработки, у вас почти наверняка есть то, что вам нужно, но если нет, пожалуйста, проверьте:
После того, как вы установите свою среду, вам нужно проверить код Surge XT с помощью GIT, взять подмодули, запустить CMAKE для настройки, а затем запустить CMAKE для создания. Ваш IDE может поддерживать CMAKE (подробнее об этом ниже), но надежный способ построить Surge 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
Это построит все бинарные активы Surge XT в build/surge_xt_products
и часто является достаточно формулой, чтобы сделать сборку.
Наш git Как объяснить, как мы используем git. Если вы хотите разработать из своей собственной вилки, пожалуйста, проконсультируйтесь там, но короткая версия - это (1) разветвляется этот проект на Github и (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 Code и многие другие могут правильно работать с программным обеспечением.
Из -за ограничений лицензирования VST2 сборки Surge XT не могут быть перераспределены. Тем не менее, можно построить VST2 Surge XT для вашего личного использования. Во -первых, получите локальную копию 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
Затем у вас будут плагины VST2 в build_vst2/surge-xt_artefacts/Release/VST
и build_vst2/surge-fx_artefacts/Release/VST
соответственно. Отрегулируйте количество ядер, которые будут использоваться для строительного процесса, изменяя значение --parallel
аргумент.
В Windows строительство с Asio часто предпочтительнее для Surge XT Sandalone, поскольку оно позволяет пользователям использовать аудио драйвер с низкой задержкой ASIO.
К сожалению, из -за конфликтов лицензирования, двоичные файлы Surge XT, которые построены с Asio, не могут быть перераспределены. Тем не менее, вы можете построить Surge XT с Asio для вашего личного использования, при условии, что вы не перераспределите эти сборки.
Если у вас уже есть копия ASIO SDK, просто установите следующую переменную среды, и все готово!
set ASIOSDK_DIR=c:pathtoasio
Если у вас нет копии Asio SDK, Cmake может скачать его для вас и позволить вам построить с помощью Asio по вашей личной лицензии. Чтобы включить эту функциональность, запустите команду конфигурации Cmake следующим образом:
cmake -Bbuild -DBUILD_USING_MY_ASIO_LICENSE=True
Surge XT 1.3 Семейные переезды в JUCE 7, который включает в себя поддержку сборки LV2. По разным причинам мы не строим LV2 ни по умолчанию, ни в нашем трубопроводе CI. Вы можете активировать сборку LV2 в вашей среде, добавив -DSURGE_BUILD_LV2=TRUE
на вашу начальную сборку Cmake.
Surge XT использует pybind
, чтобы разоблачить внутренности синтезатора коду Python для прямого нативного доступа ко всем его функциям. Это инструмент, в основном полезный для разработчиков, а репозиторий Surge-Python показывает некоторые применения.
Чтобы использовать Surge 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")
вместо этого, так как путь немного отличается.
Целевой surge-xt-distribution
Cmake строит изображение установки на вашей платформе в конце процесса сборки. На Mac и Linux генератор установщиков встроен в платформу; В Windows наш файл Cmake использует Nuget для загрузки InnoSetup, поэтому вам понадобится CLI Nuget.exe на вашем пути.
У нас есть множество других вариантов Cmake и целей, которые могут легче разрабатывать и устанавливать Surge XT.
Juce поддерживает режим, в котором плагин (AU, VST3 и т. Д.) Скопится в локальную зону установки после сборки. Это по умолчанию с CMake, но вы можете включить его с -DSURGE_COPY_AFTER_BUILD=True
во время cmake
. Если вы сделаете это на Unixes, построение целей VST3 или AU скопирует их в соответствующую локальную область ( ~/.vst3
на Linux, ~/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, используйте флаг -A
в своей команде Cmake, чтобы указать 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:
# 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"
Surge XT строится на 64-битных операционных системах Raspberry Pi. Установите свой компилятор и запустите стандартные команды Cmake. Surge XT не будет построить 32-разрядные системы PI Raspberry Pi, что дает ошибку в Spring Reverb и в других местах в коде DSP. Если вы хотите поработать над исправлением, см. Комментарий на cmakelists.txt или бросьте нам линию на нашем разногласий или GitHub.
Тем не менее, по состоянию на июнь 2023 года GCC в некоторых распределениях имеет очевидную ошибку, которая генерирует искреннее предупреждение, которое мы продвигаем до ошибки. Мы обнаружили, что Surge XT компилируется чистыми с помощью gcc (Debian 10.2.1-6) 10.2.1 20210110
, но не с другими. Surge 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, ваши варианты:
Построить с кланг:
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 используйте инструмент Cmake Linux для AARCH64, как показано в конвейере Azure здесь:
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-битными.
Surge XT Кросс-Компиляции в MacOS Intel от Linux и BSD.
libclang_rt
, созданную их скриптом build_compiler_rt.sh
. cmake -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-apple-darwin20.4-clang.cmake -DCMAKE_FIND_ROOT_PATH=<path_to_osxcross_sdk> -Bbuild
cmake --build build
Каждая версия Surge от 1.6 Beta 6 или около того имеет ветвь в этом репозитории. Просто проверьте это и прочитайте соответствующую Readme.
Вам нужно установить следующее:
Чтобы построить MacOS, вам нужны Xcode Command Line Utilities
Xcode
и CMAKE. После установки Xcode
из App Store командная строка для установки Xcode Command Line Utilities
:
xcode-select --install
Существует множество способов установить Cmake. Если вы используете Homebrew, вы можете:
brew install cmake
В большинстве систем Linux установлены Cmake, GIT и современный компилятор C ++. Убедитесь, что ваш. Мы тестируем с большинством GCC старше 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
Вы можете найти больше информации о Surge XT на Linux и других дистрибуциях Unix в этом документе.
В дополнение к вышеуказанным командам сборки, мы используем Azure Tipelines для непрерывной интеграции. Это означает, что каждый запрос на притяжение будет автоматически построен по всей нашей среде, а чистая сборка на всех платформах является очевидным предварительным условием. Если у вас есть вопросы о наших инструментах CI, не стесняйтесь спрашивать на нашем сервере Discord. Мы благодарны Microsoft за предоставление Azure Tipвей бесплатно сообществу с открытым исходным кодом!