Talaan ng mga Nilalaman:

Arduino MIDI Chiptune Synthesizer: 7 Hakbang (na may Mga Larawan)
Arduino MIDI Chiptune Synthesizer: 7 Hakbang (na may Mga Larawan)

Video: Arduino MIDI Chiptune Synthesizer: 7 Hakbang (na may Mga Larawan)

Video: Arduino MIDI Chiptune Synthesizer: 7 Hakbang (na may Mga Larawan)
Video: Arcano MIDI NES Chiptune Synth II - an AVR, Nintendo-style synthesizer 2024, Nobyembre
Anonim
Arduino MIDI Chiptune Synthesizer
Arduino MIDI Chiptune Synthesizer

Muling ibalik ang kasiyahan ng maagang musika ng laro sa computer gamit ang isang tunay na 8-bit chiptune synthesizer, na maaari mong kontrolin ang MIDI mula sa kaginhawaan ng anumang modernong software ng DAW.

Ang simpleng circuit na ito ay gumagamit ng isang Arduino upang magmaneho ng isang AY-3-8910 programmable sound generator chip (o isa sa maraming mga clone nito) upang muling likhain ang tunog ng 1980 na iyon. Hindi tulad ng maraming mga disenyo na nangangailangan ng dalubhasang software upang mai-edit ang musika, ito ay mukhang isang karaniwang aparato ng USB MIDI. Ang synthesizer ay may isang matalino algorithm na sumusubok na panatilihing naglalaro ang mga pinaka-nauugnay na musikal na tala; sa maraming mga kaso maaari kang magtapon ng hindi nai-edit na mga file na MIDI diretso dito at ang tono ay lalabas kaagad. Ang kabuuang gastos ay dapat na tungkol sa £ 20.

Hakbang 1: Mga Bagay na Kakailanganin Mo

Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo
Mga Bagay na Kakailanganin Mo

Ang buong listahan ng mga bahagi para dito, tulad ng nakikita mo sa mga larawan, ay ang mga sumusunod:

  • Sparkfun Pro Micro clone (5V, 16MHz na pagpipilian). Ginamit ko ang isang ito sa Amazon.
  • Yamaha YM2149F PSG chip. Nakuha ko ang akin mula sa eBay.
  • 2 x 100nF ceramic capacitors
  • 1 bawat isa sa 75R, 1K at 100K resistors (ang rating na 1/4 watt ay mabuti).
  • 4.7nF ceramic disc capacitor
  • 1uF electrolytic capacitor (boltahe rating> 5V).
  • 40 pin 0.6 "DIP IC socket
  • 2 x 12 way na 0.1 "na mga header (ang isang ito mula sa CPC)
  • Prototyping board, 3 "by 2" tinatayang. Bumili ako ng isang maramihang pakete ng mga ito, muli sa Amazon.
  • PCB mount phono socket
  • Pinaliit na solid-core wire (tulad nito).

Kakailanganin mo rin ang isang soldering iron, solder, wire cutter, pliers, at isang wire stripper.

Hakbang 2: Mga Alternatibong Bahagi

Mga Kahaliling Bahagi
Mga Kahaliling Bahagi
Mga Kahaliling Bahagi
Mga Kahaliling Bahagi
Mga Kahaliling Bahagi
Mga Kahaliling Bahagi

Alternatibong maaaring maiprogramang mga chip ng generator ng tunog

Ang ginamit kong YM2149 ay isang clone ng orihinal na General Instruments AY-3-8910 IC. (Ang unang prototype ay gumamit ng isang AY-3-8910 na binili ko mula sa eBay, ngunit naging hindi gumagana ang puting ingay na generator. Malungkot na mukha). Maaari mong gamitin ang alinman para sa proyektong ito nang walang anumang mga pagbabago.

Ang Mga Pangkalahatang Instrumento ay gumawa din ng mga variant ng AY-3-8912 at AY-3-8913, na magkatulad na silikon sa loob ng mas maliliit na mga pakete, nang walang ilang labis na I / O na mga pin. Ang mga pin na ito ay hindi kinakailangan para sa anumang mga layunin sa audio, at hindi ginagamit ng proyektong ito. Maaari mong gamitin ang isang AY-3-8912 o -8913, sundin lamang ang mga pinout na ipinakita sa itaas.

Alternatibong Arduinos

Ang ginamit kong "Pro Micro" ay isang kopya ng Sparkfun's Pro Micro board. Kung hindi ka kumpiyansa sa Arduino code mas mainam na manatili dito; kung masaya ka na umangkop sa disenyo, kakailanganin mo ang mga sumusunod na pagtutukoy

  • ATmega 16u4 o 32u4 aparato (kinakailangan upang kumilos bilang isang aparatong USB MIDI; hindi ito magagawa ng ATmega 168 o 328).
  • 5V na operasyon (ang AY-3-8910 ay tumatakbo sa 5V), at bilis ng orasan na 16MHz.
  • Hindi bababa sa 13 mga linya ng digital I / O.

    Dapat na konektado ang port pin PB5 (ginagamit ito upang makabuo ng isang 1MHz signal na orasan). Sa Pro Micro ginagamit ito bilang D9 I / O pin

Ang Arduino Leonardo at Micro boards ay parehong akma sa singil, kahit na hindi ko ito nasubukan.

Iba pang mga sangkap

Ang mga resistors at capacitor na ginamit dito ay hindi partikular na espesyal. Anumang mga bahagi ng (tinatayang) tamang halaga ay dapat gumana.

Hakbang 3: Paglalagay ng Circuit Board

Paglalagay ng Circuit Board
Paglalagay ng Circuit Board

Upang maitayo ang circuit, pinakamahusay na magsimula sa pamamagitan ng pagpoposisyon ng mga socket, pagkatapos ay idagdag ang mga resistors at capacitor. Tatakpan namin ang mga kable nang magkasama sa susunod na hakbang.

Gamit ang larawan sa itaas bilang isang gabay, iposisyon ang 40-pin IC socket, i-on ang board at solder lamang sa dalawang kabaligtaran na mga pin ng sulok. Kung ang socket ay hindi nakahiga nang malapat laban sa board, madali itong ayusin sa pamamagitan ng paglulutas ng isa o iba pang pin. Kapag OK lang, solder ang natitira.

Iposisyon ang dalawang mga socket na 12-pin, pagkatapos ay ipasok ang Arduino sa mga ito upang hawakan ang mga ito nang patayo at matatag sa panahon ng paghihinang. Muli, ang paghihinang ng dalawang mga pin sa bawat dulo ay magpapahintulot sa isang tseke bago ang pangwakas na paghihinang.

Para sa socket ng output ng audio, gumamit ako ng isang maliit na drill upang palakihin ang mga butas ng PCB, dahil ang mga mounting tag ay mas malaki.

Hakbang 4: Pagsakay sa Kable

Pagtaas ng Kable
Pagtaas ng Kable
Pagtaas ng Kable
Pagtaas ng Kable

Kapag nakaposisyon na ang mga pangunahing bahagi, maaari silang mai-wire sa likod ng board, kasunod sa circuit sa itaas.

Ang mga bahagi ng audio output (R2, R3, C2, C3) at ang mga decoupling capacitor (C1, C4) ay maaaring maiugnay sa solid-core wire (o off-cut ng mga lead lead). Ang mga koneksyon sa lupa at kuryente mula sa Arduino hanggang sa PSG chip (pula at itim na mga wire, sa larawan) ay maaari nang magawa.

Ang iba't ibang mga output ng Pro Micro ay naka-wire hanggang sa AY-3-8910 tulad ng sumusunod (tingnan ang gabay sa hookup para sa mga takdang-aralin sa pin):

Signal Arduino AY-3-8910 pin

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 RESET # SCLK / D15 23 CLOCK D9 22 (via R1, 75 ohm)

Hakbang 5: Programming Gamit ang Arduino IDE

Programming Gamit ang Arduino IDE
Programming Gamit ang Arduino IDE

Kung bago ka sa Arduino, masidhi kong inirerekumenda na subukan ang isa sa maraming mga tutorial sa mga pangunahing kaalaman. Ang gabay sa hookup ng Sparkfun ay nagbibigay ng buong detalye. Maaari mong suriin na ang pangunahing programa ay gumagana sa pamamagitan ng pagsunod sa tutorial na "Blinkies". Ang Arduinos ay maaaring maging isang maliit na nakakalito upang akitin ang mode na 'bootloader' (kung saan maaari kang mag-load ng mga bagong sketch), kaya't ang kaunting kasanayan na may isang simpleng halimbawa ay kapaki-pakinabang.

Kapag masaya ka na, i-download ang chiptunes.ino file na nakakabit sa pahinang ito, at buuin at i-upload ito. (Nalaman ko na ang paggamit ng uri ng board na "Arduino / Genuino Micro" ay OK para sa sketch na ito, kung nais mong laktawan ang pag-install ng suporta sa board ng Sparkfun).

Gayundin, tandaan na kung nasa isang Mac ka, kailangang baguhin ang setting na "Port" sa sandaling na-load mo ang sketch sa unang pagkakataon. Gamit ang isang 'blangko' Arduino (o gamit ang Blinky sketch) lilitaw ito bilang isang bagay tulad ng /dev/cu.usbmodemXXXX, tulad ng ipinakita sa larawan sa itaas. Kapag ang aparato ng USB MIDI ay aktibo (tulad ng ginamit ng chiptunes.ino sketch) ito ay magiging /dev/cu.usbmodemMID1.

Hakbang 6: Pagsubok at Paggamit ng Synth

Pagsubok at Paggamit ng Synth
Pagsubok at Paggamit ng Synth
Pagsubok at Paggamit ng Synth
Pagsubok at Paggamit ng Synth
Pagsubok at Paggamit ng Synth
Pagsubok at Paggamit ng Synth

Kapag na-program ang Arduino, dapat na awtomatikong kilalanin ito ng iyong workstation bilang isang aparatong USB MIDI. Lilitaw ito sa pangalang 'Arduino Micro' - dapat mo itong makita sa Device Manager sa Windows, o ang "Impormasyon sa System" na app sa Mac OS.

Sa isang Mac, maaari mong gamitin ang Audio MIDI Setup app upang magpatakbo ng isang pangunahing pagsubok. Simulan ang app, pagkatapos ay piliin ang Window -> Ipakita ang MIDI Studio. Dadalhin nito ang window ng MIDI Studio - lahat ng iyong mga interface ng MIDI ay lilitaw sa isang bahagyang random na pag-aayos - na inaasahan na isasama ang aparato na 'Arduino Micro'. Kung na-click mo ang icon na 'Pagsubok ng Pagsubok' sa toolbar, at pagkatapos ay i-click ang pababang arrow (tingnan ang larawan) sa Arduino Micro aparato, magpapadala ang app ng mga tala ng MIDI sa synth. (Ang mga ito ay hindi partikular na tuneful!) Ang synth ay dapat gumawa ng ilang mga random na tunog sa puntong ito.

Maaari mong idagdag ang 'Arduino Micro' bilang isang output aparato sa pag-set up ng MIDI ng iyong Digital Audio Workstation, at magsimulang maglaro!

  • Ang synth ay tumutugon sa mga MIDI channel na 1 hanggang 4. Ang bawat channel ay may iba't ibang tunog (na rin, iba't ibang sobre ng dami).
  • Ang mga tala ng MIDI sa pagitan ng 24 at 96 (C1-C7) ay tinatanggap; ang mga tala sa labas ng saklaw na ito ay hindi pinapansin.
  • Nagpe-play ang MIDI channel 10 ng mga tunog ng drum. Tandaan ang mga numero sa pagitan ng 35 at 50 (tingnan

    Tinanggap ang

  • Mayroong tatlong mga channel ng boses sa AY-3-8910. Sinusubukan ng synth firmware na i-play ang pinakabagong naipalang tala, habang pinapanatili ang pinakamataas at pinakamababang tala na kasalukuyang hiniling na naglalaro pa rin. Ang iba pang mga tala (karaniwang ang gitnang tala sa isang kuwerdas) ay pinuputol kung kinakailangan.

At tungkol doon. Magsaya ka!

Hakbang 7: Mga Footnote

Tungkol sa demo tune

Ang demo tune - sikat na Queen Of The Night aria ng Mozart - ay nilikha nang makatwirang mabilis mula sa isang file na MIDI na nakita ko sa Internet (https://www.midiworld.com/mozart.htm). Iba pa ang gumawa ng lahat ng pagsusumikap!

Gumagamit ako ng Presonus Studio One sa isang Mac, at ang file na MIDI ay na-import sa apat na magkakahiwalay na mga track. Ang isang maliit na halaga ng pag-edit ay kinakailangan kung saan ang mga tala ng saliw ay mas mataas kaysa sa pangunahing tono, at upang alisin ang ilan sa mga mas hindi kanais-nais na glitching sa pagitan ng mga tala.

Ang audio na maririnig mo sa clip ay tuwid mula sa synth, na may isang ugnayan lamang ng EQ at saturation upang mabigyan ito ng kaunting pakiramdam na 'arcade machine' na may mababang fi.

Inirerekumendang: