เรียนถามผู้รู้นิดหนึ่งครับ midi table สามารถเปลี่ยนเครื่องดนตรีเป็น bank ได้หรือเปล่าครับ เคยถามในบอร์ดแล้วไม่มีใครตอบ
หรือว่าทำไม่ได้ครับ
ผมยังไม่เคยลองครับ จึงไม่อาจตอบในฐานะผู้รู้ได้
แต่ดูจากรูปแบบคำสั่ง midi table แล้ว ที่บอกว่า
จากรูปแบบคำสั่งเรียงลำดับตามนี้
1.คำสั่ง 2.channel 3.data1 4.data2 5.patch
6.bank เช่น INPUT: 176,9,7,*,*,
* FORWARD: *,*,*,127,*,
*ก็เห็นได้ชัดว่า ตรง พารามิเตอร์ bank ยังดูกำกวม เพราะมีช่องให้ใส่ค่าแค่ช่องเดียว เพราะ Bank ในมาตรฐานมิดี้ มันไม่มีแค่ 0-127 แต่จริงๆแล้ว มันมี 128*128 = 16384 ค่า คือ ตั้งแต่ 0-16383
แต่เนื่องด้วยข้อจำกัดของการแทนค่าข้อมูล เค้าก็เลยแบ่งช่วงเลขออกเป็น MSB และ LSB อย่างละ 7 บิต คือ 0-127
(เพราะฉะนั้นแล้ว ซาวน์โมดูลเทพๆ สามารถมีเสียงได้สูงสุด 128 * 128 * 128 = 2,082,865,152 เสียง ป้าาดดดดดด )
แล้วช่อง bank ใน midi table คือตัวไหน- LSB อย่างเดียว โดยถือว่า MSB = 000 นั่นแสดงว่า มีสิทธิ์เลือกแบงค์ได้แค่ 0-127 แค่นั้น
หรือ
- เป็นค่ารวม (0-16383) สมมติเครื่องดนตรีที่ต้องการใช้ มันอยู่ใน แบงค์ MSB=010, LSB=008 ก็ต้องใส่ค่า 1278 ลงไป (จากการคำนวณ MSB*128 + LSB)
โดยปกติ แล้ว การเปลี่ยน bank จะต้องส่งคำสั่ง 2 ครั้ง สำหรับ MSB และ LSB
- ส่งคำสั่ง CC#0
- ส่งคำสั่ง CC#32
จากนั้น ค่อยเลือกเสียง โดยใช้คำสั่ง Program Change
คำตอบตรงนี้ ต้องรอท่าน xmen มาตอบครับ
หรือถ้าไม่รอ ท่านก็สามารถใช้ โปรแกรม midi ox จับ midi message ดูก็ได้ครับ
ว่ามีการเปลี่ยน bank ให้หรือไม่
โปรแกรม midi ox สามารถดาวน์โหลดมาติดตั้งได้ฟรี
ถ้าผมมีเวลา จะลองพิสูจน์ดูให้ครับ เผื่อจะได้กลายเป็นผู้รู้กะเขามั่ง 5555
:cheer1: :cheer1: :cheer1: :cheer1: