حقائق أساسية
- يستخدم TensorFlow.js للكشف الفوري عن النغمة.
- يُخرِج ملفات MIDI و كود Strudel/TidalCycles.
- يعمل كلياً على جهاز العميل باستخدام Web Audio API.
- يستفيد من أربعة خوارزميات: CREPE، YIN، FFT/HPS، و AMDF.
- صُمِّم لسد الفجوة بين الغناء والبرمجة للمستخدمين غير المُلمين بموسيقى النظرية.
ملخص سريع
أُطلِق تطبيق جديد للمتصفح يُدعى Voice Composer، صُمِّم لتحويل المدخلات الصوتية إلى بيانات موسيقية قابلة للاستخدام. يستهدف الأداة مجتمعات البرمجة الحية ودي جي الحية من خلال تمكين المستخدمين من الغناء وإنشاء كود لأنظمة الموسيقى القائمة على الأنماط على الفور.
يستخدم التطبيق TensorFlow.js وخوارزميات أخرى للكشف الفوري عن النغمة. يعمل كلياً في المتصفح عبر Web Audio API، مما يضمن بقاء البيانات الصوتية الخام لا تغادر جهاز المستخدم. تُخرِج الأداة ملفات MIDI، وصوراً بيانية للبيانو، وكوداً متوافقاً مع Strudel و TidalCycles.
الوظيفة الأساسية والخوارزميات
يعالج Voice Composer مشكلة محددة للمبرمجين الحيين المبتدئين: صعوبة ترجمة الأفكار الموسيقية إلى كود دون الحاجة إلى معرفة واسعة بموسيقى النظرية. من خلال التقاط الصوت في الوقت الفعلي، يحول المدخلات الصوتية إلى أنماط خوارزمية على الفور.
يستفيد التطبيق في أربع طرق مميزة للكشف عن النغمة للتعامل مع أنواع المدخلات الصوتية المختلفة:
- CREPE: نموذج تعلم عميق عبر TensorFlow.js، يتميز بدقة عالية لكنه يتطلب موارد حسابية أكبر.
- YIN: طريقة تقدير التردد الأساسي القائمة على الارتباط الذاتي، سريعة وفعالة للمدخلات الأحادية النظيفة.
- FFT مع طيف التردد التوافيقي: مُحسَّن للتعامل مع الأصوات الغنية بالتوافقيات.
- AMDF: وظيفة الفرق المتوسط للحجم، وهي خيار خفيف للمعالجة السريعة.
يمكن للمستخدمين التبديل بين هذه الخوارزميات بناءً على حالتهم الاستخدامية المحددة وجودة المدخلات.
الهندسة التقنية
بُنيت الأداة باستخدام React، وتعمل كلياً داخل المتصفح. تستفيد من Canvas API لتقديم رسوم موجات صوتية فورية وردود فعل بصرية عبر واجهة بيانو.
قرار الاحتفاظ بجميع العمليات على جانب العميل يضمن الخصوصية والتأخير المنخفض. يتصور المطور تطور الأداة لتصبح محرر صوتيات رقمي (DAW) متكامل الميزات مع مرور الوقت. حالياً، هي مُحسَّنة للاستخدام على سطح المكتب، حيث تعمل بفعالية أكبر.
التكامل مع البرمجة الحية
المخرجات الرئيسية تستهدف بيئة البرمجة الحية. من خلال إنشاء كود Strudel/TidalCycles، تسمح الأداة بالدمج الفوري في إعدادات العروض الحالية. هذا يزيل عائق كتابة الصيغة يدوياً للأنماط المعقدة.
قام المطور ببناء التطبيق خلال عطلة نهاية الأسبوع لحل تحديه الخاص في تعلم البرمجة الحية دون خلفية موسيقية. يجعل البرنامج الناتج من "الأمر عديم الأهمية التقاط الأفكار الموسيقية واستخدامها فوراً في أنظمة الموسيقى القائمة على الأنماط."
التوافر والتطوير المستقبلي
الأداة متاحة حالياً للاختبار عبر رابط مستضاف. تم وضع الكود المصدري في مستودع عام، داعياً المجتمع للمشاركة والتعليقات.
تهدف التحديثات المستقبلية إلى توسيع قدرات التطبيق، لتقترب من وظائف الـ DAW القياسي. هذا يشير إلى دعم محتمل للتسجيل متعدد المسارات، ومعالجة التأثيرات، وتوافق أوسع لصيغ الملفات في الإصدارات اللاحقة.
