جدول المحتويات:

آلة طبلة Raspberry Pi: 5 خطوات
آلة طبلة Raspberry Pi: 5 خطوات

فيديو: آلة طبلة Raspberry Pi: 5 خطوات

فيديو: آلة طبلة Raspberry Pi: 5 خطوات
فيديو: اصغر دائرة مكبر صوت ستيريو | تكنولوجيا الالكترونيات 2024, شهر نوفمبر
Anonim
آلة طبل Raspberry Pi
آلة طبل Raspberry Pi

عينة التسلسل ، عبر Raspberry Pi + Python.

يحتوي جهاز التسلسل على 4 نغمات متعددة الأصوات ويسمح للمستخدم بتخزين وتسجيل 6 تسلسلات مختلفة يمكنهم التبديل بينها في الوقت الفعلي ، ويدعم القدرة على التغيير بين العينات المختلفة.

لقد كتبت النص بطريقة قابلة للتشغيل تمامًا مع أي وحدة تحكم وأصوات MIDI. أستخدم 18 بنكًا مختلفًا للصوت ، و 16 عينة لكل منها ، ومع ذلك فإن إضافة أو طرح البنوك والعينات أمر سهل ولا يتطلب الكثير من التعديلات. إذا واجهتك أي مشكلة ، أرسل لي بريدًا إلكترونيًا: [email protected]

ابحث عن الكود على GitHub على:

يرجى إعلامي إذا كنت تستخدمه ، وخاصة إذا قمت بإنشاء مقطع فيديو به!

الخطوة 1: التبعيات

يتطلب هذا البرنامج وحدات Python (غير المدمجة) التالية:

ميدو

القزم

حبيبي

ومع ذلك ، فإن ميدو يلقي ببعض التعقيدات لأن ميدو نفسه يتطلب بعض التبعيات. للتأكد من تثبيتهم جميعًا ، ما عليك سوى كتابة الأوامر التالية في محطة Raspberry Pi (حذف "$") وسيكون كل شيء على ما يرام. يمكن تثبيت الوحدات الأخرى بشكل طبيعي.

sudo apt-get update

sudo apt-get install build-ضروري

sudo apt-get install libasound-dev أو libasound2-dev

sudo apt-get install libjack0

sudo apt-get install libjack-dev

sudo apt-get install python-pip

sudo apt-get install python-dev

sudo pip $ قم بتثبيت python-rtmidi

sudo pip install mido

الخطوة 2: تكوين قيم إدخال Midi

تكوين قيم إدخال Midi
تكوين قيم إدخال Midi

يوجد داخل نص Python Script الرئيسي مصفوفة تسمى noteList تتكون من 16 عددًا صحيحًا (السطر 165.) هذه هي قيم ملاحظة MIDI التي ترسلها وحدة التحكم الخاصة بنا إلى Pi لتشغيل الأصوات. تختلف كل وحدة تحكم ميدي ، لذا ما لم يكن لديك أيضًا Akai LPD8 ، فستحتاج على الأرجح إلى تغيير هذه القيم لتتناسب مع جهازك.

يتضمن Github repo أيضًا نصًا آخر يسمى "midihelp.py" تم تصميمه خصيصًا لهذا الغرض! كل ما يفعله هو طباعة قيم الإدخال من أول وحدة تحكم MIDI يتعرف عليها الكمبيوتر إلى وحدة التحكم. كل ما عليك فعله هو استبدال هذه القيم في المصفوفة إذا كانت تختلف عن القيم المضمنة في noteList.

يرتبط ترتيب الملاحظات أيضًا بالتأثير الصوتي الذي يتم تشغيله لكل مجلد ، لذا ضع ذلك في الاعتبار أيضًا.

الخطوة 3: أضف مجلدات إضافية بالعينات

يتم تخزين مجموعات العينات داخل البرنامج النصي عبر مجلدات في نفس الدليل ، قم بإعداد بالضبط كيفية وجود مجموعة 808 داخل ملف GitHub. بهذه الطريقة يمكنني تخزين جميع أنواع مجموعات العينات المختلفة داخل مجلدات يمكن تنظيمها واستبدالها بسهولة.

الشيء الوحيد الذي يجب تغييره في البرنامج النصي نفسه هو المتغير foldNum الذي يخبر البرنامج النصي فقط بعدد مجلدات العينات الموجودة. حاليًا يحتوي البرنامج النصي على foldNum مضبوطة على واحد نظرًا لوجود مجلد فرعي واحد فقط في نفس الدليل (مجموعة 808). الحد الأقصى للمجلدات التي يمكن للبرنامج النصي التعامل معها في الوقت الحالي هو 18 ، وهو عدد المجلدات التي أستخدمها ، ومع ذلك فهي تافهة إلى حد ما غير هذا ، اسمحوا لي أن أعرف إذا كنت بحاجة إلى مساعدة.

لا تهم أسماء المجلدات حقًا (طالما أنها جميعًا مختلفة) لأن البرنامج النصي يقرأ فقط مقدار المجلدات في نفس الدليل ويمسك المسارات بهذه الطريقة. ومع ذلك ، فإن أسماء الملفات نفسها مهمة ، وأكثر من ذلك في الخطوة التالية.

الخطوة 4: إضافة وتكوين عينات إضافية داخل مجلدات جديدة

إضافة وتكوين عينات إضافية داخل مجلدات جديدة
إضافة وتكوين عينات إضافية داخل مجلدات جديدة

يتم تحميل الأصوات في جهاز أخذ العينات عبر مجلدات في نفس الدليل تحتوي على ملفات.wav بأسماء مرقمة بين 0-15. راجع المجلد 808 المضمن للحصول على مثال على ذلك. يجب أن يبدو كل مجلد فرعي به عينات متطابقة مع بعضها البعض.

فهرس مدخلات MIDI في الصفيف noteList يتوافق تمامًا مع اسم ملف.wav.

على سبيل المثال:

  • عند تشغيل ملاحظة MIDI المخزنة في noteList [0] ، سيتم تشغيل ملف wav 0.wav.
  • عند تشغيل ملاحظة MIDI المخزنة في noteList [8] ، يمكن تشغيل ملف wav 8.wav.

لقد فعلت ذلك جزئيًا بحيث يمكن إعداد كل وحدة تحكم MIDI بسهولة للعمل مع البرنامج النصي ، وأيضًا يمكنني بسهولة توسيع نطاق العينة ورقم الإدخال أو تقييدهما ، بالإضافة إلى تنظيم الملفات والبرنامج النصي بحيث يتم تشغيل أسطوانة الطبل الأصوات ، على سبيل المثال ، سيتم حفظها دائمًا كـ 0.wav وسيتم تشغيلها بواسطة ملاحظة MIDI الأولى.

لقد اخترت 16 قيمة بشكل تعسفي إلى حد ما لتتوافق مع المدخلات الـ 16 الموجودة على وحدة التحكم الخاصة بي ، لذلك إذا كنت تفضل إنشاء مُسلسِل بعينة واحدة فقط ، أو مع أكثر من ذلك ، فكل ما عليك فعله هو ترقيم الملفات الصوتية وفقًا لذلك و اطرح أو أضف الأرقام المخزنة داخل مصفوفة noteList لمطابقتها.

إذا كانت مجموعة 808 المضمنة تعمل بشكل صحيح ولكن لديك مشكلة مع العينات الخاصة بك ، فمن المرجح أن يكون الحل هو تغيير معدل عينة الملفات لمطابقة معدل عينة PyGame البالغ 22 و 050 كيلو هرتز وعمق البت الذي يبلغ 16. يمكنك القيام بذلك في Audacity أو أي برنامج آخر لتحرير الصوت. يجب أن يعملوا بشكل مثالي من هناك!

الخطوة 5: مرجع لوحة الأرقام

حسنًا ، هناك الكثير من الأشياء التي تحدث داخل جهاز التسلسل ، أكثر مما كنت أفكر فيه في البداية ، لذلك حشرني قليلاً على لوحة الأرقام لمطابقة الوظيفة المتزايدة. هذا في الاعتبار ، النجمة * والنقطة. كلاهما يعمل كمفاتيح وظيفية.

المرجعي

وظائف رئيسيه

[8] - تبديل المسرع وإيقاف تشغيله

[9] - تبديل وضع التسجيل وإيقاف تشغيله

[أدخل] - تشغيل / إيقاف تسلسل

[0] - حذف الملاحظة الحالية في التسلسل

[Num Lock و *] - اغلاق

[ملاحظة MIDI و.] - لا تحدد الأرقام الزوجية

وظائف TEMPO

[+] - دورة تسريع BPM

[-] - دورة إبطاء BPM

[+ و *] - تسريع BPM بسرعة

[- و *] - سرعة إبطاء BPM

[+ و.] - غرامة تسريع BPM

[- و.] - غرامة إبطاء BPM

وظائف التسلسل

[1-6] استدعاء التسلسل 1-6

[1-6 و.] تخزين التسلسل 1-6

[0 و.] امسح التسلسل الحالي

تغيير مجلدات العينة

[1-9 و *] - التغيير إلى نموذج حزمة في المجلدات 1-9

[1-9 و * و.] - التغيير إلى نموذج حزمة في مجلدات 10-18

إرشادات التسلسل:

- امسح التسلسل الحالي [0 و.] وقم بتخزينه في أي تسلسلات تريد مسحها من الذاكرة.

-استدعاء تسلسل وقم بتخزينه في رقم مختلف لنسخه.

موصى به: