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

ไวยากรณ์ MIDI

OnSong ใช้ไวยากรณ์ที่ใช้ข้อความเพื่อแสดง MIDI commands ในขณะที่คุณสามารถใช้ MIDI Events ใน Metadata Editor คุณสามารถแสดง MIDI commands ผ่านข้อความได้เช่นกัน

ค่าที่มีตัวคั่น

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

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

ช่องสัญญาณ

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

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

คำนำหน้า

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

  • PC หรือ ไม่มีคำนำหน้า คือเหตุการณ์การเปลี่ยนโปรแกรม
  • N คือเหตุการณ์โน้ต
  • CC คือเหตุการณ์การเปลี่ยนแปลงการควบคุม
  • SS คือเหตุการณ์การเลือกเพลง
  • START คือคำสั่งเริ่มต้น
  • STOP คือคำสั่งหยุด
  • CONTINUE คือคำสั่งดำเนินการต่อ
  • F0 นำหน้าข้อความ SysEx

ค่า

ค่าของคำสั่งปรากฏขึ้นก่อนสัญลักษณ์ @ หรือที่ส่วนท้ายของรายการหากไม่มี @ ค่านี้คือค่าของการเปลี่ยนโปรแกรม การเปลี่ยนแปลงการควบคุม โน้ต หรือการเลือกเพลงตามคำนำหน้า ในกรณีของรายการ SysEx ค่าเลขฐานสิบหกของ SysEx จะให้ไว้โดยตรงหลังคำนำหน้า F0 ซึ่งใช้เป็นส่วนหัวสำหรับ SysEx commands ทั้งหมด

ค่าย่อย

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

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

ตัวอย่าง

เริ่มต้นด้วยการเปลี่ยนโปรแกรมแบบง่าย ในสถานการณ์นี้ เราใช้การเปลี่ยนโปรแกรม 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% velocity เราจะป้อนข้อมูลต่อไปนี้เนื่องจาก OnSong เริ่มนับ MIDI C0 เป็น 0 บนสเกล MIDI note:

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

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

OnSong 1.999 — อัปเดตล่าสุดเมื่อ November 23, 2014