2009-05-04 9 views
21

मुझे ओपनजीएल का उपयोग करने में सीखने में दिलचस्पी है और मुझे संगीत विज़ुअलाइज़र लिखने का विचार था। क्या कोई मुझे कुछ संकेत दे सकता है कि मुझे किस तत्व की आवश्यकता होगी और मुझे ऐसा करने के बारे में सीखने के लिए कैसे जाना चाहिए?सी ++ में संगीत विज़ुअलाइज़र लिखना कैसे शुरू करें?

+9

शायद "# शामिल" के साथ? क्षमा करें, मेरी मदद नहीं कर सकता :) –

उत्तर

13

यदि आप सी ++/सीएलआई का उपयोग करते हैं, तो यहां an example है जो WPF चार (चौकोर है;) डिस्प्ले का उपयोग करता है।

वह this site का संदर्भ देता है जिसमें आपके पूछने के बारे में काफी जानकारी है, यहां विशिष्ट पृष्ठ से एनआउटलाइन है;

हम आवृत्तियों में ध्वनि कैसे विभाजित करते हैं? हमारे कान यांत्रिक माध्यमों से करते हैं, गणितज्ञ इसे फोरियर ट्रांसफॉर्म का उपयोग करके करते हैं, और कंप्यूटर इसे FFT का उपयोग करते हैं।

  1. ध्वनि के भौतिकी 1.2। हार्मोनिक थरथरानवाला
  2. सैम्पलिंग ध्वनि
  3. फूरियर विश्लेषण
  4. परिसर नंबर
  5. डिजिटल फूरियर रूपांतरण
  6. FFT

आह, मैं this कुछ ही मिनटों के बाद पाया है, यह एक देशी सी ++ विश्लेषक है । कोड शामिल है, जो आपको बंद और चलाना चाहिए।

-2

देखने की मेरी बात से ... इस साइट की जाँच करें: ओपन

प्रयोग करने के लिए http://nehe.gamedev.net/

वास्तव में अच्छा सूचना और ट्यूटोरियल

संपादित करें: http://www.opengl.org/code/

1

आप अपने खुद के ऑडियो लिखने के लिए कोशिश कर रहे हैं /संगीत बजाने वाला? शायद आपको किसी मौजूदा प्लेयर के लिए प्लगइन लिखने का प्रयास करना चाहिए ताकि आप कोडेक्स, डीएसपी और ऑडियो आउटपुट डिवाइस के मिनीटिया के बजाए ग्राफिक्स पर ध्यान केंद्रित कर सकें।

मुझे पता है कि WinAMP और Foobar में विज़ुअलाइज़ेशन प्लगइन्स के लिए API हैं। मुझे यकीन है कि विंडोज मीडिया प्लेयर और आईट्यून्स भी उनके पास हैं। बस एक मीडिया प्लेयर चुनें और पढ़ना शुरू करें। उनमें से कुछ में मौजूदा ओपनजीएल प्लगइन्स भी हो सकते हैं, जिससे आप शुरू कर सकते हैं ताकि आप शुद्ध ओपनजीएल पर ध्यान केंद्रित कर सकें।

+0

मैं एक खिलाड़ी या कुछ भी लिखने की कोशिश नहीं कर रहा हूं, बस कुछ ऐसा जो एमपी 3 में ले जाएगा और इसे कल्पना करेगा, लेकिन मुझे उन सभी टुकड़ों को जोड़ने के बारे में कुछ नहीं पता है। मैं लिनक्स पर हूं, इसलिए मैं कुछ आसान करना चाहता हूं। वास्तव में इसे किसी और चीज में एकीकृत करने के बारे में सोचा नहीं है। – victor

+2

ऑडियो नमूने में एमपी 3 डीकोड करने के लिए mpg123, libmad, या ffmpeg जैसी लाइब्रेरी का उपयोग करने पर विचार करें। वहां से आप ऑडियो को आवृत्ति जानकारी में बदलने के लिए डीएफटी (एफएफटी) का उपयोग करना चाहेंगे (एफएफटीडब्ल्यू देखें)। इस बिंदु पर आपके पास अधिकांश विज़ुअलाइज़र (Winamp/xmms चलती रेखाएं w/चोटियों) पर दिखाई देने वाली कच्ची आवृत्ति डेटा होगी। इसके बाद आपको आवृत्ति और आवृत्ति में परिवर्तन के आधार पर दृश्य को देखने की आवश्यकता है। – basszero

0

यदि आप कुछ बुनियादी 3 डी या त्वरित 2 डी के ठीक बाद हैं तो मैं डेव एस्टल के "Beginning OpenGL Game Programming" की एक प्रति खरीदने की अनुशंसा करता हूं जो सी ++ में ओपनजीएल की मूलभूत बातें शामिल करता है।

0

संगीत विश्लेषण भाग के लिए, आपको फूरियर श्रृंखला के आधार का अध्ययन करना चाहिए, फिर एक डीएफएफटी (डिजिटल फास्ट फूरियर ट्रांसफॉर्म) एल्गोरिदम का निःशुल्क कार्यान्वयन करना चाहिए।

0

आप Numerical Recipes in C पुस्तक में एफएफटी एल्गोरिदम और अन्य उपयोगी सूचनाओं के कार्यान्वयन को पा सकते हैं। पुस्तक मुफ्त AFAIK है। Numerical Recipes in C++ पुस्तक भी है।

4

बनाने के लिए मेरे दृष्टिकोण BeatHarness (http://www.beatharness.com): वास्तविक समय में

  • ऑडियो रिकॉर्ड
  • एक धागा है कि ऑडियो पर एक FFT चलाता आवृत्ति तीव्रता
  • calculate ऑडियो मात्रा के लिए प्राप्त करने के लिए छोड़ दिया और सही चैनल
  • फिल्टर बैंड में आवृत्तियों (बास, मि़डटॉन, तिहरा)

अब आपके ग्राफिक्स डिस्प्ले में उपयोग करने के लिए आपके पास कुछ अच्छे चर हैं। उदाहरण के लिए, एक तस्वीर दिखाएं जहां आकार बास द्वारा गुणा किया जाता है - यह आपको एक तस्वीर देगा जो बीट पर ज़ूम इन करेगा। वहां से आपकी अपनी कल्पना है! :)

0

आप एफएफटीडब्ल्यू पर libvisual के एफएफटी/डीसीटी कार्यों का उपयोग करने पर विचार करना चाह सकते हैं; वे काम करने के लिए बहुत आसान हैं और डेटा प्रदान करते हैं जो दृश्यों को उत्पन्न करने के लिए काम करना आसान है। कई मीडिया प्लेयर और विज़ुअलाइजेशन प्लगइन्स कुछ हद तक अपने दृश्यों के लिए libvisual का उपयोग करते हैं। उदाहरण: टोटेम (प्लेयर), गोम (टोटेम और अन्य खिलाड़ियों के लिए प्लगइन), PsyMP3 2.x (प्लेयर)

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