इस प्रोजेक्ट के बारे में
NoiseCraft एक ओपन-सोर्स, ब्राउज़र-आधारित विज़ुअल प्रोग्रामिंग भाषा और ध्वनि संश्लेषण तथा संगीत निर्माण के लिए एक मंच है। इसका डिज़ाइन शिथिल रूप से PureData और Max/MSP से प्रेरित है, और इसका उद्देश्य संगीत विचारों के आदान-प्रदान के लिए एक समुदाय को बढ़ावा देना है। यह परियोजना कार्य प्रगति पर है और README स्पष्ट रूप से योगदानकर्ताओं को इसे बनाने और डीबग करने में मदद करने के लिए आमंत्रित करता है।
आप इसे noisecraft.app पर आज़मा सकते हैं और noisecraft.app/browse पर साझा प्रोजेक्ट देख सकते हैं। यह वर्तमान में Chrome, Firefox और Edge में काम करता है, लेकिन वेब ऑडियो कार्यान्वयन समस्याओं के कारण Safari में विश्वसनीय रूप से नहीं चलता। मोबाइल समर्थन को कम बताया गया है, और बग की उम्मीद है।
डिज़ाइन सिद्धांत:
- न्यूनतम दर्शन: सादा JS/HTML/CSS बिना किसी वेब फ्रेमवर्क के, जानबूझकर न्यूनतम निर्भरता, आवश्यक सुविधाओं पर ध्यान, और फीचर क्रीप से बचाव।
- UI डिज़ाइन: सीखने की अवस्था और घर्षण को कम करना, इंटरफ़ेस को सरल और अव्यवस्थित रखना, जहाँ संभव हो ड्रॉप-डाउन मेनू और छिपे विकल्पों से बचना, परिचित कुंजी संयोजनों का उपयोग करना, और अस्पष्टता से बचना।
- भाषा डिज़ाइन: केवल एक डेटा प्रकार (फ्लोटिंग-पॉइंट संख्याएँ), और नियंत्रण संकेतों और ऑडियो संकेतों के बीच कोई अंतर नहीं।
- व्यावहारिक विचार: बैंडविड्थ और सर्वर लागत कम रखने के लिए छवियों और ध्वनि नमूनों से बचना; नमूनों से बचना उपयोगकर्ताओं को ध्वनि उत्पादन के बारे में सोचने के लिए प्रेरित करता है।
वास्तुकला नोट:
- सिंगल-पेज ऐप के बजाय मल्टी-पेज डिज़ाइन, ताकि New, Help और Browse नए टैब खोलें, काम के आकस्मिक नुकसान को कम करें और /browse और /help के लिए सीधे लिंक सक्षम करें।
- तत्काल-मोड GUI: UI मॉडल क्रियाओं पर फिर से खींचा जाता है, जो पिछले प्रोजेक्ट स्थितियों को संग्रहीत करके undo/redo को सरल बनाता है, पूर्ण पुनः-ड्रॉ से बचने के लिए कैशिंग के साथ।
- ऑडियो AudioView वर्ग (public/audioview.js) द्वारा निर्मित होता है, जो ऑडियो ग्राफ़ को JavaScript में संकलित करता है जो AudioWorklet में चलता है। Web Audio API का उपयोग केवल आउटपुट के लिए किया जाता है, संश्लेषण के लिए नहीं, ताकि ब्राउज़रों और उपकरणों में ध्वनि सुसंगत रहे।
- प्रोजेक्ट आसानी से पार्स किए जाने वाले JSON (.ncft) के रूप में सहेजे जाते हैं, जो बाहरी उपकरणों की अनुमति दे सकता है, README में प्रोजेक्ट को VST में संकलित करने की अटकलें हैं।
योगदान: बग फिक्स का स्वागत है, लेकिन परियोजना नई सुविधाओं और बड़े बदलावों के बारे में रूढ़िवादी है; योगदानकर्ताओं से अनुरोध है कि वे प्रस्तावित परिवर्तनों पर चर्चा करने के लिए पहले एक मुद्दा खोलें।
विकास सेटअप: Chrome अनुशंसित है। Node.js और npm स्थापित करें, npm install चलाएँ, फिर node server.js; ऐप http://localhost:7773/ पर उपलब्ध है। परीक्षण node tests.js के साथ चलते हैं। Docker निर्देश दिए गए हैं (docker build . -t noisecraft; docker run -p 7773:7773 -d noisecraft)। सर्वर कॉन्फ़िगरेशन पर्यावरण चर DB_FILE_PATH (डिफ़ॉल्ट ./database.db) और HTTP_PORT_NO (डिफ़ॉल्ट 7773) का उपयोग करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.