ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE

คู่มือผู้ใช้

ไวยากรณ์ MIDI

OnSong ใช้ไวยากรณ์แบบข้อความสำหรับการแสดง MIDI commands ในขณะที่คุณสามารถใช้ MIDI Events ใน Metadata Editor คุณยังสามารถแสดง MIDI commands ในรูปแบบข้อความได้

ค่าที่คั่นด้วยตัวคั่น

ก่อนอื่นและสำคัญที่สุด MIDI commands หลายรายการสามารถแยกได้โดยใช้อักขระต่างๆ รวมถึง: อักขระแท็บ จุลภาค เซมิโคลอน แถบแนวตั้ง หรือบรรทัดใหม่ จุลภาคเป็นตัวคั่นที่พบบ่อยที่สุด ตัวอย่างเช่น:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

ช่อง

แต่ละรายการอาจมีสัญลักษณ์ @ ค่าตัวเลขหลังสัญลักษณ์คือช่องที่จะส่ง command เนื่องจากช่องใน MIDI เริ่มต้นที่ศูนย์ ช่องที่หนึ่งจะเป็นศูนย์ (0) ช่องที่สองจะเป็นหนึ่ง (1) เป็นต้น

หากไม่ใช้สัญลักษณ์ @ command จะถูกส่งหรือรับบนทุกช่อง

คำนำหน้า

แต่ละรายการในรายการมีคำนำหน้า คำนำหน้านี้จะกำหนดประเภท MIDI command ที่จะส่ง ซึ่งรวมถึง:

  • PC หรือ ไม่มีคำนำหน้า คือ program change event
  • N คือ note event
  • CC คือ control change event
  • SS คือ song select event
  • START คือ start command
  • STOP คือ stop command
  • CONTINUE คือ continue command
  • F0 นำหน้า SysEx message
  • WAIT ใช้สำหรับความล่าช้า

ค่า

ค่าของ command ปรากฏขึ้นก่อนสัญลักษณ์ @ หรือที่ส่วนท้ายของรายการหากไม่ได้ให้ @ นี่คือค่าของ program change control change note หรือ song select โดยขึ้นอยู่กับคำนำหน้า ในกรณีของรายการ SysEx ค่าเลขฐานสิบหกของ SysEx จะถูกให้ไว้โดยตรงหลังคำนำหน้า F0 ซึ่งใช้เป็นส่วนหัวของทั้งหมด SysEx commands

ค่าย่อย

ในบางกรณี ข้อมูลเพิ่มเติมจะถูกถ่ายทำใน MIDI command เป็นค่าย่อย ตัวอย่างเช่น MSB และ LSB เช่นเดียวกับความเร็วของค่าควบคุมสามารถส่งได้ด้วยวิธีนี้ สิ่งนี้จะแสดงผ่านการเพิ่มโคลอนในส่วนค่า ค่าย่อยมีบริบทที่แตกต่างกันขึ้นอยู่กับประเภท MIDI command ที่ส่ง:

  • Program Change มีค่าย่อยที่จัดแนวกับ MSB/LSB ของ program change ค่าเหล่านี้จะถูกแยกด้วยจุด โดย MSB อยู่ทางด้านซ้ายและ LSB อยู่ทางด้านขวา
  • Control Change มีค่าของการควบคุมที่ตั้งไว้โดยใช้สิ่งนี้ ตัวเลขสามารถอยู่ระหว่าง 0 ถึง 127 หากละเว้น ค่า 127 จะถูกหมายถึง
  • Note Event มีค่าย่อยที่เกี่ยวข้องกับความเร็วในการเล่นโน้ต สิ่งนี้สามารถตั้งเป็นค่าตัวเลขระหว่าง 0 ถึง 127

ตัวอย่าง

เริ่มต้นด้วย program change ธรรมดา ในสถานการณ์นี้ เราใช้ program change 8 ซึ่งยังส่ง MSB 4 และ LSB 2 บนช่องที่ 1 ตัวอย่างเริ่มต้นด้วยรูปแบบที่ซับซ้อนที่สุดและลบการเลือกธนาคารและช่องเพื่อให้กว้างขึ้น:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Control changes คล้ายกัน ยกเว้นว่าด้านซ้ายของไวยากรณ์คือหมายเลข control change และด้านขวาคือค่าเพิ่มเติม หากไม่ได้ให้ค่า 127 จะถูกส่งแทน เราจะส่ง Control Change 106 ด้วยค่า 64 บนช่องที่ 3

CC105:63@2, CC105:63. CC105@2, CC105

ตอนนี้ลองดูที่ note events เราต้องการเล่น C4 บนช่องที่ 8 ด้วยความเร็ว 75% เราจะใส่รหัสต่อไปนี้ เนื่องจาก OnSong เริ่มการนับ MIDI C0 เป็น 0 บนมาตราส่วน MIDI note:

N60:95@7, N60@7, N60:95, N60

อีกครั้ง สิ่งสำคัญคือต้องจำไว้ว่าเมื่อค่าถูกลบออกจากไวยากรณ์ MIDI statement จะกว้างขึ้นและมีความเฉพาะเจาะจ้องน้อยลง ตัวอย่างเช่น เวอร์ชันสุดท้ายของ note event จะส่ง C4 ที่ความเร็ว 100% บนทุกช่อง

หากต้องการใช้ความล่าช้าระหว่าง MIDI events อื่นๆ ให้ใช้ WAIT command พร้อมตัวเลข ตัวเลขสามารถเป็นค่าจำนวนเต็ม คุณสามารถกำหนดวินาทีที่จะรอเป็น 1-10 หรือกำหนดเป็นมิลลิวินาที ตัวอย่างต่อไปนี้แสดงวิธีการรอ 2 วินาที 10 วินาที และครึ่งวินาที

WAIT2, WAIT10, WAIT500
OnSong 2023 — อัปเดตล่าสุดเมื่อ January 17, 2018