ข้ามไปยังเนื้อหา

การตรวจสอบและขั้นต่อไป

คุณมีโน้ตแล้ว เข้าใจองค์ประกอบแล้ว และรู้ว่าแบบจำลองทำงานอย่างไร หน้านี้ครอบคลุมวิธีตรวจงานและแหล่งเรียนรู้ต่อ

ThaiMusicXML มี Schema RELAX NG ที่ public/schema/thaimusicxml-1.0.rng ตรวจสอบไฟล์กับ Schema ด้วยตัวตรวจสอบ RELAX NG ใดก็ได้ ใช้ xmllint:

Terminal window
xmllint --noout --relaxng public/schema/thaimusicxml-1.0.rng your-file.txml

Schema ตรวจสอบโครงสร้าง องค์ประกอบใดอยู่ตรงไหน แอตทริบิวต์ใดอนุญาต และค่าใดรับได้ ไม่ตรวจสอบกฎทางดนตรี

กฎทางดนตรีที่ Schema แสดงไม่ได้อยู่ใน scripts/check-corpus.mjs สคริปต์นี้รันกับทุกไฟล์ .txml ใน public/corpus/valid/ และตรวจสอบ:

  • ห้องที่ตรงกันระหว่างพาร์ตต้องมีจำนวนจังหวะเท่ากัน
  • หมายเลขบรรทัดและห้องเรียงลำดับ
  • <group> มีลูกอย่างน้อยสองตัว
  • ค่า <ending pass> สม่ำเสมอ

รันด้วย:

Terminal window
npm run check:corpus

ถ้าคุณกำลังส่งงานถอดโน้ต สคริปต์นี้ตรวจสอบไฟล์ของคุณตามกฎเดียวกับที่ Corpus ใช้

Playground ให้คุณแก้ไขและเรนเดอร์ไฟล์ ThaiMusicXML ในเบราว์เซอร์ วาง XML ของคุณ ดูโน้ตที่เรนเดอร์อัปเดตแบบเรียลไทม์ และแชร์ URL กับผู้อื่น

Playground โหลดเรนเดอร์เดียวกับที่เอกสารใช้ สิ่งที่เห็นใน Playground จึงตรงกับรูปภาพในเอกสาร

ตัวประมวลผลที่สอดคล้องต้องเตือนในบางสถานการณ์แทนที่จะปฏิเสธไฟล์:

  • ห้องที่ไม่มีโน้ต ตัวหยุด หรือกลุ่ม (จำนวนจังหวะเป็นศูนย์)
  • ห้องที่ตรงกันระหว่างพาร์ตมีจำนวนจังหวะต่างกัน
  • <group> ที่ข้ามขอบเขตห้อง
  • ค่า <ending pass> ข้ามรอบหรือซ้ำรอบ

เหล่านี้เป็นคำเตือน ไม่ใช่ข้อผิดพลาด ไฟล์ยังโหลดได้ ตัวประมวลผลบอกว่ามีบางอย่างดูไม่ถูกต้องเพื่อให้คุณแก้ไข

บทเรียนครอบคลุมองค์ประกอบหลักแล้ว เอกสารอ้างอิงมีมากกว่า:

  • องค์ประกอบ: ทุกองค์ประกอบ แอตทริบิวต์ ลูก และกฎสอดคล้อง
  • ตัวอย่าง: โน้ตสมบูรณ์ รวมถึงลาวดวงเดือน แขกบรเทศ และอื่น ๆ
  • การสอดคล้องมาตรฐาน: กฎที่เอกสารต้องเป็นไปตาม รวบรวมจากหน้าองค์ประกอบแต่ละหน้า
  • การแสดงผล: วิธีจัดวางและแสดงโน้ต (ไม่ใช่มาตรฐานบังคับ)
  • แผนงาน: สิ่งที่วางแผนไว้สำหรับเวอร์ชันถัดไป

ถ้าต้องการส่งงานถอดโน้ต ดูหน้าตัวอย่างเพื่อดูรูปแบบไฟล์สมบูรณ์ ตรวจสอบด้วย Schema และ Corpus เช็ค และใช้ Playground ตรวจสอบผลลัพธ์ที่เรนเดอร์