1. ข้อกำหนดไฟล์ไบนารีเคอร์เซอร์ NCN (.cur)
ไฟล์ .cur (Cursor) เป็นไฟล์แทร็กเวลาสำหรับการปาดสีตัวอักษรในเพลง NCN คาราโอเกะ โดยไฟล์นี้เป็น **ไฟล์ไบนารีบริสุทธิ์ (Raw Binary)** บันทึกตัวเลขจำนวนเต็ม 16-bit Unsigned Integer ซึ่งถูกบีบอัดขนาดลงโดยอ้างอิงกับค่าความละเอียดมาตรฐาน **24 PPQ (Pulses Per Quarter Note)**
2. อัลกอริทึมการอ่านไบต์ไฟล์เคอร์เซอร์
อัลกอริทึมการถอดรหัสไบนารีจะอ่านข้อมูลจาก DataView ครั้งละ 2 ไบต์ ตามลำดับ Little-Endian ดังนี้:
สูตรคำนวณอ่านไบต์และตัวระบุจุดสิ้นสุดไฟล์ (EOF Marker)
การอ่านค่าตัวเลขของแต่ละคู่ไบต์ (byte1 และ byte2):value = byte1 + (byte2 * 256)
และระบบจะหยุดอ่านทันทีเมื่อตรวจพบไบต์สิ้นสุดค่า 0xFF ที่ไบต์ที่สอง
3. สูตรคำนวณแปลงค่า Cursor เป็น MIDI Ticks (cursorToTick)
เนื่องจากค่าเวลาในไฟล์ .cur ถูกบีบอัดให้อยู่บนฐาน 24 PPQ ในการเล่นเพลงจริงบน Web Audio Synth ต้องนำค่าเคอร์เซอร์มาแปลงให้ตรงกับความละเอียด PPQ ของไฟล์ MIDI นั้นๆ (เช่น 480 หรือ 960 PPQ) ด้วยสูตรคณิตศาสตร์ดังนี้:
สูตรคำนวณการแปลงค่า (Mathematical Formula)
สูตรคำนวณการแปลงค่า (Mathematical Formula)
realTick = Math.round((cursorValue * ticksPerBeat) / 24)
4. การแมปตัวอักษรเข้ากับลำดับเวลา (1-to-1 Mapping)
เมื่อแปลงค่าเคอร์เซอร์ทั้งหมดเป็น realTick เรียบร้อยแล้ว ระบบจะนำตัวอักษรและช่องว่างจากไฟล์ .lyr มาจับคู่แบบ 1-ต่อ-1 เข้ากับอาร์เรย์ realTick เมื่อเพลงเล่นไปข้างหน้า ระบบเรนเดอร์ (Canvas/DOM) จะทำการเปลี่ยนสีไฮไลท์ตัวอักษรแต่ละตัวแบบเรียลไทม์ทันทีที่เวลา MIDI Tick ในขณะนั้นเดินทางมาถึงตำแหน่ง realTick ของตัวอักษรนั้นๆ