فهرست مطالب:

Raspberry Pi Drum Machine: 5 مرحله
Raspberry Pi Drum Machine: 5 مرحله

تصویری: Raspberry Pi Drum Machine: 5 مرحله

تصویری: Raspberry Pi Drum Machine: 5 مرحله
تصویری: Can You Reattach a Severed Finger? 🤔 2024, نوامبر
Anonim
دستگاه طبل رزبری پای
دستگاه طبل رزبری پای

Sequencer نمونه ، از طریق Raspberry Pi + Python.

ترتیب سنج دارای 4 چند صدایی است و به کاربر اجازه می دهد تا 6 دنباله مختلف را ذخیره کند و به آنها اشاره کند و می تواند بین نمونه های مختلف تغییر کند.

من اسکریپت را به گونه ای نوشتم که کاملاً با هر کنترلر MIDI و صداها قابل اجرا باشد. من از 18 بانک صدای مختلف ، هر کدام 16 نمونه استفاده می کنم ، اما افزودن یا تفریق بانک ها و نمونه ها آسان است و نیازی به تغییرات زیادی ندارد. اگر مشکلی دارید به من یک ایمیل بفرستید: [email protected]

کد را در GitHub در آدرس زیر بیابید:

لطفاً در صورت استفاده از آن به من اطلاع دهید ، و مخصوصاً اگر با آن فیلم می سازید!

مرحله 1: وابستگی ها

این برنامه به ماژول های پایتون زیر (غیر داخلی) نیاز دارد:

میدو

بازی بازی

بی حس

با این حال ، میدو برخی از عوارض را ایجاد می کند زیرا خود میدو به چند وابستگی نیاز دارد. برای اینکه مطمئن شوید همه آنها نصب شده اند ، کافی است دستورات زیر را در ترمینال رزبری پای خود وارد کنید (با حذف '$') و همه چیز خوب خواهد بود. سایر ماژول ها را می توان به طور معمول نصب کرد.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get libasound-dev یا libasound2-dev را نصب کنید

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get python-pip را نصب کنید

$ sudo apt-get python-dev را نصب کنید

$ sudo pip python-rtmidi را نصب کنید

$ sudo pip mido را نصب کنید

مرحله 2: مقدارهای ورودی Midi را پیکربندی کنید

پیکربندی مقادیر ورودی Midi
پیکربندی مقادیر ورودی Midi

در اسکریپت اصلی پایتون یک آرایه به نام noteList وجود دارد که از 16 عدد صحیح تشکیل شده است (خط 165.) اینها مقادیر یادداشت MIDI هستند که کنترل کننده ما برای فعال کردن صداها به Pi ارسال می کند. هر کنترلر midi متفاوت است ، بنابراین مگر اینکه Akai LPD8 نیز داشته باشید ، به احتمال زیاد باید این مقادیر را برای مطابقت با دستگاه خود تغییر دهید.

بازپخش Github همچنین شامل یک اسکریپت دیگر به نام "midihelp.py" است که به طور خاص برای این منظور ساخته شده است! تنها کاری که انجام می دهد این است که مقادیر ورودی را از اولین کنترلر MIDI که رایانه تشخیص می دهد روی کنسول چاپ کند. تنها کاری که باید انجام دهید این است که این مقادیر را در آرایه با مقادیر موجود در noteList تغییر دهید.

ترتیب یادداشت ها نیز با میزان پخش صدا در هر پوشه مرتبط است ، بنابراین این را نیز در نظر داشته باشید.

مرحله 3: پوشه های اضافی را با نمونه اضافه کنید

کیت های نمونه در اسکریپت از طریق پوشه هایی در همان فهرست ذخیره می شوند ، دقیقاً تنظیم کنید که کیت 808 در فایل GitHub چگونه است. به این ترتیب من می توانم انواع مختلف نمونه های مختلف را در پوشه هایی ذخیره کنم که به راحتی سازماندهی و جایگزین شوند.

تنها چیزی که در اسکریپت تغییر می کند متغیر foldNum است که فقط به اسکریپت می گوید که چند پوشه نمونه وجود دارد. در حال حاضر اسکریپت foldNum را روی یک تنظیم کرده است زیرا فقط یک زیر پوشه در همان فهرست (کیت 808) وجود دارد. حداکثر پوشه هایی که اسکریپت در حال حاضر می تواند کنترل کند 18 است ، که من از این تعداد استفاده می کنم ، با این حال نسبتاً بی اهمیت است این را تغییر دهید ، در صورت نیاز به کمک به من اطلاع دهید.

اسامی پوشه ها واقعاً اهمیتی ندارند (به شرطی که همه آنها متفاوت باشند) زیرا اسکریپت فقط تعداد پوشه های یک پوشه را می خواند و مسیرها را به این ترتیب می گیرد. هر چند نام فایلها مهم است ، در مرحله بعد بیشتر توضیح دهید.

مرحله 4: افزودن و پیکربندی نمونه های اضافی در پوشه های جدید

افزودن و پیکربندی نمونه های اضافی در پوشه های جدید
افزودن و پیکربندی نمونه های اضافی در پوشه های جدید

صداها از طریق پوشه های موجود در همان پوشه حاوی.wav با نامهای بین 0 تا 15 در نمونه گیر بارگذاری می شوند. برای نمونه ، پوشه 808 موجود را مشاهده کنید. هر زیر پوشه ای با نمونه ها باید یکسان به نظر برسند.

فهرست ورودی های MIDI در noteList آرایه دقیقاً با نام فایل ww مطابقت دارد.

مثلا:

  • وقتی نوت MIDI ذخیره شده در noteList [0] را فعال می کنید ، فایل wav 0.wav پخش می شود.
  • وقتی نوت MIDI ذخیره شده در noteList [8] را فعال می کنید ، فایل wav 8.wav پخش می شود.

من این کار را تا حدی انجام دادم تا هر کنترلر MIDI به آسانی برای کار با اسکریپت تنظیم شود و همچنین می توانم به راحتی نمونه یا شماره ورودی را گسترش داده یا محدود کنم ، همچنین فایل ها و اسکریپت را به گونه ای تنظیم کنم که درام ضربه زدن برای مثال ، صداها همیشه با 0.wav ذخیره می شوند و با اولین یادداشت MIDI فعال می شوند.

من 16 مقدار را تا حدودی دلخواه انتخاب کرده ام تا با 16 ورودی کنترلر من مطابقت داشته باشد ، بنابراین اگر ترجیح می دهید یک ترتیب سنج تنها با 1 نمونه یا با تعداد زیادی دیگر بسازید ، تنها کاری که باید انجام دهید این است که فایلهای صوتی را مطابق آن شماره گذاری کنید و اعداد ذخیره شده در آرایه noteList را برای مطابقت کم یا اضافه کنید.

اگر کیت 808 موجود به درستی کار می کند اما شما با نمونه های خود مشکل دارید ، به احتمال زیاد راه حل تغییر میزان نمونه فایلها برای مطابقت با سرعت نمونه PyGame 22 ، 050khz و عمق بیت 16 است. این کار را می توانید در Audacity یا سایر نرم افزارهای ویرایش صدا آنها باید از آنجا کاملاً کار کنند!

مرحله 5: مرجع شماره پد

خوب ، چیزهای زیادی در داخل دنبال کننده وجود دارد ، بیشتر از آنچه در ابتدا در ذهن داشتم ، بنابراین من کمی روی یک شماره پد قرار گرفتم تا با افزایش عملکرد مطابقت داشته باشد. این را در نظر داشته باشید ، ستاره * و دوره. هر دو به عنوان کلیدهای عملکردی عمل می کنند.

مرجع

توابع اصلی

[8] - روشن و خاموش کردن مترونوم

[9] - روشن و خاموش کردن حالت ضبط

[Enter] - دنباله پخش/مکث

[0] - حذف یادداشت جاری در دنباله

[Num Lock and *] - خاموش شوید

[MIDI Note and.] - به اعداد زوج کوانتید نکنید

عملکردهای تمپو

[+] - سرعت بخشیدن به دوره BPM

[-] - دوره BPM را کند کنید

[+ و *] - BPM را سریع افزایش دهید

[- و *] - سرعت BPM را به سرعت کند کنید

[+ و.] - سرعت بالا در BPM

[- و.] - خوب BPM کند کنید

توابع توالی

[1-6] دنباله 1-6 را به یاد بیاورید

[1-6 و.] دنباله 1-6 فروشگاه

[0 و.] پاک کردن دنباله جاری

تغییر پوشه های نمونه

[1-9 و *]-تغییر به Sample Pack در پوشه های 1-9

[1-9 و * و.]-به بسته نمونه در پوشه های 10-18 تغییر دهید

نکات توالی:

-دنباله جاری [0 و.] را پاک کنید و آن را در هر دنباله ای که می خواهید از حافظه پاک شود ذخیره کنید.

دنباله ای را به یاد بیاورید و آن را در یک شماره متفاوت ذخیره کنید تا کپی شود.

توصیه شده: