แบบจำลองโน้ต
หน้านี้อธิบายแนวคิดเบื้องหลังองค์ประกอบที่เห็นมาแล้ว ไม่มีไฟล์ใหม่ มีแต่แบบจำลองที่ทำให้ฟอร์แมตทำงานได้
ห้องคือหน่วยเวลาคงที่
หัวข้อที่มีชื่อว่า “ห้องคือหน่วยเวลาคงที่”ทุกพาร์ตในโน้ตตกลงกันว่าแต่ละห้องมีกี่จังหวะ ในไฟล์ลาวดวงเดือน ทุกห้องมีสี่จังหวะ พาร์ตหนึ่งอาจเล่นโน้ตสี่ตัวขณะที่อีกพาร์ตเล่นโน้ตตัวเดียว ตัวหยุดสองตัว และกลุ่มสามตัว แต่ทั้งสองพาร์ตใช้สี่จังหวะเท่ากัน
จำนวนจังหวะของห้องคือจำนวนลูก <note>, <rest>, และ <group> ไม่มีเครื่องหมายจังหวะหรือค่า division ที่ต้องตั้ง
โน้ตไม่มีความยาว
หัวข้อที่มีชื่อว่า “โน้ตไม่มีความยาว”ในโน้ตตะวันตก โน้ตหนึ่งจังหวะกับโน้ตสองจังหวะต่างกันที่ความยาวที่เขียน ใน ThaiMusicXML ทุกโน้ตใช้หนึ่งช่องพอดี และช่องนั้นคือความยาว ไม่มี <duration> ไม่มี <divisions> โน้ตดังขึ้น แล้วช่องถัดไปก็มาถึง
ตารางจึงเรียบง่าย นับลูกของห้องแล้วจะรู้รูปร่างของมัน
ตัวหยุดคือไม่ตี ไม่ใช่ความเงียบ
หัวข้อที่มีชื่อว่า “ตัวหยุดคือไม่ตี ไม่ใช่ความเงียบ”<rest> หมายความว่าเครื่องดนตรีไม่ตีเสียงใหม่ในจังหวะนั้น ไม่ได้หมายความว่าเงียบ เครื่องดนตรีไทยไม่มีเครื่องหมายการประคองเสียง ระนาดเอกที่ปล่อยให้เสียงก้องอยู่ใต้ตัวหยุดถัดไปคือเครื่องดนตรีทำงานตามปกติ ไม่ใช่การตัดสินใจเรื่องโน้ต ฟอร์แมตเชื่อใจเครื่องดนตรี
จังหวะนับที่ช่องสุดท้าย
หัวข้อที่มีชื่อว่า “จังหวะนับที่ช่องสุดท้าย”ในดนตรีตะวันตก (และ MusicXML) จังหวะยึดกับจุดเริ่มต้น โน้ตลงจังหวะคือจุดที่โน้ตเริ่ม ThaiMusicXML กลับกัน ตำแหน่งของจังหวะคือจุดที่มันจบ โน้ตก่อนหน้านำไปสู่จุดนั้น และโน้ตตัวสุดท้ายในกลุ่มลงบนจังหวะพอดี
อ่านสี่ช่องจากซ้ายไปขวา:
ช่อง 1 ช่อง 2 ช่อง 3 ช่อง 4 ········ จังหวะ 4 มาถึงที่นี่นี่คือความแตกต่างที่สำคัญที่สุดจากโน้ตตะวันตกในฟอร์แมตนี้ และมีผลกับวิธีที่ กลุ่ม แบ่งจังหวะ หน้า 5 อธิบายรายละเอียด
ชั้นไม่ใช่จังหวะเวลา
หัวข้อที่มีชื่อว่า “ชั้นไม่ใช่จังหวะเวลา”ชั้น (chan) คือระบบชั้นจังหวะของดนตรีไทย ได้แก่ ชั้นเดียว สองชั้น สามชั้น เป็นต้น ควบคุมความถี่ของรอบฉิ่ง ไม่ใช่ความเร็วของโน้ต
<bpm> กำหนดจังหวะเวลา หนึ่งจังหวะ bpm คือครึ่งห้อง ไม่ว่าจะอยู่ชั้นใด ห้องหนึ่งจึงใช้เวลาเท่ากันไม่ว่าอยู่ตรงไหน และจังหวะในห้องแบ่งเวลานั้นกันเอง การเปลี่ยนจากชั้นเดียวเป็นสองชั้นที่ bpm เดียวกันยืดทำนองให้ครอบคลุมห้องมากขึ้นเป็นสองเท่า และยืดรอบฉิ่งตามไปด้วย จังหวะฉิ่งจึงมาถึงห่างขึ้น โน้ตยังคงอัตราเท่าเดิม เพลงเล่นเร็วเท่าเดิมแต่มีรอบฉิ่งบางกว่าอยู่ข้างใต้
<chan> และ <nathap> ใน <direction> เป็นข้อมูลเมตา บันทึกว่าเพลงนี้คืออะไร และส่งข้อมูลนั้นไปยังเครื่องมือแก้ไข ไลบรารี และเอนจินเล่นเสียง ตัวประมวลผลที่ละเลยองค์ประกอบเหล่านี้ทั้งหมดก็ยังเล่นโน้ตได้ถูกต้อง เพราะพาร์ตฉิ่งเขียนไว้เป็น <part> ธรรมดาแบบไม่มีระดับเสียง ไม่ได้สร้างจากค่าชั้น
ตัวเรนเดอร์ไม่มีหน้าที่สร้างอะไร
หัวข้อที่มีชื่อว่า “ตัวเรนเดอร์ไม่มีหน้าที่สร้างอะไร”ไฟล์ ThaiMusicXML เก็บโครงสร้าง ไม่เก็บเลย์เอาต์ เรนเดอร์วาดตาราง วางโน้ต และแสดงสิ่งที่ผู้เรียบเรียงพิมพ์ไว้ ไม่สร้างหัวข้อท่อน ชื่อผู้แต่ง เครื่องหมายจังหวะเวลา หรือป้ายซ้ำจากข้อมูลเมตา
section/@name, <composer>, <chan>, <repeat> มีไว้สำหรับไฟล์และเครื่องมือที่อ่านมัน สิ่งที่พิมพ์บนหน้ากระดาษคือสิ่งที่ผู้เรียบเรียงใส่ไว้ใน <annotation> หรือเครดิต ถ้าอยากให้มีหัวข้อเหนือท่อน ก็พิมพ์ไว้เอง ถ้าอยากให้มีชื่อผู้แต่งบนหน้ากระดาษ ก็เขียนไว้ในเครดิต ฟอร์แมตไม่ตัดสินว่าอะไรจะปรากฏ ผู้เรียบเรียงเป็นคนตัดสิน
นี่คือความแตกต่างที่ตั้งใจจาก MusicXML ที่เรนเดอร์สร้างผลลัพธ์ที่พิมพ์ออกมาจำนวนมากจากมาร์กอัป ใน ThaiMusicXML มาร์กอัปคือข้อมูล และหน้ากระดาษคือผลงานของผู้เรียบเรียง
สำหรับผู้ที่มาจาก MusicXML
หัวข้อที่มีชื่อว่า “สำหรับผู้ที่มาจาก MusicXML”| MusicXML | ThaiMusicXML | หมายเหตุ |
|---|---|---|
<duration>, <divisions> |
ไม่มีคู่ตรง | โน้ตไม่มีความยาวที่เขียน แต่ละตัวใช้หนึ่งช่อง |
<tie> |
ไม่มีคู่ตรง | เครื่องดนตรีไทยไม่มีเครื่องหมายการประคองเสียง โน้ตที่ก้องใต้ตัวหยุดคือเครื่องดนตรี ไม่ใช่ tie |
<part-list> |
<ensemble> |
แสดงรายชื่อพาร์ตด้วยองค์ประกอบ <part> |
| Partwise / timewise | ไม่มีเทียบเท่า | มีการจัดเรียงเดียว ไม่ใช่สองเลย์เอาต์ของข้อมูลเดียวกัน |
<time> |
ไม่มีคู่ตรง | จำนวนจังหวะคือจำนวนลูกในห้อง |
<note type="quarter"> |
ไม่มีคู่ตรง | ทุกโน้ตเป็นหนึ่งช่อง ไม่มีประเภทโน้ต |
ขั้นต่อไป ดู โน้ต ตัวหยุด และ octave สำหรับตารางโน้ตฉบับเต็มและวิธีที่ octave ทำงาน