इस प्रोजेक्ट के बारे में
Muse Next, बंद हो चुके Windows नेटिव Muse Pro 2.70 संगीत स्कोर संपादक का आधुनिक पुनर्निर्माण है, जो TypeScript, Electron, React तकनीक स्टैक पर आधारित है और क्लीन-रूम सिद्धांत का पालन करता है, मूल कोड या कॉपीराइट संसाधनों को पोर्ट नहीं करता। मुख्य लक्ष्य क्रमशः निजी संगीत स्कोर प्रारूप .jcx की पढ़ने-लिखने, स्कोर रेंडरिंग, संपादन और प्लेबैक क्षमता बहाल करना है।
रिवर्स इंजीनियरिंग विश्लेषण से पुष्टि हुई कि .jcx बाइनरी नहीं है, बल्कि ABC notation पर आधारित और Muse के निजी एक्सटेंशन जोड़ने वाला सादा टेक्स्ट प्रारूप है, जिसमें वॉयस style, %%gchord कॉर्ड चार्ट, गिटार TAB, जियानपु एनोटेशन आदि शामिल हैं। इसलिए परियोजना तैयार ABC पार्सिंग लाइब्रेरी का उपयोग नहीं करती, और नोटेशन इंजन को आंतरिक मॉडल नहीं बनाती।
आर्किटेक्चर एकदिशीय पाइपलाइन का उपयोग करता है: बाइट डिकोडिंग के बाद Muse स्रोत टेक्स्ट प्राप्त होता है, लेक्सर से pitch-mode और tab-mode द्वि-मोड token स्ट्रीम मिलती है, फिर लॉसलेस AST बनाया जाता है, जिसे printAst के माध्यम से डिकोड किए गए टेक्स्ट को बाइट-दर-बाइट पुनर्स्थापित किया जा सकता है, इसके बाद सामान्यीकृत Domain Score में पार्स किया जाता है, जिसमें Voice, MusicEvent, Relation आदि आधिकारिक मॉडल शामिल हैं, और अंत में preserve मोड में मूल टेक्स्ट को बाइट-दर-बाइट या canonical मानक रूप में सीरियलाइज़ किया जाता है। रेंडरिंग, संपादन आदि एप्लिकेशन परतें केवल Domain पर निर्भर हो सकती हैं, JCX टेक्स्ट को सीधे पार्स या AST को संचालित नहीं कर सकतीं।
डिज़ाइन बाधाओं में शामिल हैं: Scanner केवल वर्गीकरण सांख्यिकी करता है, अज्ञात का सामना होने पर स्पष्ट रूप से संरक्षित करना आवश्यक है, UNVERIFIED सिमेंटिक्स Domain मजबूत टाइप में प्रवेश नहीं करते, साक्ष्य प्राथमिकता वास्तविक कॉर्पस > मूल सहायता दस्तावेज़ > ABC मानक है।
निर्देशिका में src/domain आधिकारिक मॉडल है और प्रारूप, रेंडरिंग आदि परतों पर निर्भरता प्रतिबंधित है; src/formats/jcx द्विदिशीय रूपांतरण प्रदान करता है, जिसमें encoding, lexer, ast, parse, serialize और सिमेंटिक प्रोजेक्शन उपकरण शामिल हैं, बाहरी प्रवेश बिंदु src/formats/jcx/index.ts है। सार्वजनिक API loadJcx प्रदान करता है जो bytes या टेक्स्ट को Score, diagnostics, lex, ast में पढ़ता है; serializeJcx preserve मोड में बाइट-दर-बाइट पुनर्स्थापन और canonical मोड में %MUSE2 हेडर वाला UTF-8 मानक टेक्स्ट आउटपुट का समर्थन करता है।
माइलस्टोन M0 से M1.8 पूर्ण हो चुके हैं, जिनमें Electron स्कैफोल्ड, कॉर्पस स्कैनिंग, JCX विशिष्टता दस्तावेज़, लेक्सर, लॉसलेस AST, Parser, Serializer, round-trip संगतता गार्डरेल शामिल हैं, और तीन-प्लेटफ़ॉर्म CI में पास हुए हैं। 2026-09-22 को सील किए गए M2 Notation Rendering में Domain Score से कॉर्ड चार्ट, जियानपु, गिटार TAB, स्टाफ चार प्रकार की नोटेशन रेंडरिंग लागू की गई है, Staff VexFlow adapter के माध्यम से एकदिशीय निर्भरता रखता है, रेंडरिंग परत में कॉन्ट्रैक्ट टेस्ट मैट्रिक्स है, पूरे रिपॉज़िटरी के 74 टेस्ट फ़ाइलों के 5642 केस पास हुए हैं।
अगला चरण M3 Editor Core का चयन कर्सर, कमांड आर्किटेक्चर, अनडू-रीडू और स्रोत विज़ुअलाइज़ेशन सिंक है, इसके बाद प्लेबैक, MIDI आयात-निर्यात, लेआउट और वितरण की योजना है। विकास के लिए Node.js ≥22.12 आवश्यक है, typecheck, test, jcx:corpus-test, jcx:fixture-report आदि कमांड उपलब्ध हैं, CI macOS, Windows, Ubuntu मैट्रिक्स पर चलता है। गुणवत्ता गार्डरेल fixture मैट्रिक्स के माध्यम से parse, semantic, preserve byte-identical, idempotent, closure, reparse-clean छह मदों की जाँच करता है, और pinned known limitation से ज्ञात सीमाओं को स्पष्ट रूप से दर्ज करता है। परियोजना में मूल प्रोग्राम की निष्पादन योग्य फ़ाइलें, अंतर्निहित संगीत स्कोर, स्वामित्व वाले फ़ॉन्ट शामिल नहीं हैं, कॉर्पस स्थानीय रूप से संग्रहीत और gitignore द्वारा बहिष्कृत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.