मैं एक समस्या को हल करने के बारे में बात करना चाहता हूं जो शायद हार्डवेयर सिंथेसाइज़र के प्रशंसकों से परिचित है।
यदि मैं एक MIDI नियंत्रक और सिंथेसाइज़र डॉक करना चाहता हूं, तो मुझे क्या करना चाहिए, लेकिन उनमें से केवल एक USB कनेक्टर और कोई MIDI नहीं है? इसके अलावा, स्पष्ट कारणों के लिए, मैं कंप्यूटर का उपयोग किए बिना यह सब करना चाहता हूं।
मैंने इसके लिए एक डिवाइस की तलाश में कई बार इंटरनेट पर खोज की, लेकिन मैंने बहुत सारे पैसे के लिए छोटे-से-प्रचलन वाले उपकरणों के लिंक के अलावा कुछ भी नहीं पाया, जिन्हें पहले ही बंद कर दिया गया है।
कुछ बिंदु पर यह मुझ पर dawned: आप रास्पबेरी पाई ले सकते हैं और उस पर सब कुछ कर सकते हैं - यह एक वास्तविक कंप्यूटर है, और इस पर ऐसी चीजें आसानी से की जाती हैं।
यह संभवत: पूर्ण विकसित ध्वनि प्रसंस्करण के लिए कमजोर होगा, लेकिन मिडी संदेश प्रवाह पहले से ही पंप किया जाना चाहिए।
[वैसे, रास्पबेरी पाई के लिए एक ध्वनि प्रभाव प्रोसेसर है , लेकिन इसके लिए नवीनतम रास्पबेरी पाई मॉडल की आवश्यकता होती है, जो कि अधिक महंगा है, और एक अतिरिक्त ढाल है, जो सस्ता भी नहीं है, और मैंने परेशान नहीं करने का फैसला किया है]।
जल्दी से नहीं कहा। रास्पबेरी पाई को पहला मॉडल मिला और एक शाम में काम करने के लिए एक प्रोटोटाइप तैयार किया। संक्षेप में यह कैसे काम करता है।
ALSA मिडी
सबसे पहले, मैंने प्योरडाटा लेने की योजना बनाई और इसके लिए एक साधारण पैच लिखा जो मिडी संदेशों को एक पोर्ट से दूसरे पोर्ट में ट्रांसफर कर देगा।
लेकिन जब मैंने लिनक्स में मिडी को प्राप्त करना शुरू किया, तो मुझे बहुत सरल दृष्टिकोण मिला।
लिनक्स में एक मानक ध्वनि इनपुट / आउटपुट सिस्टम है - ALSA। यह ऑडियो स्ट्रीम और MIDI दोनों को सपोर्ट करता है।
एएलएसए के माध्यम से मिडी संदेश प्राप्त करने के लिए एक कार्यक्रम के लिए, आपको पहले इन संदेशों के स्रोत से कनेक्ट करने की आवश्यकता है। लेकिन यह वही है जो हमें इस समस्या को हल करने की आवश्यकता है! दो बार सोचने के बिना, मैंने प्योरडाटा को बाहर फेंक दिया और एएलएसए मूल उपकरण के साथ सब कुछ किया।
यहाँ परिणाम है।
aconnect
जब आप मिडी डिवाइस को सिस्टम से कनेक्ट करते हैं, तो यह एएलएसए डिवाइस में दिखाई देता है और आप इसके साथ मानक कमांड के साथ विभिन्न ऑपरेशन कर सकते हैं। हम aconnect
टीम में रुचि रखते हैं, जो सिर्फ बंदरगाहों के कनेक्शन-वियोग बनाता है। विस्तृत दस्तावेज यहां देखे जा सकते हैं ।
वास्तव में, हमें केवल दो ऑपरेशन की आवश्यकता है: उपलब्ध उपकरणों की एक सूची प्रदर्शित करें और एक डिवाइस को दूसरे से कनेक्ट करें:
# MIDI-, aconnect -l # Arturia Keystep Xio aconnect 'Arturia KeyStep 32' 'Xio'
मैंने इन आदेशों को ऑटो-स्टार्ट सिस्टमड स्क्रिप्ट के साथ लपेटा और उन्हें लूप में लगातार शुरू करने के लिए कॉन्फ़िगर किया, आप देख सकते हैं कि मैंने यहां कैसे किया।
विकल्प
यदि आपको आउटपुट भेजने से पहले MIDI स्ट्रीम को किसी तरह संसाधित करना है, तो आप कई विकल्पों का उपयोग कर सकते हैं:
यदि आप अधिक विकल्प जानते हैं - भेजें।
अपडेट: सारांश
डेढ़ महीने के प्रयोगों के बाद, मैं संक्षेप में बताता हूं।
नतीजतन, अभ्यास से पता चला है कि नोटों के हस्तांतरण के लिए कोई फर्क नहीं पड़ता - नोट अक्सर बाहर निकलते हैं और छोड़ते हैं।
क्लॉक ट्रांसमिशन के लिए, यह कम या ज्यादा सामान्य है - जाम के मास्टर लय के साथ नियंत्रित संश्लेषण के एपपेगियेटर के सिंक्रनाइज़ेशन में, मैं नहीं सुनता हूं।
लेकिन नियंत्रक संदेशों के हस्तांतरण के लिए, यह आदर्श प्रतीत होता है।
अब आप लॉन्च कंट्रोल एक्सएल को किसी भी सिंटैक्स से कनेक्ट कर सकते हैं।
संदर्भ
जब मैंने आखिरी बार इस सवाल का किसी कारण से अध्ययन किया, तो मुझे कुछ भी नहीं मिला।
इस बार बहुत सारी चीजें थीं, मैं यहां लिंक पोस्ट करूंगा ताकि आप अपना रास्ता न दोहराएं अगर यही समस्या आती है।