Arduino note : MIDI Mario song ดุ่ม ดุม ดุ้ม
ได้ลองต่อcoding ลองส่งค่าไปให้MIDI box ทดสอบคำสั่งnoteOn noteOff progchange และ pitchBend
ซึ่งตอนแรกให้ลองเปลี่ยนค่าของprogchange และ pitchBend ทีละครั้ง สามารถทำได้ แต่พอลองวางแผนว่าจะให้เช็คค่าและใส่พร้อมกันสองตัวกลับทำไม่ได้
เช่น อยากให้ กด pc111 แล้วprogchange เครื่องดนตรีไปตามเลขนั้นๆ หรือ กด pb121123 .แล้วให้เปลี่ยนค่า LSB MSB ซึ่งค่อนข้างซับซ้อนและลำบากในการเปลี่ยนแต่ละครั้งมาก อีกทั้งข้อมูลของคีย์บอร์ดที่ส่งไปเป็นASCII ทำให้programสับสนค่าที่จะนำมาใช้ในการเช็ค และค่าที่จะส่งออกไปเป้นเสียง ซึ่ีงหมายความว่าหากใช้วิธีเช็คทีละตัวตามนี้จะเกิดเสียงออกมาทุกครั้งที่read และนำค่ามาใช้ หรือค่าที่ออกจากบอร์ดนั่นเอง
หลังจากนั้นได้ลองทดสอบนำnoteเพลงมาแปลงเป็นคำสั่งส่งออกไปให้ MIDI box และลองใช้คำสั่ง noteOn กับ channel อื่นด้วย
plan: 1.เขียนโน้ตเพลงทั้งหมดก่อน
3.สร้างfunction noteOn noteOff และ progchange
4.กำหนดค่า baurd rateที่ 31250 ด้วยคำสั่ง Serial.begin(31250);
5.สร้างloop forหนึ่งอันโดยให้forเป็นตัวกำหนดห้องหนึ่งห้องของโน้ตดนตรี (1ห้อง
มีทั้งหมด 4 sec )
6.นำเลขตัวโน้ตมาใส่ในfunction noteOn และจังหวะหยุดให้ใส่ใน functionของ noteOff
7. Complied ใส่board ลองฟังจังหวะ เสียง และแก้ไขเพิ่มเติม
8.เมื่อnoteเพลงokแล้วลองเขียนให้รับค่าเข้าจากคอมเพื่อเปลี่ยนเครื่องดนตรี
9.ทดสอบส่งค่าด้วยprogram docklight (Serial monitorของArduinoไม่สามารถเปลี่ยนbaud rate เป้น31250 ได้จึงต้องใช้โปรแกรมอื่นช่วย )
10. ทดสอบลองฟังอีกครั้ง หากผิดพลาดให้แก้ไขเพิ่มเติม