के साथ सिंक्रनाइज़ेशन मैंने एक प्रोजेक्ट का एक स्टैंडअलोन ऐप संस्करण बनाया है जो अब तक केवल एक VST/audiounit था। मैं rtaudio के माध्यम से ऑडियो समर्थन प्रदान कर रहा हूं।रीयलटाइम मिडी इनपुट और ऑडियो
मैं rtmidi का उपयोग करके MIDI समर्थन जोड़ना चाहता हूं लेकिन यह मुझे स्पष्ट नहीं है कि ऑडियो और MIDI भागों को सिंक्रनाइज़ कैसे करें।
वीएसटी/ऑडिओटिट भूमि में, मुझे MIDI ईवेंट में उपयोग किया जाता है जिसमें ऑडियो ब्लॉक की शुरुआत से नमूनों में उनके ऑफसेट का संकेत मिलता है।
आरटीएमडीआई पिछले कार्यक्रम के बाद से सेकंड में डेल्टा समय प्रदान करता है, लेकिन मुझे यकीन नहीं है कि मुझे उन घटनाओं को कैसे पकड़ना चाहिए और मैं ऑडियो थ्रेड में वर्तमान नमूने के संबंध में अपना समय कैसे काम कर सकता हूं।
प्लगइन होस्ट यह कैसे करते हैं?
मैं समझ सकता हूं कि प्लेबैक पर ईवेंट कैसे नमूना सटीक हो सकते हैं, लेकिन यह स्पष्ट नहीं है कि रीयलटाइम इनपुट का उपयोग करते समय वे नमूना सटीक कैसे हो सकते हैं।
rtaudio मुझे कॉलबैक फ़ंक्शन देता है। मैं कम ब्लॉक आकार (32 नमूने) पर चलाऊंगा। मुझे लगता है कि मैं एक पॉइंटर को आरटीएमआईडीआई इंस्टेंस में कॉलबैक के उपयोगकर्ताडाटा भाग के रूप में पास कर दूंगा और फिर midiin-> getMessage (संदेश) पर कॉल करें; ऑडियो कॉलबैक के अंदर, लेकिन मुझे यकीन नहीं है कि यह धागा-समझदार है या नहीं।
बहुत धन्यवाद कोई सुझाव के लिए तुम मुझे
MIDI कभी नमूना सटीक नहीं होगा, और न ही इसे होने की आवश्यकता है। MIDI डेटा अपेक्षाकृत धीमी है। – Brad