ความแม่นยำในการจับเวลาซีเควน MIDI โดยใช้ Arduino
ฉันสร้างเหล่านี้sequencers เพลง มันไม่ใช่ซีเควนเท่านั้นมันเป็นส่วนต่อประสานทางกายภาพสำหรับซีเควน ซีเควนเซอร์เป็นแอปพลิเคชั่นที่ทำงานบนแล็ปท็อปที่ซีเควนเซอร์เชื่อมต่อด้วยสิ่งนี้ช่วยให้ผู้ใช้สร้างลูปกลองได้ทันที มันสนุกดี แต่มันต้องใช้แล็ปท็อปเพราะซีเควนเซอร์ไม่ใช่ 'บนบอร์ด' สิ่งที่ฉันชอบก็คือการจัดลำดับอุปกรณ์ของฉัน ทีนี้สมมติว่าฉันรู้วิธีแก้ปัญหาเรื่องความสอดคล้องของคลาสสำหรับการเชื่อมต่อ USB MIDI และสมมติว่าฉันสามารถหาวิธีวางสาย Arduino เพื่อส่งโน้ต MIDI จากพอร์ต DIN 5 พินได้ สิ่งที่ฉันกังวลมากที่สุดคือจังหวะล่องลอยไปตามกาลเวลาเนื่องจากเวลาไม่สอดคล้องกันในจำนวนนาทีในทุกรอบของการวนรอบเหตุการณ์ บางสิ่งที่ฉันรู้: คุณไม่ควรพึ่งพาdelay()การควบคุมจังหวะจังหวะ การหน่วงเวลาหยุดการทำงานของเฟิร์มแวร์ทั้งหมดและไม่สามารถทำงานได้เพราะฉันต้องสำรวจส่วนต่อประสานผู้ใช้ทางกายภาพเพื่อทำการเปลี่ยนแปลงในขณะที่ลำดับกำลังทำงาน การคำนวณตามmillis()ดีกว่าเนื่องจากเฟิร์มแวร์สามารถทำงานต่อไปและดำเนินการต่อไปเมื่อจำนวนที่แน่นอนได้ผ่านไปแล้ว แม้ว่าการควบคุมทางกายภาพของฉันจะไม่มีการเรียกใช้รูทีนการขัดจังหวะการดำเนินการบางอย่างสามารถชะลอการloop()ทำงานหลักได้ หากฉันออกแบบฟังก์ชั่นที่รอการป้อนข้อมูลจากผู้ใช้นั่นอาจทำให้เกิดปัญหาว่า "วันครบกำหนด" ที่ขาดหายไปเพื่อดำเนินการถ้าmillis()จำนวนนั้นเกิน ฉันรู้ว่าปัญหานี้เกิดจากการออกแบบของตัวเอง ... คำถาม: A. Arduino ที่ใช้ AVR เป็นไมโครคอนโทรลเลอร์ที่เหมาะสมในการหยั่งเสียงส่วนต่อประสานผู้ใช้และเรียกใช้ภารกิจวนรอบเวลาที่สำคัญหรือไม่? ฉันรู้ว่ามี ARM based Arduino ตอนนี้เร็วขึ้นมาก Teensy 3.0 จะเป็นทางเลือกที่ดีกว่าหรือไม่? ทั้งสองนี้เป็นบอร์ด 3.3V ดังนั้นนั่นเป็นอีกหนึ่งปัญหาที่จะทำงานร่วมกับ ... แต่ฉันจะไม่สนใจมันในตอนนี้ B. …