2011-05-03 11 views
6

पर एसडीएल_Mixer MIDI वॉल्यूम मुद्दे मैं वास्तव में सी ++ या एसडीएल_Mixer में अच्छी तरह से ज्ञात नहीं हूं, लेकिन मैं डूम समुदाय पर वैसे भी इस सवाल से पूछ रहा हूं। बस रखें, डूम स्रोत बंदरगाहों को लिखने वाले किसी भी व्यक्ति को विंडोज विस्टा या 7 पर एसडीएल_Mixer का उपयोग करके सामान्य ध्वनि मात्रा और एमआईडीआई ध्वनि मात्रा को स्वतंत्र रूप से नियंत्रित करने का तरीका पता लग सकता है। मैं अनंत काल के लेखक जेम्स हेली को अपने शब्दों में रखूंगा :विंडोज विस्टा/7

देशी मिडी के लिए स्वतंत्र मात्रा की अवधारणा लगता है Windows Vista या 7 के तहत मौजूद नहीं है, कि उन्हें (कि SDL_mixer का उपयोग सबसे खेल सहित) है किसी भी आवेदन में मिडी मात्रा स्लाइडर का उपयोग कर के रूप में भी की मात्रा को प्रभावित करता है डिजिटल ध्वनि आउटपुट। यह आराम के लिए संगीत की सापेक्ष मात्रा को समायोजित करने का प्रयास असंभव है।

क्या किसी को इसके लिए कोई कामकाज मिला है? मुझे लगता है कि माइक्रोसॉफ्ट अलग-अलग ध्वनि उपकरणों की मात्रा को अलग-अलग नियंत्रित करने के लिए किसी भी तरह से ओएस भर में कैसे स्किम किया गया है, यह अनुमान लगाया गया है।

मैंने टिमडिटी ड्राइवर से जुड़े विभिन्न कामकाजों के बारे में सुना है, लेकिन इसके लिए उपयोगकर्ता को अपने सिस्टम पर गेम इंस्टॉल करने से ऊपर और परे जाना चाहिए। एकमात्र बंदरगाह जो मुझे पता है कि इस मुद्दे को निश्चित रूप से हल करता है वह ज़ेडूम है, लेकिन यह जीपीएल-असंगत FModEx का उपयोग करता है और इस प्रकार यह एक उपयुक्त समाधान नहीं है।

यदि आप कुछ कोड देखना चाहते हैं, तो चॉकलेट डूम शायद सबसे आसान डूम स्रोत पोर्ट है और आप अपने स्रोत here को पकड़ सकते हैं।

अन्य ओपन-सोर्स ध्वनि और संगीत पुस्तकालयों पर भी कोई भी सुझाव स्वागत होगा।

+1

क्यों मौजूदा MIDI फ़ाइलों को WAV (या कोई फ़ाइल प्रारूप जो पीसीएम स्ट्रीम पर असम्पीडित कर सकता है) में कनवर्ट न करें और संगीत स्ट्रीम को प्रबंधित करें जैसे कि यह कोई अन्य ध्वनि है जिसे आप मिलाते हैं? – selbie

+2

MIDI फ़ाइलों को एम्बेड किया गया है।डब्ल्यूएडी डेटा फाइलें, और हजारों उपयोगकर्ता निर्मित हैं .डब्ल्यूएडी डेटा फाइलें, जिनमें से कुछ 1 99 4 तक वापस आती हैं। पहले से रूपांतरण करना शायद सवाल से बाहर है। प्रोग्राम में इसे करने के लिए टिमडिटी ++ और फ्लूइड्सिनथ है, लेकिन मैंने दोनों मामलों में कम से कम संतोषजनक रूपांतरणों के बारे में शिकायतें सुनी हैं। – AlexMax

उत्तर

0

मैं एक ऐसी ही खेल बंदरगाह (वंश 2) को बनाए रखने कर रहा हूँ, और मैं एक ही समस्या का सामना करना है। एसडीएल_मिक्सर का उपयोग करते समय अफैइक का कोई समाधान नहीं है। मिडी संगीत को बंद करते समय ध्वनि को म्यूट करने से बचने का एक इलाज मैंने पाया है कि एक अस्थायी मिडी डिवाइस पर एक हैंडल पुनर्प्राप्त करना है, मिडी वॉल्यूम को अधिकतम तक सेट करें और फिर अस्थायी डिवाइस को फिर से बंद करें।

1

एक समाधान फ्लूइडसिंथ-सक्षम एसडीएल_मिक्सर के साथ शिप करना होगा। इसके साथ जाने के लिए आपको एक SoundFont2 फ़ाइल को भी शिप करने की आवश्यकता होगी। सौभाग्य से, वहाँ मुफ्त एसएफ 2 बाहर हैं, और कुछ डूम की MIDI फ़ाइलों के लिए अनुकूलित भी हैं। लाइसेंस एक समस्या नहीं होनी चाहिए, क्योंकि SoundFonts संपत्ति हैं, कोड नहीं।

फिर आप Mix_SetSoundFonts() का उपयोग करके SF2 लोड करते हैं।

0

सबसे लंबे समय तक, हमें मिला एकमात्र समाधान पोर्टमिडी जैसे कुछ का उपयोग करना था। हालांकि, इटरनिटी इंजन प्रसिद्धि के कैसर एक स्वच्छ समाधान भर में आ गया है:

http://www.doomworld.com/vb/showthread.php?s=&postid=1124981#post1124981

वह अनिवार्य रूप से अपनी ही प्रक्रिया में SDL_Mixer डालता है और आरपीसी के साथ इसे नियंत्रित करता है। बहुत चालाक।