جاء مؤلف كتاب Instructables تحت الاسم المستعار rgco بمُركِّب صوتي 1.5 أوكتاف رباعي اردوينو أونو. للمقارنة ، فإن توليفات الأطفال المنتشرة التي تختلف عن بعضها البعض فقط في التصميم والمصنوعة بواسطة نفس الشريحة هي صوت ثلاثي. صحيح ، يمكنهم مرافقة الموسيقى تلقائيًا مع الإيقاع ، وحفظ الألحان بصوت واحد وتقليد أصوات الحيوانات. ولكن بعد ذلك محلية الصنع يبدو أجمل. لماذا؟
كل شيء عن المعلمات. تردد أخذ العينات 31 كيلو هرتز ، 9 بت ، 4 أصوات ، توليف FM مع مسح متغير الوقت ، مغلف ADSR ، 12 أداة افتراضية ، 18 مفتاحًا تمتد على 1.5 أوكتاف.
يقوم السيد بتأليف دائرة المزج في Fritzing:
في ذلك ، يحاكي موقع المكونات على لوحة توصيل من نوع لوحة توصيلات والوصلات بينها:
ويجمع المخطط في الحياة الواقعية:
مجرد "صب واستخدام" هو أبسط شيء يمكنك القيام به مع التصميم. 18 مفتاحًا (من BEFORE الرابع أوكتاف إلى خامس FA) - للعب ، يقوم التاسع عشر بتبديل الأدوات الافتراضية في حلقة: بيانو ، إكسيليفون ، جيتار ، صنج ، أجراس ، غير تقليدي ، اهتزاز ، معدن ، كمان ، باس ، بوق ، أكورديون. تتأثر طبيعة الصوت بمدة ضغطات المفاتيح ، ولكن ليس الجهد ، على عكس المزج الاحترافي. لكن المطور يريد منك أن تجرب برمجة أدواتك الافتراضية أيضًا. يتم إعطاء كل واحد منهم بعشر معلمات. يخبرك المعالج بالمعلمة التي يعتمد عليها.
ldness - الحجم
إذا كانت هذه المعلمة أقل من 64 ، يتم استبعاد الحمل الزائد والتشوهات ذات الصلة. ولكن إذا قمت ببرمجة مثل هذه الآلة الافتراضية التي لا تبدو في الحد الأقصى لحجم الصوت لفترة طويلة ، فقد تتجاوز قيمة هذه المعلمة 64 ، لأن الأصوات الأربعة لا تصدر في وقت واحد بشكل متكرر.
pitch0 - تحول الملعب
يتوافق النطاق مع ما سبق ، إذا قمت بتعيين هذه المعلمة على 12. تقليل التحركات لأسفل ، زيادة - لأعلى. يتوافق الصفر مع التحول إلى أوكتاف واحد بالضبط ، 24 إلى أعلى بالضبط أوكتاف واحد.
ADSR_a - معدل انحراف الحجم من صفر إلى الحد الأقصى
الأصغر والأبطأ.على سبيل المثال ، 8192 يتوافق مع 4 مللي ثانية ، 256 إلى 128 مللي ثانية.
ADSR_d - سرعة لخفض مستوى الصوت من الحد الأقصى إلى الحجم المحدد بواسطة معلمة ADSR_s.
المبدأ هو نفسه.
ADSR_s - القيمة التي ينخفض إليها مستوى الصوت عند الضغط على المفتاح لفترة طويلة
على سبيل المثال ، 256 - يظل مستوى الصوت الأقصى طوال الوقت أثناء الضغط على المفتاح. 192 - ينخفض الحجم إلى 80 بالمائة ويظل كذلك أثناء الضغط على المفتاح. 0 - ينخفض مستوى الصوت إلى الصفر ، حتى إذا تم الضغط باستمرار على المفتاح.
ADSR_r - السرعة لخفض مستوى الصوت إلى الصفر بعد تحرير المفتاح
المبدأ هو نفسه بالنسبة لمعلمات ADSR_a و ADSR_d.
FM_inc - نسبة تردد التشكيل إلى نغمة
مع قيمة 256 ، يتبين أن هذه النسبة هي 1: 1 ، مع 512 - 2: 1 ، مع 128 - 1: 2 ، والباقي قياسا. إذا تم تعيين هذه المعلمة على مضاعفات 64 ، فسيكون الصوت متناغم.
FM_a1 - مدى تعديل التردد في بداية الملاحظة
256 يتوافق مع مجموعة واسعة من التوافقيات. مع انخفاض ، تصبح النغمة أنظف ، مع زيادة التوافقيات تصبح أكثر.
FM_a2 - تعديل تردد المسح في نهاية الملاحظة
المبدأ هو نفسه. بالنسبة لمعظم الأدوات الحقيقية ، تتحلل التوافقيات بشكل أسرع من النغمة الأساسية. إذا فعلت العكس ، ستحصل على أصوات غير عادية.
FM_dec - سرعة الانتقال لنطاق تعديل التردد من النطاق الذي تحدده FM_a1 إلى النطاق الذي تحدده FM_a2
المبدأ هو نفسه بالنسبة للمعلمات ADSR_a و ADSR_d و ADSR_r.
يتم الحصول على تردد PWM من 31،250 هرتز عن طريق قسمة تردد الساعة (16 ميجاهرتز) على 512. تم تصميم البرنامج بطريقة ترتبط الأحداث بالوقت دون انقطاع. بدلاً من ذلك ، يتم تضمين بت تجاوز الموقت. لكي يتمكن البرنامج من القيام بكل ما هو مطلوب منه ، يتم استخدام الأعداد الصحيحة من 8 و 16 بت فقط. يتم تقديم الموجة الجيبية في شكل جدول بأرقام 8 بت. يتم توزيع العمليات الإضافية - قراءة الحالات الرئيسية ، وتغيير الأدوات الافتراضية ، واختيار الأصوات ، وحساب معلمات الملاحظات التي تتغير في الوقت - بين 15 إجراءً ، والتي تستغرق 0.48 مللي ثانية لإكمالها. في هذا الوقت ، يتم تنفيذ بعض العمليات بدقة 32 بت ، وهو أمر ضروري لمضاعفة رقمين ثنائيين 16 بت.
تبدو الموجة الجيبية البسيطة باهتة لأنه لا توجد توافقيات في طيفها. يسمح لك توليف FM باستقبالها وتغيير طيفها بمرور الوقت ، ومحاكاة صوت الآلات الحقيقية. تعطي الترددات المتعددة صوتًا غير متناسق يحدث ، على سبيل المثال ، في الأجراس. يقلد الجهاز جيدًا التغيير في الطيف المتأصل في الآلات الحقيقية بمرور الوقت ، عندما تتحلل بعض التوافقيات بشكل أسرع من غيرها.