สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: อะไหล่สำรอง
- ขั้นตอนที่ 3: วางแผงวงจร
- ขั้นตอนที่ 4: การเดินสายไฟ
- ขั้นตอนที่ 5: การเขียนโปรแกรมโดยใช้ Arduino IDE
- ขั้นตอนที่ 6: การทดสอบและการใช้ Synth
- ขั้นตอนที่ 7: เชิงอรรถ
วีดีโอ: Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
หวนคิดถึงความสนุกของเพลงเกมคอมพิวเตอร์ในยุคแรก ๆ ด้วยซินธิไซเซอร์ 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 ฉันขอแนะนำอย่างยิ่งให้ลองใช้บทช่วยสอนพื้นฐานที่มีอยู่มากมาย คู่มือการเชื่อมต่อของ 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
เมื่อตั้งโปรแกรม 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 และความอิ่มตัวของสีเพื่อให้สัมผัสได้ถึงความโลว์ไฟ 'เครื่องอาร์เคด'
แนะนำ:
แหล่งจ่ายไฟ Synthesizer แบบแยกส่วน: 10 ขั้นตอน (พร้อมรูปภาพ)
แหล่งจ่ายไฟ Synthesizer แบบแยกส่วน: หากคุณกำลังสร้างเครื่องสังเคราะห์เสียงแบบแยกส่วน สิ่งหนึ่งที่คุณต้องการอย่างแน่นอนคือแหล่งจ่ายไฟ เครื่องสังเคราะห์เสียงแบบแยกส่วนส่วนใหญ่ต้องการระบบรางคู่ (0V, +12V และ -12V ตามปกติ) และการมีราง 5V ก็มีประโยชน์เช่นกันหากคุณกำลังวางแผน
Keytar Hero (ใช้ Wii Guitar Controller เป็น Synthesizer): 7 ขั้นตอน (พร้อมรูปภาพ)
Keytar Hero (ใช้ Wii Guitar Controller เป็น Synthesizer): เกม Guitar Hero เป็นเกมที่คลั่งไคล้เมื่อหลายสิบปีก่อน ดังนั้นจึงต้องมีอุปกรณ์ควบคุมกีตาร์รุ่นเก่าจำนวนมากวางอยู่รอบๆ ฝุ่น พวกมันมีปุ่ม ลูกบิด และคันโยกมากมาย ทำไมไม่ลองใช้มันให้เป็นประโยชน์อีกล่ะ? คอนโทรลกีต้าร์
Quad Speaker Synthesizer: 10 ขั้นตอน (พร้อมรูปภาพ)
ซินธิไซเซอร์ลำโพงสี่ตัว: นี่คือซินธิไซเซอร์แบบธรรมดาที่มี:22 คีย์ควบคุมระดับเสียงเปลี่ยนเอฟเฟกต์เสียงต่างๆ (สำหรับลำโพง)ไฟลำโพงสี่ตัว (สำหรับลำโพง) ใครๆ ก็สร้างได้ ยกเว้นชิ้นส่วนอิเล็กทรอนิกส์ อย่างอื่นสามารถพบได้ที่บ้าน
Arduino Synthesizer: 20 ขั้นตอน (พร้อมรูปภาพ)
Arduino Synthesizer: Arduino สามารถส่งสัญญาณเสียงผ่านไลบรารีที่ได้รับการพัฒนาที่เรียกว่า Tone Library ด้วยการสร้างอินเทอร์เฟซและโปรแกรมที่สามารถเรียกค่าบางอย่างเพื่อส่งออกไปยังเสียงออก Arduino Synthesizer เป็นเครื่องมือที่มีประสิทธิภาพสำหร
Micro Midi Synthesizer: 5 ขั้นตอน (พร้อมรูปภาพ)
Micro Midi Synthesizer: คำแนะนำนี้สาธิตการใช้ชิป VLSI VS1053b Audio และ Midi DSP ในโหมด Midi แบบเรียลไทม์ ในโหมดนี้มันทำหน้าที่เป็น 64 เสียงโพลีโฟนิก GM (General Midi) Midi ซินธิไซเซอร์ Arduino Uno ไมโครสแตนด์อโลนควบคุมจอแสดงผล OLED