Si vous êtes un musicien qui cherche à utiliser Surge XT, veuillez télécharger le binaire approprié à partir de notre site Web. L'équipe de synthés de surtension fait des versions régulières pour toutes les plateformes prises en charge.
CI: Release: Release-x:
Surge XT est un synthétiseur hybride gratuit et open-source, à l'origine écrit et vendu en tant que produit commercial par @ Kurasu / Claes Johanson au Vember Audio. En septembre 2018, les CLA ont décidé de publier une version partiellement terminée de Surge 1.6 sous GPL3, et un groupe de développeurs l'améliore depuis. Vous pouvez en savoir plus sur l'équipe de https://surge-syth-team.org/ ou se connecter avec nous sur Discord.
Si vous souhaitez également participer aux discussions, aux tests et à la conception de Surge XT, nous avons des détails ci-dessous et également dans la section Contributeurs du site Web Surge XT.
Cette lecture sert à la racine de la documentation du développeur de Surge XT.
Nous accueillons les développeurs! Notre flux de travail tourne autour des problèmes GitHub dans ce référentiel et des conversations sur notre serveur Discord. Vous pouvez lire nos directives de développeur dans notre document de guide des développeurs. Si vous souhaitez contribuer et que vous êtes nouveau dans GIT, nous avons également un comment, adapté à Surge XT Development.
Le Guide du développeur contient également des informations sur les tests et le débogage en particulier les hôtes sur des plateformes particulières.
Surge XT utilise CMake pour toutes ses tâches liées à la construction et nécessite un ensemble d'outils gratuits pour construire le synthé. Si vous avez un environnement de développement configuré, vous avez presque certainement ce dont vous avez besoin, mais sinon, veuillez consulter:
Une fois que vous avez configuré votre environnement, vous devez vérifier le code Surge XT avec Git, saisir des sous-modules, exécuter CMake pour configurer, puis exécuter CMake pour construire. Votre IDE peut prendre en charge CMake (plus à ce sujet ci-dessous), mais un moyen fiable de créer une surtension XT sur toutes les plates-formes est:
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
Cela construira tous les actifs binaires de Surge XT dans la build/surge_xt_products
et est souvent suffisant pour faire une construction.
Notre git comment expliquer comment nous utilisons Git. Si vous souhaitez vous développer à partir de votre propre fourche, veuillez y consulter, mais la version courte est (1) Fork ce projet sur GitHub et (2) clone de votre fourche, plutôt que le référentiel principal comme décrit ci-dessus. Alors appuyez sur le bouton Fork
ici et ensuite:
git clone [email protected]:youruserid/surge.git
Et le reste des étapes est inchangé.
Lorsque vous exécutez la première étape CMake, CMake générera des fichiers compatibles IDE pour vous. Sur Windows, il générera des fichiers Visual Studio. Sur Mac, il générera des makefiles par défaut, mais si vous ajoutez l'argument -GXcode
vous pouvez obtenir un projet XCode si vous le souhaitez.
Les développeurs Surge XT se développent régulièrement avec toutes sortes d'outils. Clion, Visual Studio, VIM, EMACS, VS Code, et bien d'autres peuvent travailler correctement avec le logiciel.
En raison des restrictions de licence, les constructions VST2 de Surge XT peuvent ne pas être redistribuées. Cependant, il est possible de construire un VST2 de Surge XT pour votre usage personnel. Tout d'abord, obtenez une copie locale du SDK VST2 et décompressez-la dans un dossier de votre choix. Définissez ensuite VST2SDK_DIR
pour pointer vers ce dossier:
export VST2SDK_DIR="/your/path/to/VST2SDK"
ou, dans l'invite de commande Windows:
set VST2SDK_DIR=c:pathtoVST2SDK
Enfin, exécutez à nouveau Cmake et construisez les cibles 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
Vous aurez ensuite des plugins VST2 dans build_vst2/surge-xt_artefacts/Release/VST
et build_vst2/surge-fx_artefacts/Release/VST
respectivement. Ajustez le nombre de noyaux qui seront utilisés pour la construction du processus en modifiant la valeur de l'argument --parallel
.
Sur Windows, la construction avec ASIO est souvent préférée pour la surtension XT autonome, car elle permet aux utilisateurs d'utiliser le pilote audio à faible latence ASIO.
Malheureusement, en raison des conflits de licence, les binaires de Surge XT construits avec ASIO peuvent ne pas être redistribués. Cependant, vous pouvez construire une surtension XT avec ASIO pour votre usage personnel, à condition que vous ne redistribuez pas ces versions.
Si vous avez déjà une copie du SDK ASIO, définissez simplement la variable d'environnement suivante et que vous êtes prêt à partir!
set ASIOSDK_DIR=c:pathtoasio
Si vous n'avez pas de copie du SDK ASIO à portée de main, CMake peut le télécharger pour vous et vous permettre de construire avec ASIO sous votre propre licence personnelle. Pour activer cette fonctionnalité, exécutez votre commande de configuration CMake comme suit:
cmake -Bbuild -DBUILD_USING_MY_ASIO_LICENSE=True
Surge XT 1.3 La famille se déplace vers Juce 7, qui comprend le soutien des constructions LV2. Pour diverses raisons, nous ne construisons pas LV2 par défaut ou dans notre pipeline CI. Vous pouvez activer la construction LV2 dans votre environnement en ajoutant -DSURGE_BUILD_LV2=TRUE
sur votre version CMake initiale.
Surge XT utilise pybind
pour exposer les entrailles du synthé à Python pour un accès indigène direct à toutes ses fonctionnalités. Il s'agit d'un outil principalement utile pour les développeurs, et le référentiel Surge-Python affiche certaines utilisations.
Pour utiliser Surge XT de cette manière, vous devez construire l'extension Python. Voici comment (cela montre le résultat sur Mac, mais Windows et Linux sont similaires).
Tout d'abord, configurez une version avec des liaisons Python activées:
cmake -Bignore/bpy -DSURGE_BUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release
Remarque Le répertoire ignore/bpy
pourrait être tout ce que vous voulez. Le répertoire ignore
est pratique, car il est ignoré via .gitignore
.
Créez ensuite le plugin Python:
cmake --build ignore/bpy --parallel --target surgepy
ce qui devrait entraîner la présence du python .dll:
% ls ignore/bpy/src/surge-python/ * so
ignore/bpy/src/surge-python/surgepy.cpython-311-darwin.so
Sur Windows, recherchez plutôt le fichier .pyd
:
ls ignore/bpy/src/surge-python/Debug/ * pyd
Et vous devriez voir un fichier comme surgepy.cp312-win_amd64.pyd
Maintenant, vous pouvez enfin démarrer Python pour le charger. Voici un exemple de session interactive, mais cela fonctionnera de la même manière dans l'outil de votre choix:
% 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 ()
Sur Windows, exécutez sys.path.append("ignore/bpy/src/surge-python/Debug")
à la place, car le chemin est légèrement différent.
Le CMake Target surge-xt-distribution
construit une image d'installation sur votre plate-forme à la fin du processus de construction. Sur Mac et Linux, le générateur d'installation est intégré à la plate-forme; Sur Windows, notre fichier CMake utilise NuGet pour télécharger Innosetup, vous aurez donc besoin de la CLI Nuget.exe dans votre chemin.
Nous avons une variété d'autres options et cibles CMake qui peuvent vous permettre de développer et d'installer une surtension plus facilement.
Juce prend en charge un mode où un plugin (Au, Vst3, etc ...) est copié dans une zone d'installation locale après une construction. Ceci est désactivé par défaut avec CMake, mais vous pouvez l'activer avec -DSURGE_COPY_AFTER_BUILD=True
au moment de cmake
. Si vous faites cela sur Unixes, la construction des cibles VST3 ou AU les copiera dans la zone locale appropriée ( ~/.vst3
sur Linux, ~/Library/Audio/Plugins
sur Mac). Sur Windows, il tentera d'installer le VST3, donc la définition de cette option peut nécessiter des privilèges d'administrateur dans votre environnement de construction.
Sur les systèmes qui sont UNIX AND NOT APPLE
, le fichier CMake fournit une cible d'installation qui installera tous les actifs nécessaires au CMAKE_INSTALL_PREFIX
. Cela signifie qu'une installation complète peut être accomplie par:
cmake -Bignore/sxt -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build ignore/sxt --config Release --parallel 8
sudo cmake --install ignore/sxt
Et vous devriez obtenir une installation de travail dans /usr/bin
, /usr/share
et /usr/lib
.
Si vous construisez avec Visual Studio 2019, utilisez l'indicateur -A
dans votre commande CMake pour spécifier 32/64 bits:
# 64-bit
cmake -Bbuild -G " Visual Studio 16 2019 " -A x64
# 32-bit
cmake -Bbuild32 -G " Visual Studio 16 2019 " -A Win32
Si vous utilisez une ancienne version de Visual Studio, vous devez spécifier votre préférence avec votre choix de générateur CMake:
# 64-bit
cmake -Bbuild -G " Visual Studio 15 2017 Win64 "
# 32-bit
cmake -Bbuild32 -G " Visual Studio 15 2017 "
Pour construire un binaire gras sur un Mac, ajoutez simplement l'argument Cmake suivant à votre course Cmake initiale:
-D"CMAKE_OSX_ARCHITECTURES=arm64;x86_64"
La surtension XT se construit nativement sur des systèmes d'exploitation Raspberry Pi 64 bits. Installez votre chaîne d'outils de compilateur et exécutez les commandes CMake standard. Surge XT ne s'appuiera pas sur les systèmes Raspberry PI 32 bits, donnant une erreur dans la réverbération à ressort et ailleurs dans le code DSP. Si vous souhaitez travailler sur la réparation de ceci, consultez le commentaire sur cMakelists.txt ou envoyez-nous une ligne sur notre discorde ou github.
En juin 2023, cependant, GCC dans certaines distributions a un bug apparent qui génère un avertissement spécieux que nous faisons promouvoir une erreur. Nous avons trouvé que la surtension XT compile proprement avec gcc (Debian 10.2.1-6) 10.2.1 20210110
, mais pas avec d'autres. La surtension XT compile également avec Clang 11. L'erreur en question prend la forme:
/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];
Si vous obtenez cette erreur et travaille sur RPI, vos options sont:
Pour construire avec 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
Pour transformer Cross-Compile pour AARCH64, utilisez la chaîne d'outils CMake Linux pour AARCH64, comme indiqué dans le pipeline Azure ici:
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
Bien sûr, cette chaîne d'outils fait des choix spécifiques. Vous pouvez faire d'autres choix tant que (1) vous définissez la variable CMake LINUX_ON_ARM
et (2) vous vous assurez que votre hôte et votre compilateur cible sont tous deux 64 bits.
Surgez XT-compiles à MacOS Intel de Linux et BSD.
libclang_rt
construite par leur script 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
Chaque version de la surtension de 1,6 bêta 6 a environ une branche dans ce référentiel. Vérifiez-le et lisez la lecture associée.
Vous devez installer ce qui suit:
Pour construire sur macOS, vous avez besoin de Xcode
, Xcode Command Line Utilities
et CMake. Une fois que vous avez installé Xcode
à partir de l'App Store, la ligne de commande pour installer les Xcode Command Line Utilities
est:
xcode-select --install
Il existe une variété de façons d'installer Cmake. Si vous utilisez Homebrew, vous pouvez:
brew install cmake
La plupart des systèmes Linux ont CMake, Git et un compilateur C ++ moderne installé. Assurez-vous que le vôtre le fait. Nous testons avec la plupart des GCC de plus de 7 ans environ et des clangs après 9 ou 10. Vous devrez également installer un ensemble de dépendances. Si vous utilisez apt
, faites:
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
Vous pouvez trouver plus d'informations sur la surtension XT sur Linux et d'autres distros de type Unix dans ce document.
En plus des commandes de construction ci-dessus, nous utilisons des pipelines Azure pour une intégration continue. Cela signifie que chaque demande de traction sera automatiquement construite dans tout notre environnement, et une construction propre sur toutes les plates-formes est une pré-requise évidente. Si vous avez des questions sur nos outils CI, n'hésitez pas à demander sur notre serveur Discord. Nous sommes reconnaissants à Microsoft d'avoir fourni des pipelines Azure gratuitement à la communauté open source!