প্রকল্প সম্পর্কে

Muse Next হল বন্ধ হয়ে যাওয়া Windows নেটিভ Muse Pro 2.70 স্কোর এডিটরের একটি আধুনিক রিমেক, যা TypeScript, Electron, React প্রযুক্তি স্ট্যাক ব্যবহার করে এবং clean-room নীতি মেনে মূল কোড বা কপিরাইটযুক্ত রিসোর্স পোর্ট করে না। মূল লক্ষ্য ক্রমানুসারে ব্যক্তিগত স্কোর ফরম্যাট .jcx-এর পড়া-লেখা, স্কোর রেন্ডারিং, এডিটিং ও প্লেব্যাক ক্ষমতা পুনরুদ্ধার করা। রিভার্স ইঞ্জিনিয়ারিং বিশ্লেষণে নিশ্চিত হওয়া গেছে যে .jcx বাইনারি নয়, বরং ABC notation-এর উপর ভিত্তি করে Muse-এর ব্যক্তিগত এক্সটেনশন যুক্ত একটি প্লেইন টেক্সট ফরম্যাট, যাতে রয়েছে ভয়েস style, %%gchord কর্ড ডায়াগ্রাম, গিটার TAB, সংখ্যা-নোটেশন ইত্যাদি। তাই প্রকল্পটি তৈরি ABC পার্সিং লাইব্রেরি ব্যবহার করে না এবং নোটেশন ইঞ্জিনকেও অভ্যন্তরীণ মডেল হিসেবে ব্যবহার করে না। আর্কিটেকচার একমুখী পাইপলাইন ব্যবহার করে: বাইট ডিকোডের পর Muse সোর্স টেক্সট পাওয়া যায়, লেক্সারের মাধ্যমে pitch-mode ও tab-mode দ্বৈত-মোড টোকেন স্ট্রিম তৈরি হয়, তারপর লসলেস 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-এর মাধ্যমে একমুখী নির্ভরতা রাখে, রেন্ডারিং লেয়ারে কন্ট্রাক্ট টেস্ট ম্যাট্রিক্স রয়েছে, পুরো রিপোজিটরিতে ৭৪টি টেস্ট ফাইলের ৫৬৪২টি টেস্ট কেস পাস করেছে। পরবর্তী পর্যায় 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 দ্বারা বাদ দেওয়া হয়েছে।