2011-04-10 13 views
15

जैसा कि मैंने पहले ही कहा है in another thread, मैं ऑडियो के लिए रीयल-टाइम ग्राफ़िकल प्रोग्रामिंग से संबंधित एक परियोजना पर काम कर रहा हूं (शुद्ध डेटा, मैक्स/एमएसपी, रेक्टर जैसे कुछ) ।रीयल-टाइम एप्लिकेशन के लिए ऑडियो/MIDI C++ लाइब्रेरी

मैंने इंटरनेट पर शोध का एक दिन किया, ऑडियो और मिडी के साथ निम्न स्तर पर बातचीत के लिए एक अच्छी (रखरखाव, अच्छी तरह से प्रलेखित और अत्यधिक पोर्टेबल) सी ++ लाइब्रेरी की तलाश में, लेकिन मैं अभी भी लाइब्रेरी के बारे में अपना मन नहीं बना सकता।

मैं विचार कर रहा हूँ PortAudio + PortMIDI (PortMedia), लेकिन वे (विशेष रूप से PortMIDI) दस्तावेज की कमी है और यहां कोई आधिकारिक समुदाय, बस एक मेल सूची है (और मुझे लगता है कि मंच समुदायों बहुत महत्वपूर्ण हैं!), एक ही (या सबसे खराब) RTAudio और RTMidi पुस्तकालयों के साथ स्थिति।

  • STK, मैं अपनी फ़ाइल संगठन की तरह dodn't:

    मैं भी करने के लिए आजमाइए।

  • Juce, मैं यह मेरे लिए बहुत ज्यादा करता है लगता है, मैं केवल एक आसान हार्डवेयर एकीकरण ASIO/ALSA/CoreAudio पर
  • OpenAL, मैं अपनी वास्तुकला समझ में नहीं आया है, यह निर्भर करता है की जरूरत है ...? क्या मैं मिडी पोर्ट तक पहुंच सकता हूं?

तो ... मेरा सवाल है: क्या आपको रीयल-टाइम ऑडियो/MIDI के साथ कोई अनुभव है? आप किस पुस्तकालय की सिफारिश करते हैं?

धन्यवाद

+1

आप केवल ऑडियो फीचर्स पर विचार कर सकते हैं और MIDI को अलग से कार्यान्वित कर सकते हैं। एमआईडीआई बहुत जटिल नहीं है और विलंबता पहले से कम है जितनी कम हो रही है। – Brad

+0

बहु-मंच की बात आती है जब ओपनल बहुत अच्छा होता है। इसमें MIDI नहीं है, हालांकि MIDI के लिए एक अलग लाइब्रेरी का उपयोग करने में कोई समस्या नहीं होनी चाहिए। –

+0

FYI पोर्टौडियो समुदाय उनकी मेलिंग सूची के माध्यम से बहुत सक्रिय है और वे बहुत ही प्रतिक्रिया और प्रश्न खुले हैं। –

उत्तर

6

मैं दोनों PortAudio/PortMidi और Juce का उपयोग किया है दोनों पर महान परिणामों के साथ। मैं पोर्टमिडी से जुस तक एक परियोजना को स्विच करने की प्रक्रिया में हूं, क्योंकि मेरे उपयोग के लिए अन्य सभी ऐप फ्रेमवर्क सामान अविश्वसनीय रूप से उपयोगी होते हैं (और मेरे अनुभव में, यह रॉक ठोस है।)। YMMV।

4

मैं ओपनफ्रामवर्क की भी सिफारिश करता हूं: http://www.openframeworks.cc/ यह सभी प्रकार के मीडिया, इंटरैक्शन, ... के लिए है और इसका उपयोग एपीआई को समझने/समझने में बहुत आसान है, जो कि बहुत अच्छी तरह से प्रलेखित है। बस उपरोक्त लिंक का पालन करें और इसे देखें।

गुड लक, Audiodroid

5

मैं एक सी ++ ऑडियो "crosstalk" नामित पुस्तकालय बना लिया है।

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

XtSystem system; 
XtMp3Decoder mp3Decoder; 
XtAudioDevice audioDevice; 

long md = system.addComponent(&mp3Decoder); 
long ad = system.addComponent(&audioDevice); 

system.connOutToIn(md,0,ad,0); 
system.connOutToIn(md,1,ad,1); 

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3"); 
mp3Decoder.play(); 

आप API दस्तावेज़ और लाइसेंस यहाँ विवरण की जाँच कर सकते हैं:: http://www.adaptaudio.com/Crosstalk

संपादित करें (01-12-2012)

यहाँ कैसे एक एमपी 3 फ़ाइल खेलने के लिए की एक उदाहरण है:

क्रॉसस्टॉक को "DSPatch" नामक ओपन-सोर्स प्रोजेक्ट द्वारा प्रतिस्थापित किया गया है। डीएसपीएच अनिवार्य रूप से क्रॉसस्टॉक के पीछे रूटिंग इंजन का एक अपग्रेड किया गया संस्करण है जो अब केवल ऑडियो प्रोसेसिंग तक ही सीमित नहीं है।डीएसपीएच आपको लगभग किसी भी प्रकार की प्रक्रिया श्रृंखला को कल्पना करने और रूट करने की अनुमति देता है, और निजी और स्वामित्व के उपयोग के लिए नि: शुल्क :)

+0

वाह! यह एक महान पुस्तकालय है! मेरी एकमात्र चिंता इसके समर्थन और रखरखाव के बारे में है। यह बहुत सामान्य उद्देश्य लगता है, यह एक समर्थक और विपक्ष हो सकता है। वैसे भी महान काम! –

1

this tutorial series में reacting to MIDI data के बारे में एक पोस्ट है। इसमें संश्लेषण इत्यादि जैसे अन्य विषयों को भी शामिल किया गया है

+0

वीएसटी/एयू विकास के लिए महान ट्यूटोरियल! असल में मेरा प्रश्न किसी अन्य विषय से संबंधित था ... वैसे भी बहुत बहुत धन्यवाद, यह बहुत रोचक और अच्छी तरह से लिखा गया है! –

संबंधित मुद्दे