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

แบบจำลองโน้ต

หน้านี้อธิบายแนวคิดเบื้องหลังองค์ประกอบที่เห็นมาแล้ว ไม่มีไฟล์ใหม่ มีแต่แบบจำลองที่ทำให้ฟอร์แมตทำงานได้

ทุกพาร์ตในโน้ตตกลงกันว่าแต่ละห้องมีกี่จังหวะ ในไฟล์ลาวดวงเดือน ทุกห้องมีสี่จังหวะ พาร์ตหนึ่งอาจเล่นโน้ตสี่ตัวขณะที่อีกพาร์ตเล่นโน้ตตัวเดียว ตัวหยุดสองตัว และกลุ่มสามตัว แต่ทั้งสองพาร์ตใช้สี่จังหวะเท่ากัน

จำนวนจังหวะของห้องคือจำนวนลูก <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 ThaiMusicXML หมายเหตุ
<duration>, <divisions> ไม่มีคู่ตรง โน้ตไม่มีความยาวที่เขียน แต่ละตัวใช้หนึ่งช่อง
<tie> ไม่มีคู่ตรง เครื่องดนตรีไทยไม่มีเครื่องหมายการประคองเสียง โน้ตที่ก้องใต้ตัวหยุดคือเครื่องดนตรี ไม่ใช่ tie
<part-list> <ensemble> แสดงรายชื่อพาร์ตด้วยองค์ประกอบ <part>
Partwise / timewise ไม่มีเทียบเท่า มีการจัดเรียงเดียว ไม่ใช่สองเลย์เอาต์ของข้อมูลเดียวกัน
<time> ไม่มีคู่ตรง จำนวนจังหวะคือจำนวนลูกในห้อง
<note type="quarter"> ไม่มีคู่ตรง ทุกโน้ตเป็นหนึ่งช่อง ไม่มีประเภทโน้ต

ขั้นต่อไป ดู โน้ต ตัวหยุด และ octave สำหรับตารางโน้ตฉบับเต็มและวิธีที่ octave ทำงาน