يقوم Cyclone بتوسيع Pure Data بكائنات مستنسخة من Cycling74's Max/MSP ويوفر مستوى جيدًا من التوافق بين البيئتين.
تم العثور على مشروع Pure Data (أو "Pd" فقط) على: https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/ أو في مرآة جيثب الخاصة به https://github.com / بيانات نقية / بيانات نقية. صفحة التنزيل الرسمية موجودة هنا: http://msp.ucsd.edu/software.html
تم العثور على ماكس على: https://cycling74.com/
حقوق الطبع والنشر © 2003-2024 - Krzysztof Czaja، Hans-Christoph Steiner، Fred Jan Kraan، Alexandre Porres، Derek Kwan، Matt Barber وآخرين.
هذا العمل مجاني. يمكنك إعادة توزيعه و/أو تعديله بموجب شروط BSD-3-Clause (المعروف أيضًا باسم ترخيص BSD المعدل). راجع License.txt https://github.com/porres/pd-cyclone/blob/cyclone0.4/LICENSE.txt وhttps://opensource.org/licenses/BSD-3-Clause لمزيد من التفاصيل.
الإصدار الحالي: Cyclone 0.9-1 (يحتاج هذا الإصدار على الأقل إلى Pd Vanilla 0.55-0)
تم الإصدار في 20 أغسطس 2024
ابحث عن أحدث إصدارات Cyclone على: https://github.com/porres/pd-cyclone/releases أو مباشرة عبر مدير Pd الخارجي (مساعدة => البحث عن العناصر الخارجية). الرجاء الإبلاغ عن الأخطاء على https://github.com/porres/pd-cyclone/issues.
تتوفر الإصدارات القديمة من الإعصار (0.1) في التوزيعة Pd-extensive التي تم التخلي عنها منذ فترة طويلة (والتي لا ينبغي لأحد أن يستخدمها الآن في عام 2020) وكذلك في Pd-l2ork وPurr Data - وكلاهما يعتمد في الأصل على Pd-Extending ولكن تم نقلهما إلى nw.js (لم يتم نقل إصدارات 0.1 من الإعصار هنا بالكامل إلى nw.js في وقت كتابة هذه السطور). إذا كنت تريد إصدارًا محدثًا من Cyclone، فاستخدم Pd Vanilla أو PlugData.
هل تعلم عن PlugData، يعد Cyclone أيضًا جزءًا من PlugData بواسطة Timothy Schoen، وهو عبارة عن شوكة لـ Pd يتم تحميلها كوحدة مستقلة أو VST مع واجهة المستخدم الرسومية المُجددة. انظر: https://github.com/timothyschoen/PlugData
تخلى المؤلف الأصلي لـ Cyclone (Krzysztof Czaja) عنه في عام 2005 عند الإصدار 0.1-alpha55، عندما كان Cyclone متوافقًا مع MAX 4.0. تم بعد ذلك دمج Cyclone وإتاحته في Pd-extensive، حيث لم يكن لديه سوى تحديث بسيط تحت صيانة Hans-Christoph Steiner في عام 2013 (0.1-alpha56)، مباشرة قبل التخلي عن Pd-extending وCyclone (نتيجة لذلك) تمامًا ( تم توريث هذا الإصدار 0.1-alpha56 أيضًا بواسطة Pd-l2ork/Purr Data). في ظل مرحلة صيانة جديدة قام بها فريد جان كران، تم إصدار الإصدارات التجريبية 0.1-alpha57 وCyclone 0.2، والتي لا تزال مرتبطة بشكل وثيق بإصدارات '0.1-alpha' السابقة ومتوافقة في الغالب مع Max 4.0!
كان Cyclone 0.3-0 بمثابة الإصلاح الشامل في Cyclone، حيث تم تحديث جميع كائناته تقريبًا إلى أحدث إصدار Max 7 (Max 7.3.5). تم أيضًا إصلاح العديد من الأخطاء، وتمت إعادة كتابة الوثائق من البداية وتم تضمين كائنات جديدة. تحقق من ملف CHANGELOG.txt المقدم للحصول على تفاصيل كافة تغييرات الإصدار.
حاليًا، لم يصل Cyclone بعد إلى التوافق الكامل مع "Max 7.3.5". لم يتم تنفيذ بعض الوظائف التي تعتمد على "النقل" أو "القواميس" ولن يتم تنفيذها أبدًا. Cyclone ليس قيد التطوير النشط كثيرًا هذه الأيام والهدف الرئيسي هو الحفاظ على المكتبة وإصلاح الأخطاء (وبالتالي تجنب تضمين أشياء أحدث).
المشرف الحالي الرئيسي على Cyclone (Porres) أكثر انشغالًا بتطوير مكتبة ELSE. لاحظ أن هذه المكتبة بها بدائل لجميع كائنات الإعصار تقريبًا وأن العديد من الكائنات في ELSE مستوحاة بالفعل من كائنات MAX/MSP التي لم يتم استنساخها في Cyclone. بالمناسبة، ELSE أيضًا جزء من PlugData، وبالتالي، يشير توثيق Cyclone إلى بدائل في ELSE.
تم الآن استعارة عنصرين في Cyclone من ELSE، مثل [pink~] و[comment] (يعتمد هذا الكائن على [ملاحظة] ELSE وتم إهماله بالفعل). هذه الكائنات متوافقة مع الإصدارات السابقة وتقدم أشياء أكثر من كائن MAX الأصلي، لذا فهي ليست متوافقة تمامًا حقًا.
الكائن الوحيد الذي لم يتم تحديثه بعد إلى MAX 7.3.5 هو [mtr] وهو موجود في قائمة المهام. قد يستمر Cyclone في دمج وظائف جديدة في الكائنات الموجودة من Max 8 (الإصدار الحالي) والإصدارات الأحدث 9+ في المستقبل، ولكن لا يمكننا أن نعد بذلك.
سيكون التوافق مع 'mc' ممكنًا الآن، بدءًا من الإصدار 0.54-0 من Pd، والذي يدعم الاتصالات متعددة القنوات. ومع ذلك، لا توجد خطة لإنشاء مثل هذه الكائنات لـ Cyclone ومتابعة هذا التوافق. من ناحية أخرى، يمكن للمستخدمين حاليًا إنشاء تجريدات خاصة بهم مثل "mc" استنادًا إلى كائنات الإعصار باستخدام [clone]. يرجى ملاحظة أن العديد من كائنات ELSE تتمتع بدعم متعدد القنوات!
يمكنك تجميع Cyclone من المصدر المتوفر في هذا المستودع للحالة الأخيرة لحافة النزيف الحالية أو تنزيل أحد الإصدارات المجمعة الأكثر استقرارًا من https://github.com/porres/pd-cyclone/releases. البديل الجيد هو ببساطة استخدام مدير التنزيل الخارجي الخاص بـ Pd (المعروف أيضًا باسم البرنامج المساعد deken): ما عليك سوى النقر على خيار "البحث عن العناصر الخارجية" ضمن قائمة "المساعدة" والبحث عن "الإعصار".
عند تثبيت cyclone، تأكد من تضمين مجلد Cyclone في المجلد الذي يبحث عنه Pd، مثل ~/Documents/Pd/externals
- وهو ما يقترح عليك Pd القيام به لعدة إصدارات الآن.
يمكنك الآن تثبيت Cyclone عن طريق تحميله عند بدء التشغيل: انتقل إلى "Preferences => Startup"، ثم انقر فوق "New"، واكتب "cyclone" واضغط على OK. في المرة التالية التي تقوم فيها بإعادة تشغيل Pd، سيتم تحميل الملف الثنائي لمكتبة Cyclone.
يقوم ثنائي المكتبة بتحميل كائنات العوامل غير الأبجدية الرقمية (وهي: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
و >~
) ولكنه يضيف أيضًا مسار Cyclone إلى تفضيلات Pd، بحيث يمكنك تحميل الكائنات الأخرى من Cyclone (وهي ثنائيات وتجريدات منفصلة).
لكن لاحظ أنه من أجل فرض أولوية البحث عن المسار فعليًا في التصحيح الخاص بك، فإنك تحتاج إلى استخدام [declare -path cyclone].
يمكنك أيضًا استخدام [declare -lib cyclone] في التصحيح لتحميل المكتبة إذا كنت لا تريد تحميل Cyclone دائمًا عند بدء تشغيل Pd. يؤدي تحميل ثنائي Cyclone ككائن ([cyclone]) أيضًا إلى تحميل المكتبة، راجع ملف المساعدة الخاص بها لمزيد من التفاصيل.
منذ "Cyclone 0.1-alpha57"، اعتمدت حزمة Cyclone على نظام البناء الجديد المسمى "pd-lib-builder" بواسطة Katja Vetter (راجع المشروع في: https://github.com/pure-data/pd-lib -باني).
يحاول PdLibBuilder العثور على دليل مصدر Pd في عدة مواقع شائعة، ولكن عندما يفشل ذلك، يجب عليك تحديد المسار بنفسك باستخدام متغير pdincludepath. مثال:
جعل pdincludepath=~/pd-0.54-0/src/ (لنظام التشغيل Windows/MinGW أضف 'pdbinpath=~/pd-0.54-0/bin/)
استخدم "objectsdir" لتعيين مسار نسبي للبناء الخاص بك، مثل:
جعل كائنات التثبيتdir=../cyclone-build
ثم انقله إلى مجلد التثبيت المفضل لديك لـ Pd.
أصبح من الممكن الآن إنشاء Cyclone لـ Pd Vanilla أو libpd باستخدام CMake. CMake هو نظام بناء مفتوح المصدر ومتعدد المنصات. يتم استخدام CMake للتحكم في عملية تجميع البرامج باستخدام نظام أساسي بسيط وملفات تكوين مستقلة للمترجم، وإنشاء ملفات تعريف ومساحات عمل أصلية يمكن استخدامها في بيئة المحول البرمجي التي تختارها. وهذا يسمح بالتجميع الأصلي عبر Windows (Microsoft Visual Studio)، وLinux (دول مجلس التعاون الخليجي)، وmacOS (XCode).
التبعيات:
إذا كنت تستخدم MinGW، فيمكنك استخدام pthreadGC-3.dll المضمن في دليل maintenance/windows_dll
في هذا المستودع. وبدلاً من ذلك، يمكنك أيضًا تنزيله أو تجميعه بنفسك من المصادر هنا. سيؤدي هذا عادةً إلى pthreadGC2.(dll/lib).
إذا كنت تستخدم Visual Studio، فأنت بحاجة إلى توفير مكتبة pthreads
مجمعة لبرنامج Visual Studio إما عن طريق تنزيلها أو تجميعها بنفسك. انظر هنا. احرص على تنزيل/تجميع الإصدار الصحيح لإعدادك. سيكون هذا عادةً pthreadVC2.(dll/lib)
.
إحدى طرق تكوين CMake هي استخدام واجهة المستخدم الرسومية CMake. ستقوم واجهة المستخدم الرسومية بسرد المتغيرات التي يمكن توفيرها لتكوين البناء. يمكن أيضًا تحديد المتغيرات في واجهة سطر الأوامر (انظر أدناه للحصول على مثال).
في هذه الخطوة يمكنك تحديد ما إذا كنت تريد إنشاء مكتبات مشتركة باستخدام BUILD_SHARED_LIBS
وإذا كنت تريد إنشاء جميع كائنات Cyclone في مكتبة واحدة باستخدام BUILD_SINGLE_LIBRARY
(المزيد حول هذا أدناه).
عند استخدام Microsoft Visual Studio (MSVC)، سيُطلب منك توفير مسار لمكتبة pthreads
ورؤوسها باستخدام المتغيرات CMAKE_THREAD_LIBS_INIT
و PTHREADS_INCLUDE_DIR
.
سيُطلب منك توفير مسار إلى مصادر البيانات النقية وإلى مكتبة البيانات النقية. في حالة إنشاء Cylone لـ libpd، يمكن أيضًا تحقيق ذلك من خلال توفير المسار إلى مجلد pure-data
داخل مصادر libpd وتوفير المسار إلى مكتبة libpd. المتغيرات هي: PD_INCLUDE_DIR
و PD_LIBRARY
.
في نظام التشغيل macOS، يمكنك تحديد هدف نشر وبنيات مختلفة من نظامك الحالي باستخدام المتغيرات CMAKE_OSX_DEPLOYMENT_TARGET
و CMAKE_OSX_ARCHITECTURES
.
يمكنك تحديد إشارات ترجمة إضافية باستخدام المتغير CMAKE_C_FLAGS
.
يمكن لـ CMake الآن إنشاء ملفات Makefiles أو حل MSVC أو مشروع XCode.
بعد الإنشاء، اعتمادًا على النظام الأساسي الخاص بك، يمكنك الانتقال إلى الدليل حيث قام CMake بإنشاء ملفات البناء ثم:
make
بالطبع يمكنك أيضًا استخدام CMake نفسه لإنشاء الإعصار عن طريق تشغيل هذا في سطر الأوامر:
cd
cmake --build .
وفقًا للإعدادات الافتراضية، سيقوم Cyclone ببناء معظم كائناته كملف ثنائي واحد ( .so
/ .dll
/ .dylib
/ .pd_darwin
). الاستثناء هو الكائن/الثنائي "الإعصار" الذي يقوم بتحميل كائنات العوامل غير الأبجدية الرقمية (وهي: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
و ==~
و >=~
و >~
).
إذا أردت، يمكنك أيضًا إنشاء كافة كائنات Cyclone في cyclone.so/dll/dylib/pd_darwin
واحد عن طريق تنشيط خيار BUILD_SINGLE_LIBRARY
.
تحتوي كل مكتبة من المكتبات الفردية على أسلوب
الذي سيتم استدعاؤه بواسطة البيانات النقية عند تحميل المكتبة. إذا قمت بتحديد BUILD_SINGLE_LIBRARY
، فسيقوم CMake بإنشاء الكود المناسب بحيث يتم استدعاء كافة أساليب *_setup()
في cyclone_setup()
الرئيسي.
فيما يلي بعض الأمثلة حول كيفية تنزيل أحدث إصدار من Cyclone وتكوينه وإنشائه على سطر الأوامر باستخدام CMake و Pure-data أو libpd.
لينكس:
git clone https://github.com/pure-data/pure-data
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DPD_INCLUDE_DIR:PATH=pure-data/src -DPD_LIBRARY:PATH=
cmake --build .
ويندوز/MSVC:
git clone https://github.com/pure-data/pure-data
#Clone the Cyclone repository from GitHub:
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DCMAKE_THREAD_LIBS_INIT:PATH= -DPTHREADS_INCLUDE_DIR:PATH= -DPD_INCLUDE_DIR:PATH=pure-data/src -DPD_LIBRARY:PATH=
cmake --build .
باستخدام libpd في لينكس:
# Here we compile libpd ourselves, you can skip the building steps if you download the libpd binaries
git clone https://github.com/libpd/libpd
cd libpd
git submodule init
git submodule update
# libpd build steps:
mkdir build && cd build
cmake ..
cmake --build .
cd ../..
# Now clone the Cyclone repository
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DPD_INCLUDE_DIR:PATH=../libpd/pure-data/src -DPD_LIBRARY:PATH=../libpd/libs/libpd.so
cmake --build .
مقتطف من الملف التمهيدي الأصلي لـ Cyclone (بقلم مؤلفه الأصلي Krzysztof Czaja):
عمل المؤلف الأصلي لـ Cyclone Krzysztof Czaja عليها كجزء من مكتبته المختلطة من عام 2002 إلى عام 2005 ثم تخلى عنها جميعًا لاحقًا. بالتوازي، تم دمج miXed في Pd Extended وانتهى به الأمر في النهاية تحت صيانة Hans-Christoph Steiner - المطور الرئيسي والمشرف على Pd-Extending. عندما تم التخلي عن Pd Extended بعد إصداره الأخير (من يناير 2013)، تُرك Cyclone وmiXed بدون صيانة نتيجة لذلك. في ديسمبر 2014، تولى فريد جان كران صيانة وتطوير cyclone (ولكن ليس بقية مكتبة miXed) وأصدر إصدارات تجريبية من 0.1-alpha57 وCyclone 0.2، لكنه قرر التخلي عن تطويره في فبراير 2016.
منذ 21 فبراير 2016، بدأ التطوير الإضافي لـ Cyclone في هذا المستودع بواسطة Alexandre Porres، وDerek Kwan، وMatt Barber ومتعاونين آخرين. أول إصدار مستقر كان Cyclone 0.3-0 اعتبارًا من فبراير 2019!
=> المستودع الأصلي (حتى الإصدار 0.1-Alpha-56): المستودع الأصلي لـ MiXed كجزء من Pd Extended - الذي يحتوي على Cyclone والمزيد (مثل "toxy") - موجود على https://svn.code.sf. net/p/pure-data/svn/trunk/externals/miXed/cyclone والمستودع المُرحّل: https://git.puredata.info/cgit/svn2git/libraries/miXed.git/. يتضمن هذا المستودع العمل من ثلاث مراحل صيانة مختلفة:
=> مستودع فريد جان كران (0.1-Alpha57 و0.2-beta):
قام فريد جان كران بتقسيم المستودع الأصلي إلى https://github.com/electrickery/pd-miXedSon، ولكنه يحتوي على مكتبة Cyclone فقط. يحتوي هذا المستودع على عدد قليل من الإصدارات - راجع https://github.com/electrickery/pd-miXedSon/releases - يبدأ بإصدار Cyclone 0.1-alpha-57، اعتبارًا من أكتوبر 2015، وهو في الأساس آخر التطورات التي تم إجراؤها على المستودع الأصلي في مرحلته الأخيرة. ثم ينتقل إلى إصدار Cyclone 0.2 الجديد الذي توقف عند مرحلة تجريبية في فبراير 2016.
=> هذا المستودع (0.3-0 وما بعده):
في فبراير 2016، تفرع بوريس من https://github.com/electrickery/pd-miXedSon إلى هذا المستودع الموجود على: https://github.com/porres/pd-cyclone. حدثت الشوكة بينما كان الإعصار في مرحلة 0.2 بيتا. منذ ذلك الحين، عمل ألكسندر بوريس، وديريك كوان، ومات باربر وغيرهم من المتعاونين على تطوير المزيد من الأعاصير. كان أول إصدار مستقر من هذا المستودع هو cyclone 0.3-0 من فبراير 2019. في أواخر عام 2021، بعد إصدار الإصدار 0.6-0، تم فصل هذا المستودع عن Kraan's (electrickery) هنا على GitHub، بعد أن تم تنفيذ آلاف الالتزامات مسبقًا ومع إعادة هيكلة كاملة لقاعدة التعليمات البرمجية.
=> شوكة "nilwind":
مكتبة 'nilwind' هي شوكة من Cyclone وتبدأ كشوكة من المرحلة الأخيرة https://github.com/electrickery/pd-miXedSon، مما يعني أنها تطور على cyclone 0.2-beta. مستودع nilwind موجود على https://github.com/electrickery/pd-nilwind. إصداره الأول هو 'nilwind 0.2.1'، اعتبارًا من نوفمبر 2019. لا يهدف هذا الشوكة من الإعصار إلى متابعة التحديثات وفقًا للإصدارات الأحدث من Max، واهتمامه الرئيسي هو الحفاظ على التوافق مع التصحيحات القديمة/القديمة التي تم إجراؤها في Pd-Extending العصر (الذي حمل الإعصار 0.1). ومع ذلك، فإن إصدارات الإعصار 0.3 وما بعده متوافقة أيضًا مع العصر الممتد، حيث أن مرحلة التطوير الحالية لا تقدم تغييرات جذرية ولم تقدم سوى إصدارات مستقرة منذ 0.3!
يوجد هذا المستودع على https://github.com/porres/pd-cyclone وهو ملتزم بالهدف الأصلي لـ Cyclone المتمثل في إنشاء حزمة Pd خارجية مع مجموعة من الكائنات المستنسخة والمتوافقة مع كائنات Max/MSP. يجب الإبلاغ عن الأخطاء والمشكلات إلى https://github.com/porres/pd-cyclone/issues. الإصدارات من هذا المستودع مستقرة وتقدم العديد من الإصلاحات وتحسن الاستقرار من الإصدارات السابقة.
يعد التوافق مع الإصدارات الأحدث من Max أمرًا مثيرًا للقلق، ولكن التوافق مع Max كان دائمًا هو الهدف الرئيسي للإعصار ولم يتغير شيء حقًا، نظرًا لأن Max نفسه يحافظ على التوافق مع الإصدارات السابقة. يجب ألا ينشأ أي عدم توافق بين الإعصار 0.3-0 وما بعده مع المرحلة القديمة للمكتبة (مرحلة الإعصار 0.1 التي كانت متوفرة في Pd Extended). نظرًا لأن مرحلة تطوير Cyclone هذه معنية بتوفير التوافق مع التصحيحات التي تم إجراؤها في عصر Pd-Extension، فإذا ظهرت مثل هذه المشكلات، فيجب التعامل معها على أنها أخطاء والإبلاغ عنها/إصلاحها.
هذا المستودع/المشروع مفتوح للتعاون لأي شخص يرغب في العمل (مع الأخذ في الاعتبار الهدف الرئيسي والمركزي المتمثل في توافق Max/MSP). لا تتردد في التعاون.
شكرًا للمشرفين السابقين، لوكاس كورديفولا على عمله في قضايا التجميع والترجمة المشتركة وتوليد الثنائيات للعديد من الإصدارات. عمل دييغو باريوس روميرو على إمكانية تجميع كافة الكائنات في الإعصار كثنائي واحد بدلاً من ثنائيات منفصلة. تيم شوين للمساعدة في بعض المشكلات، بما في ذلك بعض العناصر بما في ذلك Cyclone في مشروع PlugData الخاص به (راجع: https://github.com/timothyschoen/PlugData)