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
ช่องสัญญาณ
แต่ละรายการอาจมีสัญลักษณ์ @ ค่าตัวเลขหลังสัญลักษณ์คือช่องสัญญาณที่จะส่งคำสั่งไป เนื่องจากช่องสัญญาณใน 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 บนช่องสัญญาณทั้งหมด