इस प्रोजेक्ट के बारे में
SyntaxWave एक प्रायोगिक ऑडियो प्रोग्रामिंग वातावरण है जो लाइव कोडिंग कलाकारों और एल्गोरिदमिक संगीत खोजकर्ताओं के लिए बनाया गया है। टाइमलाइन-आधारित DAW के बजाय, यह कोड को वाद्य यंत्र मानता है: ऑसिलेटर, एनवेलप, फ़िल्टर, डिले लाइन और ग्रैन्युलर सिंथेसिस के लिए कीवर्ड वाली एक कस्टम डोमेन-स्पेसिफिक भाषा वेक्टराइज़्ड ऑडियो ऑपरेशन में कंपाइल होती है, और README सामान्य पैच के लिए पाँच मिलीसेकंड से कम का कंपाइलेशन समय होने का दावा करता है।
रनटाइम को चार परतों में वर्णित किया गया है। एक एडिटर परत ब्राउज़र-आधारित IDE प्रदान करती है जिसमें सिंटैक्स हाइलाइटिंग, DSL ऑटोकम्पलीट, इनलाइन डॉक्युमेंटेशन और ऑपरेशनल ट्रांसफ़ॉर्मेशन के ज़रिए सहयोगी संपादन शामिल है। एक कंपाइलेशन परत DSL को इंटरमीडिएट रिप्रेज़ेंटेशन में पार्स करती है, उसे WebAssembly में JIT-कंपाइल करती है और बफ़र जनरेशन को GPU पर भेजती है। एक ऑडियो परत सैंपल-सटीक शेड्यूलिंग और मल्टीचैनल रूटिंग के लिए प्लेटफ़ॉर्म बैकएंड (WASAPI, CoreAudio, ALSA, फ़ॉलबैक के रूप में Web Audio API) का उपयोग करती है। एक नेटवर्क परत WebRTC मेश बनाती है जहाँ प्रत्येक नोड उत्पादक और उपभोक्ता दोनों होता है, और CRDT-आधारित स्टेट सिंक्रोनाइज़ेशन के साथ समवर्ती संपादन एक ही आउटपुट पर अभिसरित होते हैं।
सहयोग एक प्रमुख विशेषता है: प्रतिभागी एक वितरित ऑडियो ग्राफ़ साझा करते हैं, स्निपेट साझा कर सकते हैं, एक-दूसरे के योगदान को म्यूट या सोलो कर सकते हैं, और स्ट्रीम को मास्टर आउटपुट में मर्ज कर सकते हैं। README नोड्स के बीच 15 ms से कम लेटेंसी और एज नोड्स के बीच 30 ms से कम नेटवर्क लेटेंसी बजट बताता है। एक मास्टर टाइमलाइन ब्राउज़र प्रत्येक प्रतिभागी के कोड परिवर्तनों को लेन के रूप में दिखाता है जिनके नीचे वेवफ़ॉर्म होते हैं।
एक न्यूरल विश्लेषण पाइपलाइन लाइव ऑडियो से बीट ग्रिड, की सिग्नेचर, ऑनसेट पैटर्न और टिम्ब्रल डिस्क्रिप्टर निकालती है, और स्पेक्ट्रोग्राम, क्रोमाग्राम तथा वेवफ़ॉर्म क्लस्टर को विज़ुअल फ़ीडबैक के रूप में एडिटर में वापस भेजती है। जेस्चर नियंत्रण MIDI फ़ेडर, एक्सेलेरोमीटर या कैमरा-ट्रैक किए गए हाथ की स्थिति को किसी भी DSL वेरिएबल से मैप करता है। एक प्लगइन आर्किटेक्चर Rust या C में लिखे सिंथेसिस यूनिट, इफ़ेक्ट और विश्लेषण मॉड्यूल की अनुमति देता है, जिन्हें WebAssembly में कंपाइल करके सत्र के बीच में हॉट-लोड किया जा सकता है।
बताए गए तकनीकी विनिर्देशों में 44.1 kHz से 384 kHz तक कॉन्फ़िगर करने योग्य सैंपल रेट, 32 से 4096 सैंपल तक बफ़र आकार, प्रति नोड 512 तक समवर्ती वॉइस, एक wasm32-wasi प्लगइन ABI, और Windows 10/11, macOS 12+, Linux (x86_64, aarch64) तथा Chrome/Firefox/Edge के लिए समर्थन शामिल हैं। प्रोजेक्ट एक एकल एक्ज़ीक्यूटेबल के रूप में वितरित किया जाता है जो एक स्थानीय वेब सर्वर और ऑडियो बैकएंड लॉन्च करता है, और इंटरफ़ेस को ब्राउज़र में खोलता है। एक न्यूनतम उदाहरण है `sine freq:440 gain:0.3`, जिसे Ctrl+Enter से निष्पादित किया जाता है।
स्टेज-उन्मुख विशेषताओं में मल्टी-कर्सर संपादन, कोड हिस्ट्री स्क्रबिंग, एक फ़्रीज़ मोड जो अगला सेक्शन तैयार करते समय वर्तमान आउटपुट को बनाए रखता है, और एक प्रोजेक्टर व्यू जो UI क्रोम छिपाता है, शामिल हैं। इंटरफ़ेस डेस्कटॉप, टैबलेट और मोबाइल पर रिस्पॉन्सिव है, जिसमें टच जेस्चर और कम-लोड मोबाइल मोड है। UI स्ट्रिंग, टूलटिप और त्रुटि संदेश सोलह भाषाओं में उपलब्ध हैं, और DSL स्थानीयकृत कीवर्ड उपनाम स्वीकार करता है (उदाहरण के लिए `sinus` या `正弦波`)। README एकीकृत चैट और नॉलेज बेस के माध्यम से चौबीसों घंटे मानव सहायता का भी विज्ञापन करता है।
प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है और लाइव कोडिंग समुदाय, DSP शोधकर्ताओं और भाषा उत्साही लोगों से योगदान आमंत्रित करता है; README में दो सौ से अधिक समुदाय-योगदानित सिंथेसिस यूनिट वाले प्लगइन रिपॉज़िटरी और नियमित ऑनलाइन कोड जैम का उल्लेख है। एक अस्वीकरण नोट करता है कि रीयल-टाइम ऑडियो तेज़ या अप्रत्याशित ध्वनियाँ उत्पन्न कर सकता है, इसलिए उपयोगकर्ताओं को आउटपुट स्तरों की सावधानीपूर्वक निगरानी करनी चाहिए।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.