2009-08-10 9 views
7

मैंने नेट की खोज की है लेकिन कुछ भी दिलचस्प नहीं मिला। शायद मैं कुछ गलत कर रहा हूँ।सी/सी ++/उद्देश्य-सी में ध्वनि संश्लेषण फ्रेमवर्क?

मैं सी, सी ++ या यहां तक ​​कि उद्देश्य-सी पर लिखित ध्वनि संश्लेषण एपीआई की तलाश में हूं, जो विभिन्न प्रकार की तरंगों को संश्लेषित कर सकता है, प्रभाव वैकल्पिक हैं।

उत्तर

9

यहाँ एफएम (आवृत्ति मॉडुलन) के लिए एक पूर्ण पुस्तकालय/टूलकिट है संश्लेषण:

link1 link2

आप खाली समय है ... खरोंच से सरल ध्वनि संश्लेषण बनाने वास्तव में एक मजेदार प्रयास है। यदि आप 256 16 बिट नमूनों का एक छोटा बफर बनाते हैं जो या तो साइन का प्रतिनिधित्व करते हैं। एक सॉटूओथ, ब्लॉक या नाड़ी, आप इन्हें एक लाइव ऑडिओबफर (जैसे एक छोटा बफर (16kb कहें) पर प्रतिलिपि बना सकते हैं) जो लगातार लूप करता है। प्लेपोजिशन से आगे रहकर, और लगातार नए मूल्यों के साथ बफर भरना, आप ध्वनि आउटपुट बना सकते हैं। आप इन्हें दिलचस्प तरीकों से गठबंधन करने के लिए छोटे बफर का उपयोग कर सकते हैं (सरलतम उन्हें एक साथ जोड़ना है (योजक संश्लेषण))।

छोटे बफर के माध्यम से टोन की आवृत्ति को बड़े या छोटे नमूना चरण का उपयोग करके छेड़छाड़ की जा सकती है। आउटपुट को आउटपुट बफर में रखने से पहले नमूनों को स्केल करके छेड़छाड़ की जा सकती है।

इस के साथ बहुत मज़ेदार प्रयोग!

आप इस चरण को किसी न किसी है, तो आप फिल्टर की तरह और अधिक परिष्कृत प्रभाव (लो-पास, उच्च मार्ग, आदि) और प्रभाव (reverbs, गूँज, आदि)

आर

-1

जिन्हें आपने देखा है जोड़ सकते हैं CSound? यह एक अविश्वसनीय रूप से लचीला ऑडियो पीढ़ी मंच है, और सरल तरंग पीढ़ी से एफएम संश्लेषण और सभी प्रकार के फिल्टर से सब कुछ संभाल सकता है। यह एमआईडीआई समर्थन भी प्रदान करता है, और आप इसे कस्टम ऑपकोड लिखकर बढ़ा सकते हैं। full C API और कई सी ++ एपीआई भी हैं।

2

सी/ओब्जे-सी में ऑडियो संश्लेषण एल्गोरिदम लिखना मेरी राय में काफी मुश्किल है। मैं PureData का उपयोग करके अपने सिग्नल प्रोसेसिंग एल्गोरिदम लिखने की सलाह दूंगा और फिर अपने ऐप में पीडी पैच को एम्बेड और समझने के लिए ZenGarden या libpd का उपयोग करें।

4

क्या आपने संश्लेषण टूलकिट (STK) देखा है? यह सी ++ में है (मुझे नहीं लगता कि ओबीजेसी ऑडियो संश्लेषण के लिए सही भाषा है, वास्तव में ऑडियो इकाइयों, जेनरेटर/फिल्टर/प्रभाव सहित ऑडियो सामान करने का ऐप्पल का अपना तरीका सी ++ में है)।

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

Create और सीएलएएम भी विशाल है, इनमें जीयूआई घटक और कई अन्य चीजें शामिल हैं जो आप चाहें या नहीं चाहें। यदि आप केवल ध्वनि संश्लेषण करने में रुचि रखते हैं तो मैं वास्तव में एसटीके की सिफारिश करता हूं।

+0

क्या इस के साथ एक उपकरण बनाने का कोई तरीका है जिसमें एक टिक() है जो कच्चे WAV डेटा/नमूने पर काम करता है? – paulm

+1

@paulm मुझे लगता है कि यह एक पूर्ण उड़ा हुआ SO सवाल है, एसटीके के पास एक वैव फ़ाइल रीडर है https://ccrma.stanford.edu/software/stk/classstk_1_1FileRead.html – jbat100

+0

धन्यवाद, ऐसा लगता है कि यह सिर्फ पॉपुलटिंग का मामला हो सकता है कच्चे ऑडियो डेटा से एसटीके फ्रेम :) – paulm

4

पोर्टऑडियो भी एक महान सी एपीआई है जिसे हमने ऑडियो प्रोग्रामिंग पाठ्यक्रम में पिछले सेमेस्टर का उपयोग किया था। यह एक ऑडियो कॉलबैक प्रदान करता है ... आपको और क्या चाहिए !?

मैंने अभी तक उद्देश्य-सी में कुछ भी शामिल करने की कोशिश नहीं की है, लेकिन जब मैं करता हूं तो वापस रिपोर्ट करूंगा।

1

एक और सी ++ पुस्तकालय nsound है:

http://nsound.sourceforge.net

एक जेनरेटर वर्ग का उपयोग कर या प्रदान की ज्या वर्ग का उपयोग कर अधिमिश्रित संकेत के किसी भी प्रकार उत्पन्न कर सकते हैं। प्रत्येक समय-चरण में इसकी अपनी तात्कालिक आवृत्ति और चरण ऑफसेट हो सकता है।

आप अपने एल्गोरिदम को प्रोटोटाइप करने के लिए पाइथन मॉड्यूल के साथ भी प्रयोग कर सकते हैं, फिर सी ++ में कार्यान्वित करें। यह पाइथन से और यहां तक ​​कि सी ++ से सुंदर matplotlib भूखंडों का उत्पादन कर सकते हैं!

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