Innehållsförteckning:

Arduino MIDI Chiptune Synthesizer: 7 steg (med bilder)
Arduino MIDI Chiptune Synthesizer: 7 steg (med bilder)

Video: Arduino MIDI Chiptune Synthesizer: 7 steg (med bilder)

Video: Arduino MIDI Chiptune Synthesizer: 7 steg (med bilder)
Video: [ Flashback ] Hardware: Commodore 64 - SIDKick: Aufbau und Einbau 2024, Juli
Anonim
Arduino MIDI Chiptune Synthesizer
Arduino MIDI Chiptune Synthesizer

Återupplev det roliga med tidig datorspelsmusik med en autentisk 8-bitars chiptune-synthesizer, som du kan styra över MIDI från bekvämligheten av alla moderna DAW-program.

Denna enkla krets använder en Arduino för att driva ett AY-3-8910 programmerbart ljudgeneratorchip (eller en av dess många kloner) för att återskapa det 1980-talets ljud. Till skillnad från de många mönster som behöver specialiserad programvara för att redigera musik, ser det ut som en vanlig USB MIDI -enhet. Synthesizern har en smart algoritm som försöker hålla de mest musikaliskt relevanta noterna spelade; i många fall kan du kasta oredigerade MIDI-filer direkt på den och låten kommer direkt. Den totala kostnaden bör vara cirka £ 20.

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver

Hela listan över delar, som du ser på bilderna, är följande:

  • Sparkfun Pro Micro -klon (5V, 16MHz alternativ). Jag använde den här på Amazon.
  • Yamaha YM2149F PSG -chip. Jag fick min från eBay.
  • 2 x 100nF keramiska kondensatorer
  • 1 var och en av 75R, 1K och 100K motstånd (1/4 watt är bra).
  • 4.7nF keramisk skivkondensator
  • 1uF elektrolytkondensator (spänning> 5V).
  • 40 -stifts 0,6 "DIP IC -uttag
  • 2 x 12 -vägs 0,1 "rubriker (den här från CPC)
  • Prototypplatta, 3 "x 2" ca. Jag köpte ett bulkpaket av dessa, igen på Amazon.
  • Kretskortmonterat phono -uttag
  • Miniatyrtråd med fast kärna (så här).

Du behöver också ett lödkolv, löd, trådskärare, tång och en trådavlägsnare.

Steg 2: Alternativa delar

Alternativa delar
Alternativa delar
Alternativa delar
Alternativa delar
Alternativa delar
Alternativa delar

Alternativa programmerbara ljudgeneratorchips

YM2149 jag använde är en klon av det ursprungliga General Instruments AY-3-8910 IC. (Den första prototypen använde en AY-3-8910 jag köpte från eBay, men det visade sig att den vita brusgeneratorn inte fungerade. Trist ansikte). Du kan använda antingen för detta projekt utan några ändringar.

General Instruments tillverkade också AY-3-8912 och AY-3-8913 varianter, vilket var samma kisel inuti mindre paket, utan några extra I/O-stift. Dessa pins behövs inte för några ljudändamål, och det här projektet använder dem inte. Du kan använda en AY-3-8912 eller -8913, följ bara stiften som visas ovan.

Alternativa Arduinos

"Pro Micro" jag använde är en kopia av Sparkfun's Pro Micro -kort. Om du inte är säker på Arduino -koden är det bäst att hålla sig till detta; om du vill anpassa designen behöver du följande specifikationer

  • ATmega 16u4 eller 32u4 enhet (behövs för att fungera som en USB MIDI -enhet; ATmega 168 eller 328 kan inte göra detta).
  • 5V-drift (AY-3-8910 körs med 5V) och 16MHz klockfrekvens.
  • Minst 13 digitala I/O -linjer.

    Portstift PB5 måste vara ansluten (den används för att generera en 1 MHz klocksignal). På Pro Micro används detta som D9 I/O -stift

Arduino Leonardo och Micro -brädorna passar båda räkningen, även om jag inte har provat dem.

Andra komponenter

Motstånden och kondensatorerna som används här är inte särskilt speciella. Alla delar av (ungefär) rätt värde bör fungera.

Steg 3: Lägg ut kretskortet

Lägga ut kretskortet
Lägga ut kretskortet

För att bygga kretsen är det bäst att börja med att placera uttagen och sedan lägga till motstånd och kondensatorer. Vi täcker att koppla ihop dessa i nästa steg.

Använd bilden ovan som en guide, placera det 40-poliga IC-uttaget, vänd brädet och löd bara i två motsatta hörnstift först. Om uttaget inte ligger platt mot brädet är det enkelt att fixa det genom att lösa en eller annan stift. När det är OK, löd resten.

Placera de två 12-poliga uttagen, sätt sedan in Arduino i dem för att hålla dem vertikala och stadiga under lödning. Återigen kommer lödning av två stift i varje ände först att tillåta en kontroll före slutlödning.

För ljudutgången använde jag en liten borr för att förstora PCB -hålen, eftersom monteringstaggarna är ganska stora.

Steg 4: Anslutning

Uppkoppling
Uppkoppling
Uppkoppling
Uppkoppling

När huvudkomponenterna är placerade kan de kopplas upp på baksidan av kortet, efter kretsen ovan.

Ljudutmatningskomponenterna (R2, R3, C2, C3) och avkopplingskondensatorer (C1, C4) kan anslutas med solid-core-kabel (eller avstängningar av komponentledningar). Mark- och strömanslutningarna från Arduino till PSG -chipet (röda och svarta ledningar, på bilden) kan nu göras.

Pro Micros olika utgångar är anslutna till AY-3-8910 enligt följande (se anslutningsguiden för stifttilldelningar):

Signal Arduino AY-3-8910 stift

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)

Steg 5: Programmering med Arduino IDE

Programmering med Arduino IDE
Programmering med Arduino IDE

Om du är ny på Arduino rekommenderar jag starkt att du testar en av de många självstudierna om grunderna. Sparkfuns anslutningsguide ger fullständiga detaljer. Du kan kontrollera att den grundläggande programmeringen fungerar genom att följa handledningen "Blinkies". Arduinos kan vara lite knepiga att övertala till "bootloader" -läge (där du kan ladda nya skisser), så lite övning med ett enkelt exempel är användbart.

När du är nöjd laddar du ner filen chiptunes.ino som bifogas den här sidan och bygger och laddar upp den. (Jag har funnit att det är OK att använda "Arduino/Genuino Micro" -korttypen för den här skissen, om du vill hoppa över installationen av Sparkfun -kortstödet).

Observera också att om du använder en Mac måste inställningen "Port" ändras när du har laddat skissen för första gången. Med en "tom" Arduino (eller med hjälp av Blinky -skissen) kommer den att se ut ungefär som /dev/cu.usbmodemXXXX, som visas på bilden ovan. När USB MIDI -enheten är aktiv (som den används av chiptunes.ino -skissen) blir den /dev/cu.usbmodemMID1.

Steg 6: Testa och använda syntet

Testa och använda syntet
Testa och använda syntet
Testa och använda syntet
Testa och använda syntet
Testa och använda syntet
Testa och använda syntet

När Arduino är programmerad bör din arbetsstation automatiskt känna igen den som en USB MIDI -enhet. Det kommer att visas med namnet 'Arduino Micro' - du borde kunna se detta på Enhetshanteraren i Windows eller appen "Systeminformation" i Mac OS.

På en Mac kan du använda appen Audio MIDI Setup för att köra ett grundläggande test. Starta appen och välj sedan Fönster -> Visa MIDI Studio. Detta kommer att visa MIDI Studio -fönstret - alla dina MIDI -gränssnitt kommer att visas i ett lite slumpmässigt arrangemang - som förhoppningsvis kommer att innehålla "Arduino Micro" -enheten. Om du klickar på "Test Setup" -ikonen i verktygsfältet och sedan klickar på nedåtpilen (se bild) på Arduino Micro -enheten, skickar appen MIDI -anteckningar till synthen. (Dessa är inte särskilt stämningsfulla!) Synthen bör göra några slumpmässiga ljud vid denna tidpunkt.

Du kan sedan lägga till 'Arduino Micro' som en utmatningsenhet till din Digital Audio Workstation MIDI -inställning och börja spela!

  • Synthen svarar på MIDI -kanalerna 1 till 4. Varje kanal har ett annat ljud (ja, ett annat volymkuvert).
  • MIDI-anteckningar mellan 24 och 96 (C1-C7) accepteras; anteckningar utanför detta område ignoreras.
  • MIDI -kanal 10 spelar trumljud. Notera siffror mellan 35 och 50 (se

    www.midi.org/specifications-old/item/gm-level-1-sound-set) accepteras.

  • Det finns tre röstkanaler på AY-3-8910. Synth-firmware försöker spela den senast skickade noten, samtidigt som de högsta och lägsta nuvarande begärda noterna fortfarande spelas. Andra toner (vanligtvis mitttonerna i ett ackord) skärs av vid behov.

Och det är ungefär det. Ha så kul!

Steg 7: Fotnoter

Om demolåten

Demolåten - Mozarts berömda Queen Of The Night aria - skapades ganska snabbt från en MIDI -fil som jag hittade på Internet (https://www.midiworld.com/mozart.htm). Någon annan gjorde allt jobb!

Jag använder Presonus Studio One på en Mac, och MIDI -filen importerades till fyra separata spår. En liten mängd redigering behövdes där ackompanjemangsnoterna är högre än huvudlåten och för att ta bort några av de mer stötande glitching mellan noterna.

Ljudet du hör på klippet är direkt från synten, med bara en touch av EQ och mättnad för att ge det lite av en "arkadmaskin" låg-fi-känsla.

Rekommenderad: