2012-02-01 17 views
5

पर USB पर मिडी संदेश मैं एंड्रॉयड जो इस तरह के Cubase, फ्लोरिडा, कारण, ect के रूप में संगीत सॉफ्टवेयर नियंत्रित करने में सक्षम होने के लिए एक कंप्यूटर के लिए USB पर मिडी संदेश भेजता है पर कोई ऐप बनाने के लिए चाहते हैं ...एंड्रॉयड

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

मैं (हार्डवेयर नियंत्रकों के साथ) की तरह कंप्यूटर पर कर्मचारियों को इंस्टॉल किए बिना एक मिडी नियंत्रक के रूप में मेरे फोन/टैबलेट का उपयोग करने में सक्षम होना चाहते हैं।

Android डेवलपर पर एक डेमो कोड यूएसबी के माध्यम से एक मिसाइल लांचर खिलौना नियंत्रित करने के लिए नहीं है। यदि मैं एक ही तकनीक का उपयोग करके भेजता हूं, तो MIDI प्रोटोकॉल का पालन करने वाले संदेश यह इस तरह काम करेंगे?

आपकी मदद

उत्तर

3

नहीं के लिए अग्रिम रूप से धन्यवाद, यह ऐसा दूर से काम नहीं करता।

यूएसबी MIDI डिवाइस एक ड्राइवर का उपयोग करते हैं ... यह सिर्फ इतना है कि वे आम तौर पर कर रहे हैं "वर्ग शिकायत" है, और सभी एक ही शेयर ड्राइवर है कि ओएस के साथ आता है का उपयोग कर सकते हैं।

आप क्या प्रस्ताव कर रहे हैं करने के लिए, आप USB पर एक युक्ति है ... उचित PnP ID के साथ पूर्ण और नहीं क्या का अनुकरण करने की आवश्यकता होगी। यह असंभव के बगल में है। आपके द्वारा प्राप्त कोड होस्ट मोड में यूएसबी का उपयोग करने के लिए था, न कि दूसरी तरफ।

आप इसे काफी आसान है कि नेटवर्क के माध्यम से मिडी भेजने के लिए मिल जाएगा, और कई नेटवर्क मिडी उपलब्ध चालकों में से एक का उपयोग करें।

+0

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

+1

क्षमा करें, TouchDAW ड्राइवरों का उपयोग करें। खैर अगर यूएसबी पर डिवाइस की तरह काम करना संभव नहीं है, तो मैं उस तरह से जाऊंगा। धन्यवाद ! – Jecimi

7

मैंने एंड्रॉइड के लिए यूएसबी MIDI ड्राइवर लिखा था।
अपना खुद का एमआईडीआई नियंत्रक/रिसीवर बनाने के लिए उपयोगी।

https://github.com/kshoji/USB-MIDI-Driver

एक और मिडी ड्राइवर 'NMJ' पुस्तकालय है।
यह पुस्तकालय यूएसबी MIDI का भी समर्थन करता है। इसके अलावा, यह कुछ नेटवर्क-एमआईडीआई प्रोटोकॉल, ब्लूटूथ पर मिडी और एडीबी (डीबग कनेक्शन) पर MIDI का समर्थन करता है।

http://www.humatic.de/htools/nmj/

+1

क्या आप अपना उत्तर बढ़ा सकते हैं और अपने lib का उपयोग करके MIDI संदेश भेजने के लिए नमूना कोड लिख सकते हैं? ऐसा लगता है कि आपने हाल ही में अपने javax.sound कार्यान्वयन दस्तावेज को हटा दिया है। क्या इस lib के साथ कोई समस्या है या यह अभी भी कार्यात्मक है? – gaborous

+0

@kshoji: ग्रहण के लिए स्रोत कोड है? –

+0

@kshoji आप जानते हैं कि यह सुविधा एंड्रॉइड समर्थन लाइब्रेरी में शामिल की जाएगी (पिछले उपकरणों के साथ पुन: प्रयोज्यता के लिए) ??? – Billyjoker

10

एंड्रॉयड 6.0 (एपीआई 23) के साथ यह अब संभव है - Android उपकरणों (आवश्यक नहीं ड्राइवरों) MIDI डिवाइस वर्ग शिकायत के रूप में कार्य कर सकते हैं।

यूएसबी-मिडी मोड उपयोगकर्ताओं में स्विच करने के लिए यूएसबी मोड चयन स्क्रीन (नीचे) का उपयोग करने के लिए स्क्रीन के ऊपर से नीचे स्वाइप कर सकते हैं।

Screenshot showing USB selection menu

कोई एप्लिकेशन new MIDI API का उपयोग कर मिडी संदेश भेज सकते हैं। यहाँ एक मिडी NoteOn संदेश भेजने के लिए कुछ कोड है:

byte[] buffer = new buffer[3]; 
buffer[0] = (byte)0x90 + (byte)0x01; // Note On - Channel 1 
buffer[1] = (byte)0x3C; // pitch (Note C3) 
buffer[2] = (byte)127; // velocity 
int offset = 0; 
inputPort.send(buffer, offset, numBytes); 

भेजने के लिए अन्य संदेश प्रकारों से परामर्श MIDI message specification। ध्यान दें कि जावा में बाइट्स पर हस्ताक्षर किए गए हैं ताकि this post might be helpful

+0

जैसा कि @ kshoji कहा गया था, तो, आप Android 2.2 से मिडी भेज सकते हैं, वास्तव में एंड्रॉइड 6.0 की आवश्यकता नहीं है? – Billyjoker