สารบัญ:

Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)
Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino MIDI เป็น CV (Control Voltage) Converter สำหรับ Modular Analog Synthesizer 2024, พฤศจิกายน
Anonim
Arduino MIDI Chiptune Synthesizer
Arduino MIDI Chiptune Synthesizer

หวนคิดถึงความสนุกของเพลงเกมคอมพิวเตอร์ในยุคแรก ๆ ด้วยซินธิไซเซอร์ Chiptune 8 บิตของแท้ ซึ่งคุณสามารถควบคุม MIDI ได้จากซอฟต์แวร์ DAW ที่ทันสมัยอย่างสะดวกสบาย

วงจรง่ายๆ นี้ใช้ Arduino เพื่อขับเคลื่อนชิปกำเนิดเสียงที่ตั้งโปรแกรมได้ AY-3-8910 (หรือหนึ่งในหลายโคลน) เพื่อสร้างเสียงของปี 1980 ขึ้นมาใหม่ ต่างจากการออกแบบจำนวนมากที่ต้องการซอฟต์แวร์เฉพาะทางเพื่อแก้ไขเพลง รูปลักษณ์นี้ดูเหมือนอุปกรณ์ USB MIDI มาตรฐาน ซินธิไซเซอร์มีอัลกอริธึมที่ชาญฉลาดซึ่งพยายามเล่นโน้ตที่เกี่ยวข้องกับดนตรีมากที่สุด ในหลายกรณี คุณสามารถโยนไฟล์ MIDI ที่ยังไม่ได้แก้ไขไปใส่โดยตรง และเพลงจะออกมาทันที ค่าใช้จ่ายทั้งหมดควรอยู่ที่ประมาณ 20 ปอนด์

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

รายการชิ้นส่วนทั้งหมดสำหรับสิ่งนี้ดังที่คุณเห็นในภาพมีดังนี้:

  • Sparkfun Pro Micro clone (ตัวเลือก 5V, 16MHz) ฉันใช้อันนี้ใน Amazon
  • ชิป Yamaha YM2149F PSG ฉันได้ของฉันจากอีเบย์
  • ตัวเก็บประจุเซรามิก 2 x 100nF
  • ตัวต้านทาน 75R, 1K และ 100K ตัวละ 1 ตัว (พิกัด 1/4 วัตต์ใช้ได้)
  • ตัวเก็บประจุแผ่นเซรามิก 4.7nF
  • ตัวเก็บประจุด้วยไฟฟ้า 1uF (ระดับแรงดันไฟฟ้า > 5V)
  • 40 พิน 0.6" DIP IC socket
  • ส่วนหัว 2 x 12 วิธี 0.1 "(อันนี้จาก CPC)
  • บอร์ดต้นแบบ ขนาด 3 x 2 นิ้ว โดยประมาณ ฉันซื้อแพ็คจำนวนมากเหล่านี้อีกครั้งใน Amazon
  • ซ็อกเก็ตท่วงทำนอง PCB
  • ลวดแกนแข็งขนาดเล็ก (แบบนี้)

คุณจะต้องใช้หัวแร้ง หัวแร้ง คีมตัดลวด คีม และเครื่องปอกสายไฟ

ขั้นตอนที่ 2: อะไหล่สำรอง

อะไหล่ทดแทน
อะไหล่ทดแทน
อะไหล่ทดแทน
อะไหล่ทดแทน
อะไหล่ทดแทน
อะไหล่ทดแทน

ชิปกำเนิดเสียงที่ตั้งโปรแกรมได้ทางเลือก

YM2149 ที่ฉันใช้คือโคลนของเครื่องมือทั่วไปดั้งเดิม AY-3-8910 IC (ต้นแบบแรกใช้ AY-3-8910 ที่ฉันซื้อจาก eBay แต่กลับกลายเป็นว่าเครื่องกำเนิดสัญญาณรบกวนสีขาวไม่ทำงาน หน้าเศร้า) คุณสามารถใช้อย่างใดอย่างหนึ่งสำหรับโครงการนี้โดยไม่มีการเปลี่ยนแปลงใดๆ

เครื่องมือทั่วไปยังสร้างตัวแปร AY-3-8912 และ AY-3-8913 ซึ่งเป็นซิลิกอนเดียวกันภายในแพ็คเกจขนาดเล็กกว่า โดยไม่มีพิน I/O เพิ่มเติม หมุดเหล่านี้ไม่จำเป็นสำหรับวัตถุประสงค์ด้านเสียงใด ๆ และโครงการนี้ไม่ได้ใช้หมุดเหล่านี้ คุณสามารถใช้ AY-3-8912 หรือ -8913 เพียงทำตามพินที่แสดงด้านบน

Arduinos ทางเลือก

"Pro Micro" ที่ฉันใช้คือสำเนาของบอร์ด Pro Micro ของ Sparkfun หากคุณไม่มั่นใจในโค้ด Arduino วิธีที่ดีที่สุดคือทำตามนี้ หากคุณยินดีที่จะปรับเปลี่ยนการออกแบบ คุณจะต้องมีข้อกำหนดดังต่อไปนี้

  • อุปกรณ์ ATmega 16u4 หรือ 32u4 (จำเป็นต้องทำหน้าที่เป็นอุปกรณ์ USB MIDI โดย ATmega 168 หรือ 328 ไม่สามารถทำได้)
  • การทำงาน 5V (AY-3-8910 ทำงานที่ 5V) และความเร็วสัญญาณนาฬิกา 16MHz
  • สาย I/O ดิจิทัลอย่างน้อย 13 รายการ

    ต้องเชื่อมต่อพินพอร์ต PB5 (ใช้เพื่อสร้างสัญญาณนาฬิกา 1MHz) ใน Pro Micro จะใช้เป็นพิน D9 I/O

บอร์ด Arduino Leonardo และ Micro เหมาะสมกันทั้งคู่ แม้ว่าฉันจะยังไม่ได้ลองใช้งานก็ตาม

ส่วนประกอบอื่นๆ

ตัวต้านทานและตัวเก็บประจุที่ใช้ในที่นี้ไม่ได้มีความพิเศษเป็นพิเศษ ส่วนใดๆ ของ (โดยประมาณ) ค่าที่ถูกต้องควรใช้งานได้

ขั้นตอนที่ 3: วางแผงวงจร

วางแผงวงจร
วางแผงวงจร

ในการสร้างวงจร เป็นการดีที่สุดที่จะเริ่มต้นด้วยการวางตำแหน่งซ็อกเก็ต จากนั้นเพิ่มตัวต้านทานและตัวเก็บประจุ เราจะพูดถึงการเดินสายเหล่านี้ร่วมกันในขั้นตอนต่อไป

ใช้รูปภาพด้านบนเป็นแนวทาง วางตำแหน่งซ็อกเก็ต IC 40 พิน พลิกบอร์ดแล้วบัดกรีในหมุดมุมตรงข้ามสองอันก่อน หากซ็อกเก็ตไม่ได้วางราบกับกระดาน ก็แก้ไขได้ง่ายด้วยการบัดกรีหมุดอีกอันหนึ่งหรืออย่างอื่น เมื่อไม่เป็นไร ให้ประสานส่วนที่เหลือ

วางตำแหน่งซ็อกเก็ต 12 พินสองตัว จากนั้นใส่ Arduino เข้าไปเพื่อยึดไว้ในแนวตั้งและมั่นคงระหว่างการบัดกรี อีกครั้งการบัดกรีหมุดสองตัวที่ปลายแต่ละด้านก่อนจะช่วยให้สามารถตรวจสอบได้ก่อนที่จะบัดกรีขั้นสุดท้าย

สำหรับซ็อกเก็ตเอาต์พุตเสียง ฉันใช้สว่านขนาดเล็กเพื่อขยายรู PCB เนื่องจากแท็กสำหรับติดตั้งค่อนข้างใหญ่

ขั้นตอนที่ 4: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

เมื่อวางส่วนประกอบหลักแล้ว ก็สามารถต่อสายที่ด้านหลังของบอร์ดได้ตามวงจรด้านบน

ส่วนประกอบเอาต์พุตเสียง (R2, R3, C2, C3) และตัวเก็บประจุแบบแยกส่วน (C1, C4) สามารถเชื่อมต่อกับสายโซลิดคอร์ การเชื่อมต่อกราวด์และพลังงานจาก Arduino ไปยังชิป PSG (ในภาพคือสายสีแดงและสีดำ)

เอาต์พุตต่างๆ ของ Pro Micro ต่อสายเข้ากับ AY-3-8910 ดังนี้ (ดูคู่มือการเชื่อมต่อสำหรับการกำหนดพิน):

สัญญาณ Arduino AY-3-8910 พิน

DA0 D2 37 DA1 D3 36 DA2 D4 35 DA3 D5 34 DA4 D6 33 DA5 D7 32 DA6 D8 31 DA7 A0/D18 30 BC1 D10 29 BC2 MOSI/D16 28 BDIR MISO/D14 27 รีเซ็ต # SCLK/D15 23 นาฬิกา D9 22 (ผ่าน R1, 75 โอห์ม)

ขั้นตอนที่ 5: การเขียนโปรแกรมโดยใช้ Arduino IDE

การเขียนโปรแกรมโดยใช้ Arduino IDE
การเขียนโปรแกรมโดยใช้ Arduino IDE

หากคุณเพิ่งเริ่มใช้ Arduino ฉันขอแนะนำอย่างยิ่งให้ลองใช้บทช่วยสอนพื้นฐานที่มีอยู่มากมาย คู่มือการเชื่อมต่อของ Sparkfun ให้รายละเอียดทั้งหมด คุณสามารถตรวจสอบว่าการเขียนโปรแกรมพื้นฐานทำงานโดยทำตามบทช่วยสอน "Blinkies" Arduinos อาจเป็นเรื่องยากเล็กน้อยที่จะโน้มน้าวใจให้เข้าสู่โหมด 'bootloader' (ซึ่งคุณสามารถโหลดสเก็ตช์ใหม่ได้) ดังนั้นการฝึกฝนเล็กน้อยด้วยตัวอย่างง่ายๆ ก็มีประโยชน์

เมื่อคุณพอใจแล้ว ให้ดาวน์โหลดไฟล์ Chiptunes.ino ที่แนบมากับหน้านี้ และสร้างและอัปโหลด (ฉันพบว่าการใช้บอร์ดประเภท "Arduino/Genuino Micro" นั้นใช้ได้สำหรับสเก็ตช์นี้ หากคุณต้องการข้ามการติดตั้งการสนับสนุนบอร์ด Sparkfun)

นอกจากนี้ โปรดทราบว่าหากคุณใช้ Mac คุณต้องเปลี่ยนการตั้งค่า "พอร์ต" เมื่อคุณโหลดสเก็ตช์เป็นครั้งแรก ด้วย Arduino 'ว่าง' (หรือใช้ร่าง Blinky) จะปรากฏเป็นบางอย่างเช่น /dev/cu.usbmodemXXXX ตามที่แสดงในภาพด้านบน เมื่ออุปกรณ์ USB MIDI เปิดใช้งาน (ตามที่ใช้โดย chiptunes.ino sketch) จะเป็น /dev/cu.usbmodemMID1

ขั้นตอนที่ 6: การทดสอบและการใช้ Synth

การทดสอบและการใช้ Synth
การทดสอบและการใช้ Synth
การทดสอบและการใช้ Synth
การทดสอบและการใช้ Synth
การทดสอบและการใช้ Synth
การทดสอบและการใช้ Synth

เมื่อตั้งโปรแกรม Arduino แล้ว เวิร์กสเตชันของคุณควรรับรู้โดยอัตโนมัติว่าเป็นอุปกรณ์ USB MIDI จะปรากฏขึ้นพร้อมกับชื่อ 'Arduino Micro' - คุณควรจะสามารถเห็นสิ่งนี้ได้จาก Device Manager ใน Windows หรือแอป "System Information" ใน Mac OS

บน Mac คุณสามารถใช้แอปการตั้งค่าเสียง MIDI เพื่อเรียกใช้การทดสอบพื้นฐาน เริ่มแอป จากนั้นเลือก Window -> Show MIDI Studio การดำเนินการนี้จะแสดงหน้าต่าง MIDI Studio ขึ้นมา - อินเทอร์เฟซ MIDI ทั้งหมดของคุณจะปรากฏในการจัดเรียงแบบสุ่มเล็กน้อย ซึ่งหวังว่าจะรวมอุปกรณ์ 'Arduino Micro' หากคุณคลิกไอคอน 'ทดสอบการตั้งค่า' ในแถบเครื่องมือ แล้วคลิกลูกศรลง (ดูรูป) บนอุปกรณ์ Arduino Micro แอปจะส่งบันทึก MIDI ไปยังซินธ์ (สิ่งเหล่านี้ไม่ไพเราะโดยเฉพาะ!) ซินธ์ควรทำเสียงแบบสุ่ม ณ จุดนี้

จากนั้นคุณสามารถเพิ่ม 'Arduino Micro' เป็นอุปกรณ์ส่งออกไปยังการตั้งค่า MIDI ของ Digital Audio Workstation และเริ่มเล่นได้เลย!

  • synth ตอบสนองบนช่อง MIDI 1 ถึง 4 แต่ละช่องจะมีเสียงต่างกัน
  • ยอมรับบันทึก MIDI ระหว่าง 24 ถึง 96 (C1-C7) บันทึกที่อยู่นอกช่วงนี้จะถูกละเว้น
  • MIDI ช่อง 10 เล่นเสียงกลอง หมายเหตุตัวเลขระหว่าง 35 ถึง 50 (ดู

    ยอมรับ

  • มีสามช่องเสียงบน AY-3-8910 เฟิร์มแวร์สังเคราะห์พยายามเล่นโน้ตที่ส่งล่าสุด ในขณะที่ยังคงเล่นโน้ตสูงสุดและต่ำสุดที่ร้องขอในปัจจุบัน โน้ตอื่นๆ (โดยปกติคือโน้ตกลางในคอร์ด) ถูกตัดออกหากจำเป็น

และที่เกี่ยวกับมัน มีความสุข!

ขั้นตอนที่ 7: เชิงอรรถ

เกี่ยวกับเดโมจูน

เพลงเดโม - เพลง Queen Of The Night ที่โด่งดังของ Mozart - สร้างขึ้นอย่างรวดเร็วพอสมควรจากไฟล์ MIDI ที่ฉันพบบนอินเทอร์เน็ต (https://www.midiworld.com/mozart.htm) คนอื่นทำงานหนักทั้งหมด!

ฉันใช้ Presonus Studio One บน Mac และไฟล์ MIDI ถูกนำเข้าไปยังสี่แทร็กแยกกัน จำเป็นต้องมีการแก้ไขเล็กน้อยโดยที่โน้ตดนตรีประกอบนั้นสูงกว่าท่วงทำนองหลัก และเพื่อลบจุดบกพร่องที่ไม่เหมาะสมระหว่างโน้ต

เสียงที่คุณได้ยินจากคลิปนั้นส่งตรงจากซินธ์ โดยเพียงแค่สัมผัส EQ และความอิ่มตัวของสีเพื่อให้สัมผัสได้ถึงความโลว์ไฟ 'เครื่องอาร์เคด'

แนะนำ: