HeadlinesBriefing favicon HeadlinesBriefing.com

Aetheryte Radio Audio Engine बनाना

Hacker News •
×

लेखक ने Aetheryte Radio के पीछे JavaScript कार्यान्वयन का विवरण दिया है, जो अंतिम काल्पनिक XIV के वातावरणीय ध्वनि व्यवहार की नकल करता है। खेल "whir" ध्वनि यादृच्छिक अंतराल, पिच और मात्रा में बजाता है ताकि जीवन की भ्रम बनाया जा सके और संपत्ति दोहराव को मास्क किया जा सके। FFXIV इन पैरामीटर के लिए न्यूनतम और अधिकतम मान प्रदान करता है, जिससे उन्हें सीधे कोड में अनुवाद किया जा सकता है: यादृच्छिक इंडेक्स चयन, पुनरावृत्ति दर 0.794 से 1.0 के बीच, और लाभ मान 0.6 से 1.0 के बीच।

ऑडियो ग्राफ मानक Web Audio API पैटर्न का पालन करता है: एक नोड आवंटित करें, मेटाडेटा सेट करें, कनेक्ट करें। एक स्थिर हम्मिंग लूप एक बफर स्रोत के साथ बनाया गया है जिसकी निश्चित पुनरावृत्ति दर 0.63 है, जिसे एक गेन नोड से जोड़ा गया है और इसे अनंत के लिए लूप करने के लिए सेट किया गया है।

व्हिर प्रणाली पारंपरिक लूप से बचती है। `while(true)` के साथ स्लीप के बजाय, `setTimeout` एक यादृच्छिक विलंब (0–2001ms) के बाद अगले whir को शेड्यूल करता है। `chooseWhir` फ़ंक्शन एक स्रोत नोड बनाता है, यादृच्छिक गुण असाइन करता है, इसे कनेक्ट करता है और प्लेबैक शुरू करता है। महत्वपूर्ण रूप से, जब ध्वनि समाप्त होती है, तो नोड को डिस्कनेक्ट किया जाता है और एक नया `onended` के माध्यम से शेड्यूल किया जाता है, जिससे वातावरणीय प्रभावों के लिए स्वीकार्य सीमांत विलंब जुड़ता है।