विषयसूची:

रास्पबेरी पाई ड्रम मशीन: 5 कदम
रास्पबेरी पाई ड्रम मशीन: 5 कदम

वीडियो: रास्पबेरी पाई ड्रम मशीन: 5 कदम

वीडियो: रास्पबेरी पाई ड्रम मशीन: 5 कदम
वीडियो: BIGGEST DRUM STICKS EVER! #shorts 2024, जुलाई
Anonim
रास्पबेरी पाई ड्रम मशीन
रास्पबेरी पाई ड्रम मशीन

रास्पबेरी पाई + पायथन के माध्यम से नमूना सीक्वेंसर।

सीक्वेंसर में 4 पॉलीफोनी होते हैं और उपयोगकर्ता को 6 अलग-अलग अनुक्रमों को संग्रहीत और क्यू करने की अनुमति देता है, जिन्हें वे वास्तविक समय में वैकल्पिक कर सकते हैं, और विभिन्न नमूनों के बीच बदलने की क्षमता का समर्थन करते हैं।

मैंने स्क्रिप्ट को इस तरह से लिखा है जो वास्तव में किसी भी MIDI नियंत्रक और ध्वनियों के साथ पूरी तरह से संचालित है। मैं 18 अलग-अलग साउंड बैंकों का उपयोग करता हूं, प्रत्येक में 16 नमूने हैं, हालांकि बैंकों और नमूनों को जोड़ना या घटाना आसान है और इसमें कई संशोधनों की आवश्यकता नहीं है। अगर आपको कोई परेशानी है तो मुझे ईमेल करें: [email protected]

GitHub पर कोड यहां खोजें:

कृपया मुझे बताएं कि क्या आप इसका उपयोग करते हैं, और विशेष रूप से यदि आप इसके साथ एक वीडियो बनाते हैं!

चरण 1: निर्भरता

इस कार्यक्रम के लिए निम्नलिखित (गैर-निर्मित) पायथन मॉड्यूल की आवश्यकता है:

मिडो

पायगेम

Numpy

हालांकि, मिडो कुछ जटिलताओं को फेंकता है क्योंकि मिडो को खुद कुछ निर्भरताओं की आवश्यकता होती है। यह सुनिश्चित करने के लिए कि वे सभी स्थापित हो जाएं, बस अपने रास्पबेरी पाई ('$' को छोड़कर) के टर्मिनल में निम्नलिखित कमांड टाइप करें और सब ठीक हो जाएगा। अन्य मॉड्यूल सामान्य रूप से स्थापित किए जा सकते हैं।

$ sudo apt-get update

$ sudo apt-get install बिल्ड-एसेंशियल

$ sudo apt-libasound-dev या libasound2-dev स्थापित करें

$ sudo apt-get install libjack0

$ sudo apt-libjack-dev स्थापित करें

$ sudo apt-पायथन-पाइप स्थापित करें

$ sudo apt-get install python-dev

$ sudo pip install python-rtmidi

$ sudo pip install mido

चरण 2: मिडी इनपुट मान कॉन्फ़िगर करें

मिडी इनपुट मान कॉन्फ़िगर करें
मिडी इनपुट मान कॉन्फ़िगर करें

मुख्य पायथन स्क्रिप्ट के भीतर नोटलिस्ट नामक एक सरणी मौजूद है जिसमें 16 पूर्णांक (पंक्ति 165.) शामिल हैं। ये मिडी नोट मान हैं जो हमारा नियंत्रक ध्वनि को ट्रिगर करने के लिए पीआई को भेजता है। हालांकि प्रत्येक मिडी नियंत्रक अलग होता है, इसलिए जब तक आपके पास अकाई एलपीडी8 भी नहीं है, तब तक आपको अपने डिवाइस से मेल खाने के लिए इन मानों को बदलने की आवश्यकता होगी।

Github रेपो में "midihelp.py" नामक एक अन्य स्क्रिप्ट भी शामिल है जो विशेष रूप से इस उद्देश्य के लिए बनाई गई है! यह केवल पहले MIDI नियंत्रक से इनपुट मानों को प्रिंट करता है जिसे कंप्यूटर कंसोल पर पहचानता है। आपको बस इतना करना होगा कि इन मानों को सरणी में बदल दें यदि वे नोटलिस्ट में शामिल लोगों से भिन्न हैं।

नोट्स का क्रम इस बात से भी संबंधित है कि प्रति फ़ोल्डर किस ध्वनि प्रभाव को चलाया जाता है, इसलिए इसे भी ध्यान में रखें।

चरण 3: नमूने के साथ अतिरिक्त फ़ोल्डर जोड़ें

स्क्रिप्ट के भीतर नमूना किट एक ही निर्देशिका में फ़ोल्डरों के माध्यम से संग्रहीत किए जाते हैं, ठीक उसी तरह सेट करें जैसे 808 किट GitHub फ़ाइल के भीतर है। इस तरह मेरे पास फ़ोल्डर्स के भीतर संग्रहीत विभिन्न नमूना सेट के सभी प्रकार हो सकते हैं जिन्हें आसानी से व्यवस्थित और प्रतिस्थापित किया जाता है।

स्क्रिप्ट में बदलने के लिए केवल एक चीज है वेरिएबल फोल्डनम जो सिर्फ स्क्रिप्ट को बताता है कि नमूनों के कितने फोल्डर हैं। वर्तमान में स्क्रिप्ट में फोल्डनम एक पर सेट है क्योंकि एक ही निर्देशिका (808 किट) में केवल एक सबफ़ोल्डर है। स्क्रिप्ट इस समय अधिकतम 18 फ़ोल्डरों को संभाल सकती है, जो कि मैं कितने का उपयोग कर रहा हूं, हालांकि यह काफी मामूली है इसे बदलें, अगर आपको मदद चाहिए तो मुझे बताएं।

फ़ोल्डरों के नाम वास्तव में मायने नहीं रखते (जब तक वे सभी अलग हैं) क्योंकि स्क्रिप्ट सिर्फ उसी निर्देशिका में फ़ोल्डरों की मात्रा को पढ़ती है और उस तरह से पथ पकड़ लेती है। फ़ाइलों के नाम स्वयं महत्वपूर्ण हैं, हालांकि अगले चरण में उस पर और अधिक।

चरण 4: नए फ़ोल्डर में अतिरिक्त नमूने जोड़ें और कॉन्फ़िगर करें

नए फ़ोल्डर में अतिरिक्त नमूने जोड़ें और कॉन्फ़िगर करें
नए फ़ोल्डर में अतिरिक्त नमूने जोड़ें और कॉन्फ़िगर करें

ध्वनियाँ उसी निर्देशिका में फ़ोल्डरों के माध्यम से सैंपलर में लोड की जाती हैं जिसमें.wav फ़ाइलें होती हैं, जिनका नाम 0-15 के बीच होता है। इसके उदाहरण के लिए शामिल 808 फ़ोल्डर देखें। नमूनों वाला प्रत्येक सबफ़ोल्डर एक दूसरे के समान दिखना चाहिए।

सरणी NoteList में MIDI इनपुट की अनुक्रमणिका बिल्कुल.wav फ़ाइल नाम से मेल खाती है।

उदाहरण के लिए:

  • जब आप नोटलिस्ट [0] में संग्रहीत मिडी नोट को ट्रिगर करते हैं तो wav फ़ाइल 0.wav चलती है।
  • जब आप नोटलिस्ट [8] में संग्रहीत मिडी नोट को ट्रिगर करते हैं तो wav फ़ाइल 8.wav चलती है।

मैंने इसे आंशिक रूप से इसलिए किया ताकि स्क्रिप्ट के साथ काम करने के लिए हर एक MIDI नियंत्रक को आसानी से स्थापित किया जा सके, और इसलिए मैं नमूना और इनपुट संख्या को आसानी से बढ़ा या सीमित कर सकता हूं, साथ ही फाइलों और स्क्रिप्ट को व्यवस्थित कर सकता हूं ताकि किक ड्रम उदाहरण के लिए, ध्वनियाँ हमेशा 0.wav के रूप में सहेजी जाएंगी और पहले MIDI नोट द्वारा ट्रिगर की जाएंगी।

मैंने अपने नियंत्रक पर 16 इनपुट के अनुरूप कुछ हद तक मनमाने ढंग से 16 मानों को चुना है, इसलिए यदि आप केवल 1 नमूने के साथ अनुक्रमक बनाना पसंद करते हैं, या कई और के साथ, आपको केवल ऑडियो फाइलों को तदनुसार नंबर देना होगा और मिलान करने के लिए नोटलिस्ट सरणी के भीतर संग्रहीत संख्याओं को घटाएं या जोड़ें।

यदि शामिल 808 किट ठीक से काम करती है, लेकिन आपको अपने स्वयं के नमूनों में समस्या है, तो समाधान सबसे अधिक संभावना है कि PyGame की 22, 050khz नमूना दर और 16 की बिट गहराई से मेल खाने के लिए फ़ाइलों की नमूना दर को बदल दिया जाए। आप इसे ऑडेसिटी में कर सकते हैं या कोई अन्य ऑडियो संपादन सॉफ्टवेयर। उन्हें वहां से पूरी तरह से काम करना चाहिए!

चरण 5: नंबर पैड संदर्भ

ठीक है, सीक्वेंसर के भीतर बहुत सी चीजें चल रही हैं, जितना कि मेरे मन में शुरू में था, इसलिए मैं बढ़ी हुई कार्यक्षमता से मेल खाने के लिए एक नंबर पैड पर काफी रट गया। इसे ध्यान में रखते हुए, तारांकन * और अवधि। दोनों फ़ंक्शन कुंजियों के रूप में कार्य करते हैं।

संदर्भ

मुख्य कार्य

[८] - मेट्रोनोम को चालू और बंद टॉगल करें

[९] - रिकॉर्डिंग मोड को चालू और बंद टॉगल करें

[दर्ज करें] - अनुक्रम चलाएं / रोकें

[०] - क्रम में वर्तमान नोट हटाएं

[संख्या लॉक और *] - शट डाउन

[मिडी नोट और।] - सम संख्याओं को परिमाणित न करें

गति समारोह

[+] - कोर्स स्पीड अप बीपीएम

[-] - कोर्स धीमा बीपीएम

[+ और *] - तेजी से बीपीएम को गति दें

[- और *] - तेजी से धीमा बीपीएम

[+ और।] - फाइन स्पीड अप बीपीएम

[- और।] - फाइन स्लो डाउन बीपीएम

अनुक्रम कार्य

[१-६] याद अनुक्रम १-६

[१-६ और.] स्टोर अनुक्रम १-६

[० और।] वर्तमान अनुक्रम साफ़ करें

नमूना फ़ोल्डर बदलना

[१-९ और *] - फ़ोल्डरों में नमूना पैक में बदलें १-९

[१-९ और * और।] - फोल्डर में सैंपल पैक में बदलें १०-१८

अनुक्रम युक्तियाँ:

-वर्तमान अनुक्रम [0 और।] को साफ़ करें और इसे किसी भी क्रम में संग्रहीत करें जिसे आप स्मृति से साफ़ करना चाहते हैं।

-एक अनुक्रम को याद करें और इसे कॉपी करने के लिए एक अलग नंबर पर स्टोर करें।

सिफारिश की: