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

Hello World

ตัวอย่างนี้เป็นโน้ตง่าย ๆ สำหรับเครื่องดนตรีเครื่องเดียว คือระนาดเอกเล่นสองบรรทัดแรกของเพลงลาวดวงเดือน

ลาวดวงเดือน, สองบรรทัดแรก

<?xml version="1.0" encoding="UTF-8"?>
<thai-score xmlns="https://thaimusicxml.anan.ovh/ns/1" version="1.0">
<header>
<title>Lao Duang Duen</title>
</header>
<structure>
<section id="s1" name="ท่อน 1" />
</structure>
<ensemble>
<part id="P1">
<instrument-name>Ranat Ek</instrument-name>
</part>
</ensemble>
<part-data part="P1">
<section-ref section="s1">
<line number="1">
<measure number="1">
<rest/><rest/><rest/><rest/>
</measure>
<measure number="2">
<rest/><rest/><rest/><rest/>
</measure>
<measure number="3">
<rest/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
<measure number="4">
<rest/><note pitch=""/><rest/><note pitch="ดํ"/>
</measure>
<measure number="5">
<rest/><rest/><rest/><note pitch="รํ"/>
</measure>
<measure number="6">
<note pitch="ดํ"/><note pitch="ดํ"/><note pitch="ดํ"/><note pitch="ดํ"/>
</measure>
<measure number="7">
<note pitch=""/><note pitch=""/><note pitch="ดํ"/><note pitch=""/>
</measure>
<measure number="8">
<note pitch=""/><note pitch=""/><rest/><note pitch=""/>
</measure>
</line>
<line number="2">
<measure number="1">
<rest/><rest/><rest/><note pitch=""/>
</measure>
<measure number="2">
<note pitch=""/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
<measure number="3">
<rest/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
<measure number="4">
<note pitch=""/><note pitch=""/><note pitch="ดํ"/><note pitch=""/>
</measure>
<measure number="5">
<rest/><rest/><note pitch=""/><note pitch=""/>
</measure>
<measure number="6">
<note pitch="ดํ"/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
<measure number="7">
<note pitch=""/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
<measure number="8">
<note pitch=""/><note pitch=""/><rest/><note pitch=""/>
</measure>
</line>
</section-ref>
</part-data>
</thai-score>

ต่อไปนี้คือคำอธิบายแต่ละองค์ประกอบ

<?xml version="1.0" encoding="UTF-8"?>

บรรทัดนี้คือการประกาศ XML บอกว่าเอกสารนี้เป็น XML และเข้ารหัสแบบ UTF-8

<thai-score xmlns="https://thaimusicxml.anan.ovh/ns/1" version="1.0">

<thai-score> คือรากของเอกสาร ThaiMusicXML แอตทริบิวต์ xmlns ประกาศเนมสเปซของ ThaiMusicXML ซึ่งเป็นสิ่งที่เครื่องมือใช้แยกองค์ประกอบเหล่านี้จากคำศัพท์ XML อื่น และใช้ตัดสินว่าจะอ่านไฟล์นี้ได้หรือไม่ ส่วน version บันทึกว่าไฟล์อ้างอิงสเปกรุ่นใด

<header>
<title>Lao Duang Duen</title>
</header>

<header> เก็บข้อมูลเมตาของโน้ต ต้องมี <title> ซึ่งในตัวอย่างนี้คือชื่อเพลง และอาจมี <composer> กับ <tuning> เพิ่มเติมได้

<structure>
<section id="s1" name="ท่อน 1" />
</structure>

<structure> กำหนดโครงสร้างของโน้ต แต่ละ <section> มี id ที่ <section-ref> ใช้อ้างอิงภายหลังเพื่อแนบข้อมูลดนตรี และมี name เป็นป้ายให้ผู้อ่านได้ถ้าต้องการ ลำดับของท่อนในโน้ตคือตำแหน่งของ <section> แต่ละตัวที่ปรากฏใน <structure>

<ensemble>
<part id="P1">
<instrument-name>Ranat Ek</instrument-name>
</part>
</ensemble>

<ensemble> แสดงรายชื่อเครื่องดนตรีทั้งหมด <part> แต่ละตัวมี id ที่ไม่ซ้ำกันและ <instrument-name> ตัวอย่างนี้มีระนาดเอกเพียงเครื่องเดียว

<part-data part="P1">
<section-ref section="s1">
<line number="1">
<measure number="1">
<rest/><rest/><rest/><rest/>
</measure>
<measure number="2">
<rest/><rest/><rest/><rest/>
</measure>
<measure number="3">
<rest/><note pitch=""/><note pitch=""/><note pitch=""/>
</measure>
...
</line>
</section-ref>
</part-data>

<part-data> บรรจุข้อมูลดนตรีของพาร์ตหนึ่ง แอตทริบิวต์ part ระบุว่าเป็นพาร์ตใดใน <ensemble> ส่วน <section-ref> ที่อยู่ข้างในเชื่อมโยงไปยังท่อนใน <structure> ดนตรีจัดเรียงเป็นองค์ประกอบ <line> แต่ละบรรทัดมี <measure> พร้อมแอตทริบิวต์ number

โน้ตใช้ชื่อระบบเสียงไทยในแอตทริบิวต์ pitch แต่ละดีกรีมีการสะกดสามแบบใช้แทนกันได้ pitch="1", pitch="D", และ pitch="ด" จึงเป็นโน้ตเดียวกัน เพลงนี้ใช้ห้าจากเจ็ดเสียง:

ตัวเลข ไทย โรมัน ซอลเฟจ
1 D Do
2 R Re
3 M Mi
4 F Fa
5 S Sol
6 L La
7 T Ti

คอลัมน์ซอลเฟจมีไว้ช่วยอ่านออกเสียงตารางเท่านั้น สามคอลัมน์ทางซ้ายคือค่า pitch ที่ใช้ได้จริง

เติม ํ (นิคหิต) ต่อท้ายชื่อโน้ตเพื่อยกขึ้นหนึ่ง octave เติม ฺ (พินทุ) เพื่อลดลงหนึ่ง octave เช่น ดํ คือ ด ที่สูงขึ้นหนึ่ง octave และ ทฺ คือ ท ที่ต่ำลงหนึ่ง octave ตัวปรับใช้ได้กับการสะกดทั้งสามแบบ รายละเอียดทั้งหมดอยู่ในหน้า โน้ต ตัวหยุด และ octave

<rest/>

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

ไฟล์นี้คือไฟล์ ThaiMusicXML ที่สมบูรณ์แล้ว ขั้นต่อไป ดู โครงสร้างไฟล์ เพื่อเรียนรู้วิธีเพิ่มเครื่องดนตรีหลายตัว หมายเหตุประกอบ และทิศทางการแสดง

ลองเล่นใน Playground