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

<note>

องค์ประกอบ <note> ใช้แทนโน้ตดนตรีหนึ่งตัว

<measure> หรือ <group>

แอตทริบิวต์ จำเป็น ประเภท คำอธิบาย
pitch หาก type ของพาร์ตเป็น "pitched" (ค่าเริ่มต้น) pitch ชื่อโน้ต ดู รูปแบบระดับเสียง ด้านล่าง
sound หาก type ของพาร์ตเป็น "unpitched" สตริง รหัสเสียงเฉพาะเครื่องดนตรี ดู โน้ตไม่มีระดับเสียง ด้านล่าง
octave ไม่ จำนวนเต็ม เลข octave ใดก็ได้ ใช้ได้กับ pitch เท่านั้น ค่าเริ่มต้นคือ 0 และไม่ได้ถูกใช้เมื่อ pitch มีตัวปรับ octave ของไทย ดู การสอดคล้องมาตรฐาน ด้านล่าง
id ไม่ token เอกลักษณ์ทางเลือก ต้องไม่ซ้ำกันในทุก <note> ของเอกสาร มีไว้ให้ส่วนขยายเนมสเปซภายนอกอ้างถึง ThaiMusicXML เองไม่ได้ใช้งาน

pitch และ sound ใช้แทนกันไม่ได้ โน้ตแต่ละตัวใช้อย่างใดอย่างหนึ่งตาม type ของ <part> ที่บรรจุมันอยู่ พาร์ตที่มี type="lyric" ไม่มี <note> เลยสักตัว แต่ใช้ <syllable> แทน

<!-- Do ต่ำ -->
<note pitch="1" octave="-1"/>
<note pitch="D" octave="-1"/>
<note pitch="ดฺ"/>
<!-- Do กลาง -->
<note pitch="1" octave="0"/>
<note pitch="D" octave="0"/>
<note pitch=""/>
<!-- Do สูง -->
<note pitch="1" octave="1"/>
<note pitch="D" octave="1"/>
<note pitch="ดํ"/>

ค่า pitch คืออักขระโน้ตตัวฐานหนึ่งตัว โดยจะตามด้วยตัวปรับ octave ของไทยอีกหนึ่งตัวหรือไม่ก็ได้

แต่ละดีกรีของระบบเสียงมีวิธีสะกดที่ใช้แทนกันได้สามแบบ pitch="1", pitch="D", และ pitch="ด" คือโน้ตเดียวกัน

ตัวเลข ไทย โค้ดพอยต์ โรมัน
1 U+0E14 D
2 U+0E23 R
3 U+0E21 M
4 U+0E1F F
5 U+0E0B S
6 U+0E25 L
7 U+0E17 T

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

โน้ตตัวฐานแบบโรมันเขียนตัวพิมพ์ใหญ่หรือเล็กก็ได้ pitch="d" และ pitch="D" เป็นโน้ตเดียวกัน ตัวพิมพ์ไม่มีความหมายใด ๆ ตัวแสดงผลจึงเลือกแสดงตัวพิมพ์แบบใดก็ได้ตามที่ต้องการ ไม่จำเป็นต้องตรงกับที่ไฟล์เขียนไว้ ค่าเริ่มต้นเป็นตัวพิมพ์ใหญ่

ตัวปรับ ชื่อไทย โค้ดพอยต์ ผล ตัวอย่าง
นิคหิต U+0E4D ยกขึ้นหนึ่ง octave ดํ = ด สูงขึ้นหนึ่ง octave
พินทุ U+0E3A ลดลงหนึ่ง octave ทฺ = ท ต่ำลงหนึ่ง octave

ตัวปรับใช้ได้กับการสะกดทั้งสามแบบ ดังนั้น 1ํ, Dํ, และ ดํ จึงถูกต้องทั้งหมดและหมายถึงโน้ตเดียวกัน

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

การ normalize รูปแบบ Unicode ไม่ใช่ปัญหาในที่นี้ เพราะภาษาไทยไม่มี canonical compositions ดํ จึงเป็นสองโค้ดพอยต์เดียวกันคือ U+0E14 และ U+0E4D ไม่ว่าจะอยู่ในรูป NFC, NFD หรือรูปที่เขียนไว้แต่แรก ตัวประมวลผลจึงไม่จำเป็นต้องทำ normalization ก่อนจับคู่ค่า pitch และถึงจะทำก็ไม่ทำให้ผลลัพธ์เปลี่ยนไป

สำหรับกลองและเครื่องดนตรีที่ไม่มีระดับเสียง โน้ตใน <part type="unpitched"> ใช้ sound แทน pitch โดย sound เป็นรหัสอิสระเฉพาะเครื่องดนตรี ให้บันทึกความหมายของแต่ละค่าไว้ด้วย <annotation> ภายใน <section-ref> ของพาร์ตนั้น

<section-ref section="s1">
<annotation>0 = ฉิ่ง / 1 = ฉับ</annotation>
<line number="1">
<measure number="1">
<rest/><note sound="0"/><rest/><note sound="1"/>
</measure>
</line>
</section-ref>

โน้ตแสดงผลในการสะกดที่ไฟล์เขียนไว้ ส่วนโน้ตไม่มีระดับเสียงแสดง sound ตามที่เขียนทุกตัวอักษร ตัวปรับ octave ของไทย ไม่ว่าจะเขียนไว้ตามตัวอักษรจริงใน pitch หรือบ่งชี้ด้วย octave แสดงผลเป็นจุดเล็ก ๆ แทนรูปนิคหิต/พินทุตามตัวอักษรจริง ดู ภายในห้อง, เครื่องหมาย octave และ ระดับเสียง octave นอกเหนือจากการสะกดไทย

  • pitch ต้องเป็นหนึ่งในอักขระโน้ตตัวฐานทั้งเจ็ดตัว ในการสะกดแบบใดก็ได้ทั้งสามแบบ ตามด้วยตัวปรับ octave ของไทยได้อีกไม่เกินหนึ่งตัว ตัวตรวจสอบต้องปฏิเสธค่าอื่นทั้งหมด
  • โน้ตตัวฐานแบบโรมันเขียนตัวพิมพ์ใหญ่หรือเล็กก็ได้ ทั้งสองถูกต้องและเป็นโน้ตเดียวกัน
  • เมื่อ pitch มีตัวปรับ octave ของไทย (นิคหิต หรือพินทุ ) ตัวปรับนั้นเป็นตัวกำหนด octave ส่วนแอตทริบิวต์ octave บน <note> เดียวกันจะไม่ได้ถูกใช้
  • ตัวตรวจสอบควรแจ้งเตือนแทนที่จะปฏิเสธ เมื่อ octave ปรากฏคู่กับตัวปรับ octave ของไทย เพราะเป็นการซ้ำซ้อนที่ไม่ขัดแย้งกัน
  • เมื่อ pitch ไม่มีตัวปรับ octave ของไทย (ไม่ว่าจะเป็นตัวเลข โรมัน หรือไทยที่ไม่ได้ดัดแปลง) octave จะใช้งานตามปกติ โดยมีค่าเริ่มต้นเป็น 0 เมื่อไม่ได้ระบุ
  • octave ไม่ได้จำกัดอยู่แค่ -1, 0, หรือ 1 ค่านอกช่วงนี้ไม่มีการสะกดแบบไทยที่แยกจากกันได้ แต่ค่า octave ก็ยังคงเป็นค่าที่ใช้เล่นจริงเสมอ ไม่ว่าตัวแสดงผลจะเลือกแสดงอย่างไร ดู ระดับเสียง octave นอกเหนือจากการสะกดไทย
  • octave สามารถปรากฏบน <note> ที่ใช้ sound ได้ แต่ไม่มีผลใด ๆ เพราะรหัส sound เฉพาะเครื่องดนตรีไม่ได้จัดเรียงเป็น octave ตัวตรวจสอบควรแจ้งเตือน เนื่องจากแอตทริบิวต์นี้จะถูกละทิ้งไป
  • id ถ้ามี ต้องไม่ซ้ำกันในทุก <note> ของเอกสาร