ARDUINO DCO with MIDI
เป็นไปได้ที่จะใช้ฟังก์ชัน tone() สำหรับโน้ตดนตรี
สำหรับความถี่ต่ำ ความถี่จะต้องสูงขึ้น แต่ก็ไม่สามารถสูงเกินไปได้เนื่องจากค่าความคลาดเคลื่อนของ prescaler ผมจึงใช้ divider (4024) และ data selector (4512) เพื่อคงค่า tone ไว้ มี saw converter เพิ่มเติมพร้อม DAC ตัวปรับเสียงก็มีสูตรของมันเช่นกัน
โมดูลของผมอยู่ในรูปแบบ 19" 5U Moog ยังไม่พบโปรเจกต์ที่คล้ายกันที่นี่
รายละเอียดทางเทคนิคเพิ่มเติม
ออสซิลเลเตอร์ควบคุมด้วยดิจิทัล (DCO)
โปรเจกต์นี้สร้างซินธิไซเซอร์ดนตรีแบบ monophonic ระดับมืออาชีพ ที่ผสมผสานความเสถียรของ digital clock เข้ากับความอบอุ่นของเสียง analog
- ออสซิลเลเตอร์ PWM ความละเอียดสูง: Arduino (ATmega328P หรือ 2.0 Beta) ใช้ Timer1 interrupts ความเร็วสูงเพื่อคำนวณสัญญาณรูปคลื่นแบบ sawtooth หรือ square wave ที่ความถี่ 31.25kHz "Digital Core" นี้ช่วยให้มั่นใจได้ถึงการติดตามระดับเสียงที่สมบูรณ์แบบข้ามช่วง octaves ต่างๆ โดยไม่มี thermal drift
- การถอดรหัสอินพุต MIDI มาตรฐาน: ตรวจจับข้อความ MIDI "Note On" และ "Note Off" จากอินพุต 5-pin DIN ที่แยกด้วย opto-isolated โดย Arduino จะแปลงสิ่งเหล่านี้ให้เป็นค่าความถี่โดยใช้ lookup table ตามหลัก equal-tempered scale
การปรับแต่งเสียง
- วงจรกรองความถี่ต่ำ Analog: สัญญาณพัลส์ดิจิทัลถูกกรองผ่าน passive RC network หรือ active op-amp filter เพื่อกำจัด digital noise ความถี่สูง ทำให้ได้เสียงซินธิไซเซอร์ที่นุ่มนวลแบบ "Retro"