عن المشروع
SyntaxWave هي بيئة برمجة صوتية تجريبية موجهة إلى فناني البرمجة الحية ومستكشفي الموسيقى الخوارزمية. فبدلاً من برنامج DAW القائم على الخط الزمني، تتعامل مع الكود كآلة موسيقية: لغة خاصة بالمجال ذات كلمات مفتاحية للمذبذبات والمغلفات والمرشحات وخطوط التأخير والتوليف الحبيبي تُترجم إلى عمليات صوتية متجهية، مع ادعاء ملف README بترجمة تقل عن خمسة أجزاء من الثانية للتصحيحات النموذجية.
يوصف وقت التشغيل بأربع طبقات. توفر طبقة المحرر بيئة تطوير متكاملة قائمة على المتصفح مع تمييز الصياغة، والإكمال التلقائي للغة الخاصة، والتوثيق المضمن، والتحرير التعاوني عبر التحويل التشغيلي. تقوم طبقة الترجمة بتحليل اللغة الخاصة إلى تمثيل وسيط، وترجمتها فورياً إلى WebAssembly، وتوجيه توليد المخازن إلى وحدة معالجة الرسومات. تستخدم طبقة الصوت واجهات المنصة الخلفية (WASAPI وCoreAudio وALSA وWeb Audio API كخيار احتياطي) للجدولة الدقيقة للعينات والتوجيه متعدد القنوات. تبني طبقة الشبكة شبكة WebRTC حيث يكون كل عقدة منتجاً ومستهلكاً في آن واحد، مع مزامنة الحالة القائمة على CRDT بحيث تتقارب التعديلات المتزامنة على نفس المخرجات.
التعاون ميزة رئيسية: يشارك المشاركون رسمًا بيانيًا صوتيًا موزعًا، ويمكنهم مشاركة المقتطفات، وكتم أو إفراد مساهمات بعضهم البعض، ودمج التدفقات في مخرج رئيسي. يذكر ملف README زمن استجابة أقل من 15 مللي ثانية بين العقد وميزانية زمن استجابة للشبكة أقل من 30 مللي ثانية بين العقد الطرفية. يعرض متصفح الخط الزمني الرئيسي تغييرات كود كل مشارك كمسارات مع أشكال موجية تحتها.
تستخرج خط أنابيب التحليل العصبي شبكات الإيقاع وتوقيعات المفاتيح وأنماط البدء والواصفات الجرسية من الصوت الحي، وتغذي المخططات الطيفية ومخططات الكروما وعناقيد الأشكال الموجية مرة أخرى إلى المحرر كتغذية راجعة بصرية. يربط التحكم بالإيماءات منزلقات MIDI أو مقاييس التسارع أو مواضع اليد المتتبعة بالكاميرا بأي متغير في اللغة الخاصة. تسمح بنية الإضافات بوحدات التوليف والمؤثرات ووحدات التحليل المكتوبة بلغة Rust أو C، والمترجمة إلى WebAssembly والمحملة فورياً أثناء الجلسة.
تشمل المواصفات التقنية المذكورة معدلات عينات قابلة للتكوين من 44.1 كيلوهرتز إلى 384 كيلوهرتز، وأحجام مخازن من 32 إلى 4096 عينة، وحتى 512 صوتًا متزامنًا لكل عقدة، وواجهة ثنائية لإضافات wasm32-wasi، ودعم Windows 10/11 وmacOS 12+ وLinux (x86_64 وaarch64) وChrome/Firefox/Edge. يوزع المشروع كملف تنفيذي واحد يشغل خادم ويب محليًا وواجهة صوتية خلفية، ويفتح الواجهة في المتصفح. مثال بسيط هو `sine freq:440 gain:0.3`، يُنفذ بـ Ctrl+Enter.
تشمل الميزات الموجهة للمسرح التحرير متعدد المؤشرات، وتنقيح سجل الكود، ووضع التجميد الذي يحتفظ بالمخرجات الحالية أثناء تحضير المقطع التالي، وعرض جهاز العرض الذي يخفي عناصر واجهة المستخدم. الواجهة متجاوبة عبر سطح المكتب والجهاز اللوحي والهاتف المحمول، مع إيماءات اللمس ووضع محمول مخفض الحمل. تُقدَّم سلاسل واجهة المستخدم والتلميحات ورسائل الخطأ بست عشرة لغة، وتقبل اللغة الخاصة أسماء كلمات مفتاحية مترجمة (مثل `sinus` أو `正弦波`). يعلن ملف README أيضًا عن دعم بشري على مدار الساعة عبر دردشة مدمجة وقاعدة معرفية.
يُصدر المشروع تحت رخصة MIT ويدعو إلى المساهمات من مجتمع البرمجة الحية وباحثي DSP ومحبي اللغات؛ ويذكر ملف README مستودع إضافات يضم أكثر من مئتي وحدة توليف مساهم بها من المجتمع وجلسات برمجة جماعية عبر الإنترنت منتظمة. يشير إخلاء مسؤولية إلى أن الصوت في الوقت الفعلي قد ينتج أصواتًا عالية أو غير متوقعة، لذا يجب على المستخدمين مراقبة مستويات المخرجات بعناية.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.