Jika Anda seorang musisi yang ingin menggunakan Surge XT, silakan unduh biner yang sesuai dari situs web kami. Surge Synth Team membuat rilis reguler untuk semua platform yang didukung.
CI: rilis: rilis-x:
Surge XT adalah synthesizer hibrida yang gratis dan open-source, yang awalnya ditulis dan dijual sebagai produk komersial oleh @Kurasu/Claes Johanson di Vember Audio. Pada bulan September 2018, Claes memutuskan untuk merilis versi Surge 1.6 yang diselesaikan sebagian di bawah GPL3, dan sekelompok pengembang telah memperbaikinya sejak itu. Anda dapat mempelajari lebih lanjut tentang tim di https://surge-synth-team.org/ atau terhubung dengan kami di perselisihan.
Jika Anda juga ingin berpartisipasi dalam diskusi, pengujian, dan desain Surge XT, kami memiliki detail di bawah ini dan juga di bagian kontributor dari situs web Surge XT.
Readme ini berfungsi sebagai akar dokumentasi pengembang untuk Surge XT.
Kami menyambut pengembang! Alur kerja kami berkisar pada masalah GitHub dalam repositori dan percakapan ini di server Discord kami. Anda dapat membaca pedoman pengembang kami di dokumen Panduan Pengembang kami. Jika Anda ingin berkontribusi dan baru di GIT, kami juga memiliki git bagaimana caranya, dirancang untuk pengembangan SURGE XT.
Panduan pengembang juga berisi informasi tentang pengujian dan debugging di host tertentu pada platform tertentu.
Surge XT menggunakan cmake untuk semua tugas yang berhubungan dengan build, dan membutuhkan satu set alat gratis untuk membangun synth. Jika Anda memiliki lingkungan pengembangan, Anda hampir pasti memiliki apa yang Anda butuhkan, tetapi jika tidak, silakan periksa:
Setelah mengatur lingkungan Anda, Anda perlu memeriksa kode SURGE XT dengan git, ambil submodul, jalankan cmake untuk mengkonfigurasi, lalu jalankan cmake untuk membangun. IDE Anda dapat mendukung CMake (lebih lanjut tentang itu di bawah), tetapi cara yang dapat diandalkan untuk membangun Surge XT di semua platform adalah:
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
Ini akan membangun semua aset biner SURGE di direktori build/surge_xt_products
dan seringkali cukup dari formula untuk melakukan bangunan.
Git kami bagaimana menjelaskan bagaimana kami menggunakan git. Jika Anda ingin mengembangkan dari garpu Anda sendiri, silakan berkonsultasi di sana, tetapi versi pendeknya adalah (1) garpu proyek ini di GitHub dan (2) mengkloning garpu Anda, daripada repo utama seperti dijelaskan di atas. Jadi tekan tombol Fork
di sini dan kemudian:
git clone [email protected]:youruserid/surge.git
dan sisa langkah tidak berubah.
Saat Anda menjalankan langkah CMake pertama, CMake akan menghasilkan file yang kompatibel dengan IDE untuk Anda. Di Windows, itu akan menghasilkan file Visual Studio. Di Mac itu akan menghasilkan makefiles secara default, tetapi jika Anda menambahkan argumen -GXcode
Anda bisa mendapatkan proyek XCode jika Anda mau.
Surge XT pengembang secara teratur mengembangkan dengan segala macam alat. Clion, Visual Studio, Vim, Emacs, VS Code, dan banyak lainnya dapat bekerja dengan baik dengan perangkat lunak.
Karena pembatasan lisensi, VST2 membangun Surge XT mungkin tidak didistribusikan kembali. Namun, dimungkinkan untuk membangun VST2 Surge XT untuk penggunaan pribadi Anda. Pertama, dapatkan salinan lokal VST2 SDK, dan unzip ke folder pilihan Anda. Kemudian atur VST2SDK_DIR
untuk menunjuk ke folder itu:
export VST2SDK_DIR="/your/path/to/VST2SDK"
Atau, di prompt perintah windows:
set VST2SDK_DIR=c:pathtoVST2SDK
Akhirnya, jalankan CMake lagi dan bangun target 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
Anda kemudian akan memiliki plugin VST2 di build_vst2/surge-xt_artefacts/Release/VST
dan build_vst2/surge-fx_artefacts/Release/VST
masing-masing. Sesuaikan jumlah core yang akan digunakan untuk proses pembangunan dengan memodifikasi nilai -argumen --parallel
.
Di Windows, membangun dengan ASIO sering lebih disukai untuk Surge XT Standalone, karena memungkinkan pengguna untuk menggunakan driver audio latensi rendah ASIO.
Sayangnya, karena konflik lisensi, binari Surge XT yang dibangun dengan ASIO mungkin tidak didistribusikan kembali. Namun, Anda dapat membangun Surge XT dengan ASIO untuk penggunaan pribadi Anda sendiri, asalkan Anda tidak mendistribusikan kembali bangunan itu.
Jika Anda sudah memiliki salinan ASIO SDK, cukup atur variabel lingkungan berikut dan Anda siap melakukannya!
set ASIOSDK_DIR=c:pathtoasio
Jika Anda tidak memiliki salinan ASIO SDK, CMake dapat mengunduhnya untuk Anda, dan memungkinkan Anda untuk membangun dengan ASIO di bawah lisensi pribadi Anda. Untuk mengaktifkan fungsi ini, jalankan perintah konfigurasi cmake Anda sebagai berikut:
cmake -Bbuild -DBUILD_USING_MY_ASIO_LICENSE=True
Surge XT 1.3 Keluarga pindah ke JUCE 7, yang mencakup dukungan untuk LV2 Builds. Karena berbagai alasan kami tidak membangun LV2 baik secara default atau dalam pipa CI kami. Anda dapat mengaktifkan build LV2 di lingkungan Anda dengan menambahkan -DSURGE_BUILD_LV2=TRUE
pada build CMake awal Anda.
Surge XT menggunakan pybind
untuk mengekspos jeroan synth ke kode python untuk akses asli langsung ke semua fiturnya. Ini adalah alat yang sebagian besar berguna bagi pengembang, dan repositori Surge-Python menunjukkan beberapa kegunaan.
Untuk menggunakan Surge XT dengan cara ini, Anda perlu membangun ekstensi Python. Begini caranya (ini menunjukkan hasilnya di Mac, tetapi Windows dan Linux serupa).
Pertama, konfigurasikan build dengan binding python diaktifkan:
cmake -Bignore/bpy -DSURGE_BUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release
Perhatikan Direktori ignore/bpy
bisa jadi apa pun yang Anda inginkan. Direktori ignore
itu berguna, karena diabaikan melalui .gitignore
.
Kemudian bangun plugin Python:
cmake --build ignore/bpy --parallel --target surgepy
yang seharusnya menghasilkan python .dll hadir:
% ls ignore/bpy/src/surge-python/ * so
ignore/bpy/src/surge-python/surgepy.cpython-311-darwin.so
Di Windows, cari file .pyd
sebagai gantinya:
ls ignore/bpy/src/surge-python/Debug/ * pyd
Dan Anda akan melihat file seperti surgepy.cp312-win_amd64.pyd
Sekarang Anda akhirnya bisa memulai Python untuk memuatnya. Berikut adalah contoh sesi interaktif, tetapi akan bekerja sama dalam alat pilihan Anda:
% 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 ()
Di Windows, jalankan sys.path.append("ignore/bpy/src/surge-python/Debug")
sebagai gantinya, karena jalurnya sedikit berbeda.
surge-xt-distribution
Target CMake membangun gambar instal di platform Anda di akhir proses pembuatan. Di Mac dan Linux, generator installer dibangun ke dalam platform; Di Windows, file CMake kami menggunakan Nuget untuk mengunduh InnoSetup, jadi Anda akan memerlukan nuget.exe CLI di jalur Anda.
Kami memiliki berbagai opsi dan target CMake lainnya yang dapat memungkinkan Anda untuk mengembangkan dan menginstal Surge XT lebih mudah.
JUCE mendukung mode di mana plugin (AU, VST3, dll ...) disalin ke area instalasi lokal setelah build. Ini tidak aktif secara default dengan cmake, tetapi Anda dapat menyalakannya dengan -DSURGE_COPY_AFTER_BUILD=True
pada waktu cmake
. Jika Anda melakukan ini di Unixes, membangun target VST3 atau AU akan menyalinnya ke area lokal yang sesuai ( ~/.vst3
di Linux, ~/Library/Audio/Plugins
di Mac). Pada Windows akan mencoba menginstal VST3, jadi mengatur opsi ini mungkin memerlukan hak istimewa administrator di lingkungan build Anda.
Pada sistem yang bukan UNIX AND NOT APPLE
, file CMake menyediakan target instalasi yang akan menginstal semua aset yang diperlukan ke CMAKE_INSTALL_PREFIX
. Ini berarti instalasi lengkap dapat dicapai dengan:
cmake -Bignore/sxt -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build ignore/sxt --config Release --parallel 8
sudo cmake --install ignore/sxt
Dan Anda harus mendapatkan pemasangan yang berfungsi di /usr/bin
, /usr/share
dan /usr/lib
.
Jika Anda membangun dengan Visual Studio 2019, gunakan bendera -A
dalam perintah cmake Anda untuk menentukan 32/64 -bit:
# 64-bit
cmake -Bbuild -G " Visual Studio 16 2019 " -A x64
# 32-bit
cmake -Bbuild32 -G " Visual Studio 16 2019 " -A Win32
Jika Anda menggunakan versi Visual Studio yang lebih lama, Anda harus menentukan preferensi Anda dengan pilihan CMake Generator: Anda:
# 64-bit
cmake -Bbuild -G " Visual Studio 15 2017 Win64 "
# 32-bit
cmake -Bbuild32 -G " Visual Studio 15 2017 "
Untuk membangun biner lemak di Mac, cukup tambahkan argumen CMake berikut ke CMake Run awal Anda:
-D"CMAKE_OSX_ARCHITECTURES=arm64;x86_64"
Surge XT dibangun secara asli di atas sistem operasi Raspberry Pi 64-bit. Instal Compiler Toolchain Anda dan jalankan perintah CMake standar. Surge XT tidak akan membangun sistem Raspberry PI 32-bit, memberikan kesalahan dalam Spring Reverb dan di tempat lain dalam kode DSP. Jika Anda ingin bekerja untuk memperbaiki ini, lihat komentar di cmakelists.txt atau kirimkan kami garis pada perselisihan atau github kami.
Namun, pada Juni 2023, GCC dalam beberapa distribusi memiliki bug yang jelas yang menghasilkan peringatan yang jelas yang kami promosikan untuk kesalahan. Kami menemukan Surge XT mengkompilasi dengan bersih dengan gcc (Debian 10.2.1-6) 10.2.1 20210110
, tetapi tidak dengan yang lain. Surge XT juga mengkompilasi dengan dentang 11. Kesalahan yang dimaksud mengambil formulir:
/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];
Jika Anda mendapatkan kesalahan itu dan sedang mengerjakan RPI, opsi Anda adalah:
Untuk membangun dengan dentang:
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
Untuk mengkompilasi silang untuk Aarch64, gunakan cmake linux toolchain untuk aarch64, seperti yang ditunjukkan dalam pipa azure di sini:
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
Tentu saja, toolchain itu membuat pilihan spesifik. Anda dapat membuat pilihan lain selama (1) Anda mengatur variabel cmake LINUX_ON_ARM
dan (2) Anda memastikan host dan kompiler target Anda sama-sama 64-bit.
Surge XT Cross-Compiles ke MacOS Intel dari Linux dan BSD.
libclang_rt
yang dibangun oleh skrip build_compiler_rt.sh
mereka. cmake -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-apple-darwin20.4-clang.cmake -DCMAKE_FIND_ROOT_PATH=<path_to_osxcross_sdk> -Bbuild
cmake --build build
Setiap versi lonjakan dari 1,6 beta 6 atau lebih memiliki cabang di repositori ini. Lihat saja dan baca readme yang terkait.
Anda perlu menginstal yang berikut:
Untuk membangun macOS, Anda memerlukan Xcode Command Line Utilities
Xcode
, xcode, dan cmake. Setelah Anda menginstal Xcode
dari App Store, baris perintah untuk menginstal Xcode Command Line Utilities
adalah:
xcode-select --install
Ada berbagai cara untuk menginstal CMake. Jika Anda menggunakan Homebrew, Anda dapat:
brew install cmake
Sebagian besar sistem Linux memiliki cmake, git, dan kompiler C ++ modern yang terpasang. Pastikan milik Anda. Kami menguji dengan sebagian besar GCC lebih tua dari 7 atau lebih dan dentang setelah 9 atau 10. Anda juga perlu menginstal satu set dependensi. Jika Anda menggunakan apt
, lakukan:
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
Anda dapat menemukan info lebih lanjut tentang Surge XT di Linux dan distro seperti Unix lainnya dalam dokumen ini.
Selain perintah build di atas, kami menggunakan saluran pipa Azure untuk integrasi berkelanjutan. Ini berarti bahwa setiap permintaan tarikan akan secara otomatis dibangun di seluruh lingkungan kita, dan bangunan bersih di semua platform adalah prasyarat yang jelas. Jika Anda memiliki pertanyaan tentang alat CI kami, jangan ragu untuk bertanya di server Perselisihan kami. Kami berterima kasih kepada Microsoft karena menyediakan saluran pipa Azure secara gratis ke komunitas open-source!