إذا كنت موسيقيًا يتطلع إلى استخدام Durge XT ، فيرجى تنزيل الثنائي المناسب من موقعنا. يصنع فريق Serge Synth إصدارات منتظمة لجميع المنصات المدعومة.
CI: الإصدار: الإصدار:
يعد Gurge XT مزجًا هجينًا مجانيًا ومفتوح المصدر ، يتم كتابته وبيعه في الأصل كمنتج تجاري من قِبل @Kurasu/Claes Johanson في Vember Audio. في سبتمبر 2018 ، قرر CLAES إصدار نسخة مكتملة جزئيًا من GROGE 1.6 بموجب GPL3 ، وقد قامت مجموعة من المطورين بتحسينها منذ ذلك الحين. يمكنك معرفة المزيد عن الفريق في https://surge-synth-team.org/ أو الاتصال بنا على Discord.
إذا كنت ترغب أيضًا في المشاركة في المناقشات ، واختبار وتصميم Gurge XT ، فلدينا تفاصيل أدناه وأيضًا في قسم المساهمين في موقع Turge XT.
يعد هذا ReadMe بمثابة جذر وثائق المطور لـ Gurge XT.
نرحب بالمطورين! يدور سير العمل الخاص بنا حول مشكلات GitHub في هذا المستودع والمحادثات في خادم Discord الخاص بنا. يمكنك قراءة إرشادات المطورين لدينا في وثيقة دليل المطورين لدينا. إذا كنت ترغب في المساهمة وجديدة في GIT ، فلدينا أيضًا GIT ، مصممة في تطوير DESTREGE XT.
يحتوي دليل المطور أيضًا على معلومات حول الاختبار وتصحيح الأخطاء في مضيفين معينين على منصات معينة.
تستخدم Drupge XT CMAKE لجميع المهام المتعلقة بالبناء ، وتتطلب مجموعة من الأدوات الحرة لبناء الخلاصة. إذا كان لديك بيئة تطوير ، فمن المؤكد أن لديك ما تحتاجه ، ولكن إذا لم يكن الأمر كذلك ، يرجى مراجعة:
بمجرد إعداد بيئتك ، تحتاج إلى الخروج من رمز Surge XT باستخدام GIT ، Get Submosts ، قم بتشغيل 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
سيؤدي ذلك إلى إنشاء جميع الأصول الثنائية للتصوير في الدليل 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 والعديد من الآخرين يمكنهم العمل بشكل صحيح مع البرنامج.
نظرًا لقيود الترخيص ، لا يجوز إعادة توزيع Building VST2 من Surge XT. ومع ذلك ، من الممكن إنشاء VST2 من Surge XT للاستخدام الشخصي الخاص بك. أولاً ، الحصول على نسخة محلية من VST2 SDK ، وفك ضغطها على مجلد من اختيارك. ثم اضبط VST2SDK_DIR
للإشارة إلى هذا المجلد:
export VST2SDK_DIR="/your/path/to/VST2SDK"
أو ، في موجه أوامر Windows:
set VST2SDK_DIR=c:pathtoVST2SDK
أخيرًا ، قم بتشغيل Cmake Afresh وقم ببناء أهداف 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 لـ Drudge XT المستقلة ، لأنه يمكّن المستخدمين من استخدام برنامج تشغيل ASIO Low-Clo-Colorency Audio.
لسوء الحظ ، بسبب تعارضات الترخيص ، قد لا يتم إعادة توزيع ثنائيات Surge XT التي تم إنشاؤها مع ASIO. ومع ذلك ، يمكنك إنشاء Druplge XT مع ASIO للاستخدام الشخصي الخاص بك ، شريطة ألا تعيد توزيع هذه التصميمات.
إذا كان لديك بالفعل نسخة من ASIO SDK ، فما عليك سوى تعيين متغير البيئة التالي وأنت على ما يرام!
set ASIOSDK_DIR=c:pathtoasio
إذا لم يكن لديك نسخة من Asio SDK في متناول اليد ، فيمكنك تنزيله من أجلك ، والسماح لك بالبناء مع 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 الأولي.
يستخدم Durge XT pybind
لفضح ألزارات المركب إلى كود بيثون للوصول الأصلي المباشر إلى جميع ميزاته. هذه أداة مفيدة في الغالب للمطورين ، ويظهر مستودع Bython Surge بعض الاستخدامات.
لاستخدام 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
بإنشاء صورة تثبيت على النظام الأساسي الخاص بك في نهاية عملية الإنشاء. على Mac و Linux ، تم تصميم مولد المثبت في النظام الأساسي ؛ على Windows ، يستخدم ملف CMake الخاص بنا nuget لتنزيل InnoSetup ، لذلك ستحتاج إلى nuget.exe cli في طريقك.
لدينا مجموعة متنوعة من خيارات CMAKE الأخرى والأهداف التي يمكن أن تسمح لك بتطوير وتثبيت DRISPLGE 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"
يعتمد Durge XT أصلاً على أنظمة تشغيل Raspberry PI 64 بت. قم بتثبيت نظام أدوات المترجم الخاص بك وقم بتشغيل أوامر CMAKE القياسية. لن تبني Durge XT على أنظمة Raspberry PI 32 بت ، مما يعطي خطأ في تردد الربيع وأماكن أخرى في رمز DSP. إذا كنت ترغب في العمل على إصلاح هذا ، راجع التعليق في cmakelists.txt أو إسقاطنا خطًا على خلافنا أو github.
اعتبارًا من يونيو 2023 ، على الرغم من أن GCC في بعض التوزيعات لديها خطأ واضح يولد تحذيرًا خادعًا نشجعه على خطأ. لقد وجدنا ترجمة XT بشكل نظيف مع gcc (Debian 10.2.1-6) 10.2.1 20210110
، ولكن ليس مع الآخرين. يجمع Durge 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 ، استخدم 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 Variable LINUX_ON_ARM
و (2) تتأكد من أن مضيفك ومترجمك المستهدف كلاهما 64 بت.
زيادة المتقاطعات 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
كل إصدار من الزيادة من 1.6 بيتا 6 أو نحو ذلك لديه فرع في هذا المستودع. فقط تحقق من ذلك وقراءة readme المرتبطة.
تحتاج إلى تثبيت ما يلي:
للبناء على MacOS ، تحتاج إلى Xcode
و Xcode Command Line Utilities
و Cmake. بمجرد تثبيت Xcode
من متجر التطبيقات ، فإن سطر الأوامر لتثبيت Xcode Command Line Utilities
هو:
xcode-select --install
هناك مجموعة متنوعة من الطرق لتثبيت Cmake. إذا كنت تستخدم Homebrew ، فيمكنك:
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
يمكنك العثور على مزيد من المعلومات حول Gurge XT على Linux وغيرها من التوزيعات التي تشبه UNIX في هذا المستند.
بالإضافة إلى أوامر الإنشاء أعلاه ، نستخدم خطوط أنابيب Azure للتكامل المستمر. هذا يعني أنه سيتم بناء كل طلب سحب تلقائيًا عبر جميع بيئتنا ، وأن البناء النظيف على جميع المنصات هو شرط واضح مسبقًا. إذا كانت لديك أسئلة حول أدوات CI الخاصة بنا ، فلا تتردد في طرحها على خادم Discord. نحن ممتنون لـ Microsoft على توفير خطوط أنابيب Azure مجانًا لمجتمع المصدر المفتوح!