ऑल-नोट्स-ऑफ ALSA मिडी इवेंट कैसे भेजें?


3

मैं asoundlib का उपयोग करके C ++ में MIDI सीक्वेंसर लिख रहा हूं। कभी-कभी मैं अपने आवेदन को ऑल-नोट्स-ऑफ इवेंट कहते हुए, सभी आवाज़ों को रोकना चाहता हूं। मैं इसे हर चैनल पर हर नोट पर नोटबंदी करके कहता हूं, क्योंकि यह एकमात्र तरीका है जिसे मैं जानता हूं, लेकिन कुछ कारणों से मैं एक पल में 16 * 128 = 2048 ईवेंट भेजने के लिए वास्तव में खुश नहीं हूं। क्या इसका कोई अन्य तरीका है? यह सही होगा यदि मैं एक घटना को नियंत्रण कतार में भेज सकता हूं, क्या कोई है? यदि नहीं, तो इसका क्या तरीका है?

किसी भी मदद का स्वागत है, क्योंकि इंटरनेट में एक अच्छे, विस्तृत ALSA दस्तावेज की कमी है।

जवाबों:


1

मिडी स्पेसिफिकेशन पर क्रैश कोर्स के अनुसार, आप बस एक घटना 'जेड' को सभी नोटों के साथ भेजते हैं जिसे इस प्रकार समझाया गया है00 B0 7B 00

00 to indicate no time delay
B0 to send a midi control signal
7B to send an all notes off
00 does nothing (padding)

आप यहां मिडी नियंत्रण बाइट्स की एक सूची देख सकते हैं: मिडी नियंत्रक नंबर

हैप्पी हंटिंग!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.