विषयसूची:

रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल: 6 चरण (चित्रों के साथ)
रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल: 6 चरण (चित्रों के साथ)

वीडियो: रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल: 6 चरण (चित्रों के साथ)

वीडियो: रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल: 6 चरण (चित्रों के साथ)
वीडियो: Raspberry PI effects plugins vs. ZOOM MS100BT 2024, जुलाई
Anonim
रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल
रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल
रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल
रास्पबेरी पाई स्टॉम्पबॉक्स सिंथ मॉड्यूल

इस परियोजना का लक्ष्य फ्लूडसिंथ-आधारित ध्वनि मॉड्यूल को स्टॉम्पबॉक्स में रखना है। इस मामले में तकनीकी-ध्वनि वाले शब्द "ध्वनि मॉड्यूल" का अर्थ एक ऐसा उपकरण है जो MIDI संदेशों (यानी नोट मान, वॉल्यूम, पिच मोड़, आदि) को लेता है और वास्तविक संगीत ध्वनियों को संश्लेषित करता है। इसे MIDI नियंत्रक के साथ एक साथ रखें - जो कि लीजन, सस्ते, और अक्सर बहुत अच्छे (कीटार की तरह!) - और आपके पास एक सिंथेसाइज़र है जिसे आप अंतहीन रूप से संशोधित और ट्विक कर सकते हैं, और इस तरह से डिज़ाइन कर सकते हैं जो आपकी खेल शैली के अनुकूल हो।

इस परियोजना का एक व्यापक अवलोकन यह है कि हम एक छोटा सिंगल-बोर्ड लिनक्स कंप्यूटर (इस मामले में एक रास्पबेरी पाई 3) लेते हैं, एक चरित्र एलसीडी, एक युगल पुशबटन और एक यूएसबी साउंडकार्ड संलग्न करते हैं (चूंकि पाई की ऑनबोर्ड ध्वनि बहुत अच्छी नहीं है।), और USB MIDI, पावर और ऑडियो आउट के लिए कुछ बाहरी कनेक्शन के साथ हैमंड 1590bb स्टॉम्पबॉक्स (जैसे कि गिटार प्रभाव के लिए उपयोग किए जाने वाले) में सब कुछ रटना। फिर हम स्टार्टअप पर एक प्रोग्राम चलाने के लिए आंतरिक सॉफ़्टवेयर को कॉन्फ़िगर करते हैं जो FluidSynth (एक उत्कृष्ट, बहु-प्लेटफ़ॉर्म, मुफ़्त सॉफ़्टवेयर सिंथेसाइज़र) चलाता है, LCD को नियंत्रित करता है, और हमें पुशबटन का उपयोग करके पैच और सेटिंग्स बदलने देता है।

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

अद्यतन (मई २०२०): हालांकि यह निर्देश अभी भी इस तरह की परियोजना के लिए शुरू करने के लिए एक शानदार जगह है, मैंने हार्डवेयर और सॉफ्टवेयर दोनों पक्षों में बहुत सुधार किया है। नवीनतम सॉफ्टवेयर FluidPatcher है, जो GitHub पर उपलब्ध है - रास्पबेरी पाई को सेट करने के बारे में बहुत सारे विवरणों के लिए विकी देखें। स्क्विशबॉक्स पर लगातार समाचार और अपडेट के लिए मेरी साइट गीक फंक लैब्स देखें!

आपूर्ति

यह अधिक महत्वपूर्ण घटकों की (और व्याख्या) की एक छोटी सूची है:

  • रास्पबेरी पाई 3 कंप्यूटर - कोई भी सिंगल बोर्ड लिनक्स कंप्यूटर काम कर सकता है, लेकिन पाई 3 में बिना किसी विलंबता के फ्लुइडसिंथ को चलाने के लिए पर्याप्त प्रसंस्करण शक्ति है, और बड़े साउंडफोंट लोड करने के लिए पर्याप्त मेमोरी है। दोष यह है कि इसमें खराब ऑनबोर्ड ध्वनि है, इसलिए आपको USB साउंडकार्ड की आवश्यकता है। चिप एक विकल्प है जिसे मैं खोज रहा हूं (छोटे पदचिह्न, बेहतर ध्वनि, लेकिन कम मेमोरी/प्रोसेसर)
  • हैमंड १५९०बीबी एनक्लोजर - मेरा सुझाव है कि यदि आप रंग चाहते हैं तो प्री-पाउडरकोटेड एक खरीद लें, जब तक कि स्टॉम्पबॉक्स को पेंट करना कुछ ऐसा न हो जो आप पसंद करते हैं। मैंने बहुत सारे संदेश बोर्ड ब्राउज़ किए लेकिन मुझे लगता है कि मेरे पास धैर्य या सही प्रकार का पेंट नहीं है, क्योंकि दो प्रयासों के बाद मेरे परिणाम बहुत अच्छे हैं।
  • यूएसबी साउंड कार्ड - आप इनमें से एक उपयुक्त सस्ते में पा सकते हैं। इस प्यारे एडफ्रूट ट्यूटोरियल (कई में से एक) के अनुसार, आपको अधिकतम अनुकूलता के लिए CM109 चिपसेट का उपयोग करने वाले के साथ रहना चाहिए।
  • कैरेक्टर एलसीडी - उन्हें प्राप्त करने के लिए कई अलग-अलग स्थान हैं, लेकिन पिनआउट काफी मानक प्रतीत होते हैं। सुनिश्चित करें कि आपको बैकलाइट मिले ताकि आप स्मोकी क्लबों में खेलते समय अपने प्रीसेट देख सकें।
  • मोमेंट्री स्टॉम्पस्विच (२) - प्राप्त करना थोड़ा कठिन है, लेकिन मुझे टॉगल करने के बजाय क्षणिक मिल गया ताकि मैं अधिक बहुमुखी प्रतिभा प्राप्त कर सकूं। यदि मैं उस व्यवहार को चाहता हूं तो मैं सॉफ़्टवेयर में टॉगल अनुकरण कर सकता हूं, लेकिन इस तरह मेरे पास शॉर्ट टैप, लॉन्ग प्रेस इत्यादि के लिए अलग-अलग कार्य भी हो सकते हैं।
  • पाई के लिए एडफ्रूट पर्मा-प्रोटो हैट - इससे मुझे एलसीडी और अन्य घटकों को पीआई के विस्तारक बंदरगाह से जुड़े बिना अतिरिक्त जगह लेने में मदद मिली। अगर मैं नियमित परफ़ॉर्मर का उपयोग करने की कोशिश करता, तो मुझे सभी आवश्यक GPIO पिन से कनेक्ट करने के लिए पाई के किनारों पर चिपकना पड़ता। दो तरफा चढ़ाना और मिलान बढ़ते छेद भी बहुत उपयोगी थे। इन सबके आलोक में यह वास्तव में सबसे सस्ता विकल्प था।
  • यूएसबी कनेक्टर - शक्ति के लिए 1 बी-प्रकार की महिला, और ए-प्रकार के दो पुरुष और महिला जिसके साथ आंतरिक कनेक्शन के लिए कुछ पतली, लचीली एक्सटेंडर केबल बनाई जाती हैं।
  • 1/4 "ऑडियो जैक - मैंने एक स्टीरियो और एक मोनो का उपयोग किया। इस तरह स्टीरियो एक हेडफ़ोन/मोनो जैक हो सकता है, या अन्य जैक कनेक्ट होने पर बस बायां सिग्नल ले जा सकता है।

चरण 1: आंतरिक इलेक्ट्रॉनिक्स

आंतरिक इलेक्ट्रॉनिक्स
आंतरिक इलेक्ट्रॉनिक्स
आंतरिक इलेक्ट्रॉनिक्स
आंतरिक इलेक्ट्रॉनिक्स
आंतरिक इलेक्ट्रॉनिक्स
आंतरिक इलेक्ट्रॉनिक्स

हम LCD और उससे जुड़े घटकों और पुशबटन को Pi Hat से जोड़ेंगे। साथ ही, हम क्रमशः पावर और एक MIDI डिवाइस कनेक्ट करने के लिए USB-B और USB-A जैक जोड़ेंगे। हम USB-A पोर्ट लाते हैं क्योंकि हमें साउंड कार्ड को जोड़ने के लिए Pi के USB पोर्ट में से एक का उपयोग करने की आवश्यकता होती है, जिसे हम बाड़े के अंदर रखना चाहते हैं, इसलिए हमारे पास USB पोर्ट बॉक्स के किनारे से फ्लश नहीं हो सकते। मैंने बिजली के लिए एक यूएसबी-बी पोर्ट का इस्तेमाल किया क्योंकि मुझे लगा कि यह पीआई के माइक्रो-यूएसबी पावर कनेक्टर की तुलना में अधिक सजा ले सकता है, साथ ही मुझे एक अच्छा अभिविन्यास नहीं मिला जहां कनेक्टर बॉक्स के किनारे के बगल में हो।

आपको उन छेदों के बीच के निशान को काटने के लिए चाकू का उपयोग करना होगा जहां आप यूएसबी जैक के लिए पिन में मिलाप करेंगे। बस सावधान रहें कि अन्य पिनों को जोड़ने वाले बोर्ड में किसी भी आंतरिक निशान को न काटें - या यदि आप गलती से (मेरी तरह) जम्पर वायर का उपयोग करके उन्हें फिर से जोड़ दें। यूएसबी-बी जैक के वीसीसी और जीएनडी पिन क्रमशः पीआई के विस्तारक बंदरगाह पर 5वी और जीएनडी पर जाते हैं। इस तरह आप अपने स्टॉम्पबॉक्स को फोन चार्जर से पावर दे सकते हैं (यह मानते हुए कि इसमें पर्याप्त एम्परेज है - 700mA मेरे लिए काम करता है, लेकिन आप यह सुनिश्चित करना चाहते हैं कि USB पोर्ट में आपके कंट्रोलर को पावर देने के लिए पर्याप्त रस है) और एक USB A-B केबल।

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

क्या कहां से जुड़ा है, इसके विवरण के लिए योजनाबद्ध से परामर्श लें। ध्यान दें कि पुशबटन 3.3V से जुड़े हैं - 5V से नहीं! GPIO पिन केवल 3.3V - 5V के लिए रेट किए गए हैं जो आपके CPU को नुकसान पहुंचाएंगे। USB-A जैक रिबन केबल की दूसरी पट्टी से जुड़ जाता है, जिसे आप तब USB प्लग में मिला सकते हैं जिसे आप अपने MIDI नियंत्रक के लिए Pi के USB पोर्ट में से किसी एक से कनेक्ट करेंगे। प्लग से किसी भी अतिरिक्त धातु को काट लें ताकि यह कम चिपक जाए, और तनाव से राहत के लिए गर्म गोंद का उपयोग करें - यह सुंदर नहीं होना चाहिए क्योंकि यह बॉक्स के अंदर छिपा होगा।

चरण 2: ऑडियो आउटपुट वायरिंग

ऑडियो आउटपुट वायरिंग
ऑडियो आउटपुट वायरिंग
ऑडियो आउटपुट वायरिंग
ऑडियो आउटपुट वायरिंग
ऑडियो आउटपुट वायरिंग
ऑडियो आउटपुट वायरिंग

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

साउंड कार्ड से अपने 1/4" जैक में ऑडियो प्राप्त करने के लिए, 3.5 मिमी हेडफ़ोन या AUX केबल को काट दें। सुनिश्चित करें कि इसमें 3 कनेक्टर हैं - टिप, रिंग और स्लीव (TRS), 2 या 4 के विपरीत आस्तीन जमीन होना चाहिए, टिप आमतौर पर सही चैनल है, और अंगूठी (मध्य कनेक्टर) आमतौर पर छोड़ी जाती है। आप टिप और रिंग को दो मोनो (टीएस - टिप, आस्तीन) 1/4 "जैक से जोड़ सकते हैं और किया जा सकता है इसके साथ, लेकिन आप थोड़े से अतिरिक्त तारों के साथ कुछ और बहुमुखी प्रतिभा प्राप्त कर सकते हैं। एक टीएस जैक खोजें जिसमें तीसरा क्षणिक संपर्क हो, जैसा कि ऊपर चित्र में योजनाबद्ध रूप से दिखाया गया है। प्लग डालने से यह संपर्क टूट जाता है, इसलिए जैसा कि आप उम्मीद से आरेख से बता सकते हैं कि यदि कोई प्लग डाला गया है तो बायां सिग्नल TS जैक में जाएगा, और यदि कोई प्लग नहीं डाला गया है तो TRS जैक की रिंग में जाएगा। इस तरह आप हेडफ़ोन को स्टीरियो जैक में, एक मोनो केबल को संयुक्त दाएं/बाएं (मोनो) सिग्नल के लिए स्टीरियो जैक में, या अलग-अलग दाएं और बाएं (स्टीरियो) आउटपुट के लिए प्रत्येक जैक में एक केबल प्लग कर सकते हैं।

मैंने जैक के ग्राउंड पिन को साउंड कार्ड से आने वाली केबल से जोड़ा, ताकि बॉक्स में सब कुछ एक ही जमीन साझा करे और मैं ग्राउंड लूप की गंदी चर्चा से बचूं। हालाँकि, आपने जो प्लग इन किया है, उसके आधार पर इसका विपरीत प्रभाव हो सकता है - इसलिए आप एक स्विच शामिल करना चाह सकते हैं जिससे आप या तो कनेक्ट कर सकें या 1/4" जैक पर जमीन को "उठा" सकें।

चरण 3: संलग्नक तैयार करना

संलग्नक तैयार करना
संलग्नक तैयार करना
संलग्नक तैयार करना
संलग्नक तैयार करना
संलग्नक तैयार करना
संलग्नक तैयार करना

यह चरण स्क्रीन, बटन, कनेक्टर आदि के लिए बॉक्स में छेद काटने और पाई टोपी को माउंट करने के लिए बाड़े में एपॉक्सींग स्टैंडऑफ को कवर करता है।

यह सुनिश्चित करने के लिए कि सब कुछ फिट बैठता है और सही तरीके से उन्मुख है, सभी घटकों को बाड़े में रखकर शुरू करें। फिर, ध्यान से मापें और चिह्नित करें कि आप कहाँ छेद करने जा रहे हैं। गोल छेदों को काटते समय, मैं अनुशंसा करता हूं कि आप एक छोटे से बिट से शुरू करें और आपके लिए आवश्यक आकार तक काम करें - छेद को केंद्र में रखना आसान है और आपकी ड्रिल के जाम होने की संभावना कम है। इच्छित उद्घाटन के विपरीत कोनों में एक छेद ड्रिल करके आयताकार छेद काटा जा सकता है, फिर एक आरा के साथ अन्य दो कोनों में काट दिया जा सकता है। जब तक आप धीरे से चलते हैं, तब तक एल्यूमीनियम की यह मोटाई वास्तव में एक आरा के साथ ठीक कट जाती है। ओपनिंग के कोनों को चौकोर करने के लिए एक चौकोर फाइल बहुत मददगार होती है। यदि आपके पास मोटे केबल हैं तो USB प्लग के लिए उद्घाटन को थोड़ा उदार बनाएं।

एक दो-चरण एपॉक्सी (चित्र में गोरिल्ला गोंद की तरह) टोपी के लिए धातु के बाड़े में गतिरोध को चिपकाने के लिए अच्छी तरह से काम करता है। बाड़े की सतह और गतिरोध के निचले हिस्से को स्टील वूल या स्क्रूड्राइवर से थोड़ा ऊपर उठाएं ताकि एपॉक्सी को बेहतर पकड़ मिल सके। मैं अनुशंसा करता हूं कि आप अपने स्टैंडऑफ को पीआई टोपी से चिपकाने से पहले संलग्न करें ताकि आप जान सकें कि वे सही तरीके से स्थित हैं - यहां बहुत अधिक जगह नहीं है। मैंने केवल तीन गतिरोधों का उपयोग किया क्योंकि मेरी एलसीडी चौथे के रास्ते में थी। एपॉक्सी के दो घटकों को मिलाएं, कुछ को गतिरोध पर चिपकाएं और उन्हें जगह पर जकड़ें। 10-15 सेकंड से अधिक समय के बाद भागों को हिलाने या बदलने से बचें, अन्यथा बंधन भंगुर हो जाएगा। इसे सेट होने के लिए 24 घंटे दें ताकि आप काम करना जारी रख सकें। पूरी तरह से ठीक होने में कुछ दिन लगते हैं, इसलिए बंधन पर बेवजह जोर न दें।

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

चरण 4: सॉफ्टवेयर सेटअप

सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप
सॉफ्टवेयर सेटअप

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

sudo apt-get update && sudo apt-get upgrade

सुडो आरपीआई-अपडेट

इसके बाद, आप यह सुनिश्चित करना चाहते हैं कि आप ssh से Pi के लिए वाईफाई का उपयोग कर सकते हैं और बाड़े के अंदर बटन लगाने के बाद संशोधन कर सकते हैं। सबसे पहले, ssh सर्वर को टाइप करके चालू करें

सुडो रास्पि-कॉन्फ़िगरेशन

और "इंटरफेसिंग विकल्प" पर जाकर एसएसएच सर्वर को सक्षम करना। अब, wpa_supplicant.conf फ़ाइल को संपादित करके pi में वायरलेस नेटवर्क जोड़ें:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

और अंत में निम्नलिखित पंक्तियों को जोड़ना:

नेटवर्क = {

ssid = "आपका-नेटवर्क" psk = "आपका-पासवर्ड" }

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

FluidSynth स्थापित करने के लिए, टाइप करें

sudo apt-fluidsynth स्थापित करें

इस चरण से जुड़ी फ़ाइलें स्टॉम्पबॉक्स नियंत्रण और FluidSynth के बीच एक इंटरफ़ेस प्रदान करती हैं, और इसे /home/pi निर्देशिका में कॉपी किया जाना चाहिए। प्रत्येक फ़ाइल क्या करती है, इसका संक्षिप्त विवरण यहां दिया गया है:

  • squishbox.py - एक पायथन स्क्रिप्ट जो FluidSynth के उदाहरण के साथ शुरू होती है और संचार करती है, स्टॉम्पबॉक्स बटन से इनपुट पढ़ती है, और एलसीडी को जानकारी लिखती है
  • config_squishbox.yaml - (ज्यादातर) मानव-पठनीय YAML प्रारूप में एक कॉन्फ़िगरेशन फ़ाइल जो स्क्विशबॉक्स प्रोग्राम के लिए सेटिंग्स और पैच जानकारी संग्रहीत करती है
  • Fluidsynth.py - एक अजगर आवरण जो FluidSynth पुस्तकालय में C कार्यों के लिए बाइंडिंग प्रदान करता है, FluidSynth की अधिक कार्यक्षमता तक पहुँचने के लिए मेरे द्वारा जोड़े गए कई अतिरिक्त बाइंडिंग के साथ
  • ModWaves.sf2 - एक बहुत छोटा साउंडफॉन्ट जो मैंने साउंडफॉन्ट प्रारूप में मॉड्यूलेटर के उपयोग और शक्ति को प्रदर्शित करने के लिए प्रदान किया था

एक अजगर स्क्रिप्ट होने से FluidSynth प्रक्रिया की स्थापना होती है और सभी बटन/एलसीडी सामान को संभालना काफी अच्छी तरह से काम करता है - MIDI संदेश सीधे FluidSynth पर जाते हैं और स्क्रिप्ट केवल इसके साथ इंटरैक्ट करती है जब इसकी आवश्यकता होती है।

अजगर स्क्रिप्ट को कुछ अजगर पुस्तकालयों की आवश्यकता होती है जो डिफ़ॉल्ट रूप से स्थापित नहीं होते हैं। आप आसान पाइप टूल का उपयोग करके उन्हें सीधे पायथन पैकेज इंडेक्स से इंस्टॉल कर सकते हैं:

sudo pip RPLCD pyyaml . स्थापित करें

अंत में, आप चाहते हैं कि पाई बूट पर अजगर स्क्रिप्ट चलाए। ऐसा करने के लिए, rc.local फ़ाइल संपादित करें:

sudo vi /etc/rc.local

फ़ाइल में अंतिम 'एक्जिट 0' लाइन से ठीक पहले निम्न पंक्ति डालें:

अजगर /home/pi/squishbox.py और

चरण 5: अंतिम विधानसभा

आखिरी सभा
आखिरी सभा
आखिरी सभा
आखिरी सभा
आखिरी सभा
आखिरी सभा

सभी टुकड़ों को बॉक्स में डालने से पहले, सब कुछ प्लग इन करना और यह सुनिश्चित करना एक बहुत अच्छा विचार है कि सॉफ़्टवेयर काम करता है, जैसा कि ऊपर की छवियों में दिखाया गया है। चित्र 3-6 सभी व्यक्तिगत भागों को दिखाते हैं और उत्तरोत्तर वे मेरे बॉक्स में कैसे फिट होते हैं। एलसीडी वास्तव में इसके खिलाफ दबाने वाले तारों द्वारा आयोजित किया जाता है, लेकिन यदि आप इसे पसंद नहीं करते हैं तो आप कुछ गर्म गोंद का उपयोग कर सकते हैं या कुछ और बढ़ते शिकंजा जोड़ सकते हैं। बॉक्स के ढक्कन पर नारंगी डक्ट टेप धातु के खिलाफ पाई को छोटा रखने के लिए है।

चीजों को फिट करने के लिए आपको प्रयोग और पुन: कॉन्फ़िगर करना पड़ सकता है। स्नग अच्छा है - बॉक्स में जितने कम हिस्से घूमते हैं, उतना अच्छा है। गर्मी कोई समस्या नहीं लगती है, और मुझे संलग्नक द्वारा वाईफाई सिग्नल को अवरुद्ध करने में कोई समस्या नहीं है। जब आप स्टॉम्प सत्र कर रहे हों तो इसे इधर-उधर खिसकने से बचाने के लिए बॉक्स के निचले भाग पर कुछ चिपकने वाले रबर के पैर (आप उन्हें हार्डवेयर की दुकान पर पा सकते हैं) चित्रित नहीं हैं।

जब चीजें एक साथ खराब हो जाती हैं, तो अप्रत्याशित रूप से टकराने/स्क्वीशिंग/झुकने के लिए देखें। जांच करने के लिए एक बात यह है कि केबल डालने पर 1/4 जैक के लिए पर्याप्त जगह है - युक्तियाँ जैक संपर्कों की तुलना में थोड़ी दूर चिपक जाती हैं। इसके अलावा, मेरे निर्माण में मैंने पीआई को किनारे के करीब थोड़ा सा लगाया एसडी कार्ड के अंत में दबाए गए बॉक्स और ढक्कन पर होंठ और इसे स्नैप कर दिया - मुझे होंठ में एक पायदान दर्ज करना पड़ा ताकि ऐसा न हो।

चरण 6: उपयोग

Image
Image
प्रयोग
प्रयोग
प्रयोग
प्रयोग

इन चरणों में मैंने जिस ध्वनि मॉड्यूल का वर्णन किया है और ऊपर दिए गए सॉफ़्टवेयर को चलाना बहुत उपयोगी और एक्स्टेंसिबल है, लेकिन कई संशोधन/भिन्नताएं संभव हैं। मैं यहाँ इंटरफ़ेस का संक्षेप में वर्णन करूँगा - मेरी योजना इसे लगातार एक जीथब रिपॉजिटरी में अपडेट करने की है, जहाँ मैं उम्मीद करता हूँ कि एक अद्यतन विकी भी रखूँगा। अंत में, मैं चर्चा करूंगा कि आप सेटिंग्स को कैसे बदल सकते हैं, नई ध्वनियां जोड़ सकते हैं, और अपने स्वयं के संशोधन कर सकते हैं।

शुरू करने के लिए, USB MIDI नियंत्रक को बॉक्स के USB-A जैक में प्लग करें, USB-B जैक में 5V बिजली की आपूर्ति करें, और हेडफ़ोन या एक amp कनेक्ट करें। थोड़ी देर बाद LCD एक "squishbox v xx.x" संदेश दिखाएगा। एक बार पैच नंबर और नाम दिखाई देने पर आपको नोट्स चलाने में सक्षम होना चाहिए। किसी भी बटन पर छोटे टैप से पैच बदल जाता है, या तो बटन को कुछ सेकंड के लिए पकड़कर आप सेटिंग मेनू में पहुंच जाते हैं, और लगभग पांच सेकंड के लिए किसी भी बटन को दबाए रखने से आपको प्रोग्राम को पुनरारंभ करने, पाई को रीबूट करने, या पीआई को बंद करने का विकल्प मिलता है। NB Pi अपने GPIO पिन को रुकने पर बिजली नहीं काटता है, इसलिए LCD कभी बंद नहीं होगा। इसे अनप्लग करने से पहले लगभग 30 सेकंड प्रतीक्षा करें)।

सेटिंग्स मेनू विकल्प हैं:

  • अद्यतन पैच - आपके द्वारा वर्तमान पैच में किए गए किसी भी परिवर्तन को फ़ाइल में सहेजता है
  • नया पैच सहेजें - वर्तमान पैच और किसी भी परिवर्तन को नए पैच के रूप में सहेजता है
  • बैंक चुनें - कॉन्फ़िग फ़ाइल में पैच के कई सेट हो सकते हैं, इससे आप उनके बीच स्विच कर सकते हैं
  • सेट गेन - समग्र आउटपुट वॉल्यूम सेट करें (फ्लुइडसिंथ का 'गेन' विकल्प), बहुत अधिक विकृत आउटपुट देता है
  • कोरस/रीवरब - वर्तमान सेट के रीवरब और कोरस सेटिंग्स को संशोधित करें
  • MIDI Connect - यदि आप प्रोग्राम के चलने के दौरान इसे स्वैप करते हैं तो एक नया MIDI डिवाइस कनेक्ट करने का प्रयास करें
  • ब्लूटूथ जोड़ी - पाई को डिस्कवरी मोड में रखें ताकि आप इसके साथ किसी अन्य ब्लूटूथ डिवाइस को जोड़ सकें
  • वाईफ़ाई स्थिति - पीआई के वर्तमान आईपी पते की रिपोर्ट करें ताकि आप इसमें एसएसएच कर सकें

config_squishbox.yaml फ़ाइल में प्रत्येक पैच का वर्णन करने वाली जानकारी, साथ ही MIDI रूटिंग, प्रभाव पैरामीटर इत्यादि जैसी चीज़ें शामिल हैं। यह YAML प्रारूप में लिखा गया है, जो डेटा का प्रतिनिधित्व करने का एक क्रॉस-भाषा तरीका है जिसे कंप्यूटर पार्स कर सकते हैं लेकिन मानव भी है -पठनीय। यह काफी जटिल हो सकता है, लेकिन यहां मैं इसे नेस्टेड पायथन शब्दकोशों (अन्य भाषाओं में सहयोगी सरणी/हैश), और अनुक्रम (सूचियां/सरणी) की संरचना का प्रतिनिधित्व करने के तरीके के रूप में उपयोग करता हूं। मैंने नमूना कॉन्फ़िगरेशन फ़ाइल में बहुत सी टिप्पणियां डालीं और इसे संरचित करने का प्रयास किया ताकि कोई उत्तरोत्तर देख सके कि प्रत्येक सुविधा क्या करती है। एक नज़र डालें और प्रयोग करें यदि आप उत्सुक हैं, और टिप्पणियों में प्रश्न पूछने के लिए स्वतंत्र महसूस करें। आप इस फ़ाइल को संपादित करके मॉड्यूल की आवाज़ और कार्यक्षमता को बदलने के लिए बहुत कुछ कर सकते हैं। आप दूरस्थ रूप से लॉग इन कर सकते हैं और संपादित कर सकते हैं, या पीआई में एक संशोधित कॉन्फ़िगरेशन फ़ाइल एफ़टीपी कर सकते हैं, फिर इंटरफ़ेस का उपयोग करके या टाइप करके पुनरारंभ करें

sudo python /home/pi/squishbox.py &

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

जब आप FluidSynth स्थापित करते हैं तो आपको बहुत अच्छा FluidR3_GM.sf2 साउंडफोंट भी मिलता है। जीएम सामान्य मिडी के लिए खड़ा है जिसका अर्थ है कि इसमें "सभी" उपकरण शामिल हैं, जो आमतौर पर सहमत-पूर्व निर्धारित और बैंक नंबरों को सौंपा गया है ताकि मिडी प्लेयर जो इस ध्वनि फ़ॉन्ट का उपयोग करके फ़ाइलें चलाते हैं, वे पियानो, तुरही के लिए लगभग सही ध्वनि ढूंढ पाएंगे।, बैगपाइप, आदि। यदि आप अधिक/भिन्न ध्वनियाँ चाहते हैं, तो आप इंटरनेट पर बहुत सारी निःशुल्क ध्वनियाँ पा सकते हैं। सबसे महत्वपूर्ण बात यह है कि साउंडफॉन्ट विनिर्देश व्यापक रूप से उपलब्ध है, वास्तव में काफी शक्तिशाली है, और पॉलीफोन नामक साउंडफोंट के लिए एक अद्भुत ओपन-सोर्स संपादक है। इसके साथ आप कच्चे WAV फाइलों से अपने खुद के साउंडफोंट बना सकते हैं, साथ ही आप अपने 'फोंट' में मॉड्यूलेटर जोड़ सकते हैं। मॉड्यूलेटर आपको वास्तविक समय में संश्लेषण के कई तत्वों (जैसे एडीएसआर लिफाफा, मॉड्यूलेशन लिफाफा, एलएफओ, आदि) को नियंत्रित करने की अनुमति देता है। मैंने ऊपर जो ModWaves.sf2 फ़ाइल शामिल की है, वह मॉड्यूलेटर का उपयोग करने का एक उदाहरण प्रदान करती है जिससे आप फ़िल्टर अनुनाद और कटऑफ आवृत्ति को एक नियंत्रण परिवर्तन MIDI संदेश (जिसे आपके नियंत्रक पर एक बटन/स्लाइडर द्वारा भेजा जा सकता है) को मैप करने की अनुमति मिलती है। यहां बहुत संभावनाएं हैं - जाओ खेलो!

यह मेरी आशा है कि यह ट्यूटोरियल बहुत सारे विचारों को जगाता है और दूसरों को अपनी अनूठी सिंथ क्रिएशन बनाने के लिए एक अच्छा ढांचा देता है, साथ ही अच्छे साउंडफोंट, साउंडफॉन्ट स्पेक और फ्लुइडसिंथ और पॉलीफोन जैसे महान मुफ्त सॉफ्टवेयर की निरंतर उपलब्धता और विकास का समर्थन करता है।. मैंने यहां जिस बिल्ड की रूपरेखा तैयार की है, वह न तो सबसे अच्छा है और न ही ऐसा कुछ एक साथ रखने का एकमात्र तरीका है। हार्डवेयर पक्ष पर, संभावित संशोधन अधिक बटन, विरासत (5-पिन) MIDI इनपुट/आउटपुट, और/या ऑडियो इनपुट के साथ एक बड़ा बॉक्स हो सकता है। अन्य व्यवहार प्रदान करने के लिए पाइथन लिपि को संशोधित किया जा सकता है (मेरी स्पैस टिप्पणी के लिए खेद है) जो आपके लिए बेहतर हो सकता है - मैं प्रत्येक पैच में "प्रभाव" मोड जोड़ने की सोच रहा हूं जहां यह वास्तविक प्रभाव स्टॉम्पबॉक्स की तरह कार्य करेगा, सेटिंग्स को टॉगल करना और छुट्टी। डिजिटल ऑडियो प्रभाव प्रदान करने के लिए कोई अतिरिक्त सॉफ़्टवेयर भी जोड़ सकता है। मुझे यह भी लगता है कि ऊपर वर्णित वाईफाई एपी मोड में पीआई चलाने के लिए यह बेहतर काम करेगा, और फिर यह कॉन्फ़िगरेशन फ़ाइल को संपादित करने के लिए एक अनुकूल वेब इंटरफ़ेस भी प्रदान कर सकता है। कृपया बेझिझक अपने विचार/प्रश्न/चर्चा कमेंट फीड में पोस्ट करें।

मैं FluidSynth और Polyphone के निर्माताओं को मुफ्त, ओपन-सोर्स सॉफ़्टवेयर प्रदान करने के लिए विशाल, मेगा प्रॉप्स देना चाहता हूं जिसका उपयोग हम सभी बेहतरीन संगीत बनाने के लिए कर सकते हैं। मुझे इस चीज़ का उपयोग करना अच्छा लगता है, और आपने इसे संभव बनाया!

सिफारिश की: