หากคุณเป็นนักดนตรีที่ต้องการใช้ Surge XT โปรดดาวน์โหลดไบนารีที่เหมาะสมจากเว็บไซต์ของเรา ทีม Sirge Synth ทำให้การเปิดตัวเป็นประจำสำหรับแพลตฟอร์มที่รองรับทั้งหมด
CI: Release: release-xt:
Surge XT เป็นไฮบริดซินธิไซเซอร์แบบฟรีและโอเพนซอร์ซซึ่งเดิมเขียนและขายเป็นผลิตภัณฑ์เชิงพาณิชย์โดย @Kurasu/Claes Johanson ที่ Vember Audio ในเดือนกันยายน 2561 CLAES ตัดสินใจที่จะเปิดตัว Surge 1.6 รุ่นที่เสร็จสมบูรณ์บางส่วนภายใต้ GPL3 และกลุ่มนักพัฒนาได้ปรับปรุงมาตั้งแต่นั้นมา คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับทีมได้ที่ https://surge-synth-team.org/ หรือเชื่อมต่อกับเราใน Discord
หากคุณต้องการมีส่วนร่วมในการอภิปรายการทดสอบและการออกแบบของ Surge XT เรามีรายละเอียดด้านล่างและในส่วนผู้มีส่วนร่วมของเว็บไซต์ Surge XT
readme นี้ทำหน้าที่เป็นรากของเอกสารนักพัฒนาสำหรับ Surge XT
เรายินดีต้อนรับนักพัฒนา! เวิร์กโฟลว์ของเราหมุนรอบปัญหา GitHub ในที่เก็บและการสนทนาที่เซิร์ฟเวอร์ Discord ของเรา คุณสามารถอ่านแนวทางนักพัฒนาของเราในเอกสารคู่มือนักพัฒนาของเรา หากคุณต้องการมีส่วนร่วมและใหม่กับ Git เรายังมีวิธีการปรับแต่งที่การพัฒนา Surge XT
คู่มือนักพัฒนายังมีข้อมูลเกี่ยวกับการทดสอบและการดีบักในโฮสต์เฉพาะบนแพลตฟอร์มเฉพาะ
Surge XT ใช้ CMAKE สำหรับงานที่เกี่ยวข้องกับการสร้างทั้งหมดและต้องใช้ชุดเครื่องมือฟรีในการสร้าง synth หากคุณมีสภาพแวดล้อมการพัฒนาคุณเกือบจะมีสิ่งที่คุณต้องการ แต่ถ้าไม่โปรดตรวจสอบ:
เมื่อคุณตั้งค่าสภาพแวดล้อมแล้วคุณจะต้องชำระเงินรหัส Surge XT ด้วย Git คว้า submodules เรียกใช้ 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 หากคุณต้องการพัฒนาจากส้อมของคุณเองโปรดปรึกษาที่นั่น แต่เวอร์ชันสั้นคือ (1) ส้อมโครงการนี้ใน GitHub และ (2) โคลนส้อมของคุณแทนที่จะเป็น repo หลักตามที่อธิบายไว้ข้างต้น ดังนั้นกดปุ่ม 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 Builds of 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 แบบสแตนด์อโลนเนื่องจากช่วยให้ผู้ใช้สามารถใช้ไดรเวอร์เสียง ASIO ต่ำ
น่าเสียดายที่เนื่องจากความขัดแย้งในการออกใบอนุญาตไบนารีของ Surge XT ที่สร้างขึ้นด้วย ASIO อาจไม่ สามารถแจกจ่ายซ้ำได้ อย่างไรก็ตามคุณสามารถสร้าง Surge XT ด้วย ASIO เพื่อการใช้งานส่วนตัวของคุณเองหากคุณไม่ได้แจกจ่ายการสร้างเหล่านั้นอีกครั้ง
หากคุณมีสำเนา ASIO SDK อยู่แล้วเพียงตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้และคุณก็พร้อมที่จะไป!
set ASIOSDK_DIR=c:pathtoasio
หากคุณไม่มีสำเนา ASIO SDK ในมือ CMAKE สามารถดาวน์โหลดให้คุณและอนุญาตให้คุณสร้างด้วย ASIO ภายใต้ใบอนุญาตส่วนตัวของคุณเอง ในการเปิดใช้งานฟังก์ชั่นนี้ให้เรียกใช้คำสั่ง cmake configuration ของคุณดังนี้:
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
เพื่อเปิดเผยอวัยวะภายในของรหัส synth to 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")
แทนเนื่องจากเส้นทางแตกต่างกันเล็กน้อย
CMAKE Target surge-xt-distribution
สร้างภาพการติดตั้งบนแพลตฟอร์มของคุณเมื่อสิ้นสุดกระบวนการสร้าง บน Mac และ Linux เครื่องกำเนิดของตัวติดตั้งจะถูกสร้างขึ้นในแพลตฟอร์ม บน Windows ไฟล์ CMake ของเราใช้ NUGET เพื่อดาวน์โหลด InnosetUp ดังนั้นคุณจะต้องใช้ nuget.exe CLI ในเส้นทางของคุณ
เรามีตัวเลือกและเป้าหมาย 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
Flag ในคำสั่ง 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 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"
Surge XT สร้างขึ้นโดยใช้ระบบปฏิบัติการ Raspberry PI 64 บิต ติดตั้ง Compiler Toolchain ของคุณและเรียกใช้คำสั่ง cmake มาตรฐาน Surge XT จะ ไม่ สร้างบนระบบ Raspberry PI 32 บิตทำให้เกิดข้อผิดพลาดใน Spring Reverb และที่อื่น ๆ ในรหัส DSP หากคุณต้องการแก้ไขสิ่งนี้ให้ดูความคิดเห็นใน cmakelists.txt หรือวางสายบนความไม่ลงรอยกันหรือ GitHub ของเรา
เมื่อวันที่มิถุนายน 2566, 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
ในการแข่งขันข้าม ARCH64 ให้ใช้ CMAKE LINUX Toolchain สำหรับ 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
, Xcode Command Line Utilities
และ CMAKE เมื่อคุณติดตั้ง Xcode
จาก App Store บรรทัดคำสั่งเพื่อติดตั้ง Xcode Command Line Utilities
คือ:
xcode-select --install
มีหลายวิธีในการติดตั้ง cmake หากคุณใช้ homebrew คุณสามารถ:
brew install cmake
ระบบ Linux ส่วนใหญ่มี CMake, Git และคอมไพเลอร์ C ++ ที่ทันสมัย ตรวจสอบให้แน่ใจว่าคุณทำ เราทดสอบกับ GCCs ส่วนใหญ่ที่มีอายุมากกว่า 7 หรือมากกว่านั้นและ Clangs หลังจาก 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 และ distros unix อื่น ๆ ใน เอกสารนี้
นอกเหนือจากคำสั่ง build ข้างต้นแล้วเรายังใช้ท่อ Azure สำหรับการรวมอย่างต่อเนื่อง ซึ่งหมายความว่าคำขอดึงแต่ละครั้งจะถูกสร้างขึ้นโดยอัตโนมัติในทุกสภาพแวดล้อมของเราและการสร้างที่สะอาดบนแพลตฟอร์มทั้งหมดนั้นเป็นสิ่งที่จำเป็นต้องมีก่อน หากคุณมีคำถามเกี่ยวกับเครื่องมือ CI ของเราอย่าลังเลที่จะถามบนเซิร์ฟเวอร์ Discord ของเรา เราขอขอบคุณ Microsoft ที่จัดหาท่อ Azure ให้กับชุมชนโอเพนซอร์ซฟรี!