Sommario:

Sintetizzatore Chiptune MIDI Arduino: 7 passaggi (con immagini)
Sintetizzatore Chiptune MIDI Arduino: 7 passaggi (con immagini)

Video: Sintetizzatore Chiptune MIDI Arduino: 7 passaggi (con immagini)

Video: Sintetizzatore Chiptune MIDI Arduino: 7 passaggi (con immagini)
Video: YM3812 EuroRack Module Part 1 - Controlling Registers 2024, Novembre
Anonim
Sintetizzatore Chiptune MIDI Arduino
Sintetizzatore Chiptune MIDI Arduino

Rivivi il divertimento della musica dei primi giochi per computer con un autentico sintetizzatore chiptune a 8 bit, che puoi controllare tramite MIDI comodamente da qualsiasi moderno software DAW.

Questo semplice circuito utilizza un Arduino per pilotare un chip generatore di suoni programmabile AY-3-8910 (o uno dei suoi tanti cloni) per ricreare quel suono degli anni '80. A differenza dei molti progetti che richiedono un software specializzato per modificare la musica, questo sembra un dispositivo MIDI USB standard. Il sintetizzatore ha un algoritmo intelligente che cerca di far suonare le note più rilevanti dal punto di vista musicale; in molti casi puoi lanciare file MIDI non modificati direttamente e il brano viene fuori subito. Il costo totale dovrebbe essere di circa £ 20.

Passaggio 1: cose di cui avrai bisogno

Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno
Cose di cui avrai bisogno

L'elenco completo delle parti per questo, come si vede nelle immagini, è il seguente:

  • Sparkfun Pro Micro clone (opzione 5V, 16MHz). Ho usato questo su Amazon.
  • Chip Yamaha YM2149F PSG. Ho preso il mio da eBay.
  • 2 condensatori ceramici da 100nF
  • 1 ciascuno dei resistori da 75R, 1K e 100K (1/4 watt va bene).
  • Condensatore a disco ceramico 4.7nF
  • Condensatore elettrolitico da 1uF (tensione nominale > 5V).
  • Presa DIP IC a 40 pin 0,6"
  • Intestazioni 2 x 12 vie da 0,1" (questa da CPC)
  • Scheda di prototipazione, 3" per 2" ca. Ne ho comprate una confezione all'ingrosso, sempre su Amazon.
  • Presa phono per montaggio su PCB
  • Filo solido in miniatura (come questo).

Avrai anche bisogno di un saldatore, saldatura, tronchesi, pinze e una spelafili.

Passaggio 2: parti alternative

Parti alternative
Parti alternative
Parti alternative
Parti alternative
Parti alternative
Parti alternative

Chip alternativi per generatori di suoni programmabili

L'YM2149 che ho usato è un clone dell'originale General Instruments AY-3-8910 IC. (Il primo prototipo utilizzava un AY-3-8910 che ho acquistato da eBay, ma si è scoperto che il generatore di rumore bianco non funzionava. Faccina triste). Puoi utilizzare entrambi per questo progetto senza alcuna modifica.

General Instruments ha anche realizzato le varianti AY-3-8912 e AY-3-8913, che era lo stesso silicio all'interno di contenitori più piccoli, senza alcuni pin I/O aggiuntivi. Questi pin non sono necessari per scopi audio e questo progetto non li utilizza. Puoi usare un AY-3-8912 o -8913, basta seguire i pinout mostrati sopra.

Arduino alternativi

Il "Pro Micro" che ho usato è una copia della scheda Pro Micro di Sparkfun. Se non sei sicuro del codice Arduino, è meglio attenersi a questo; se sei felice di adattare il design, avrai bisogno delle seguenti specifiche

  • Dispositivo ATmega 16u4 o 32u4 (necessario per agire come dispositivo MIDI USB; l'ATmega 168 o 328 non può farlo).
  • Funzionamento a 5 V (l'AY-3-8910 funziona a 5 V) e velocità di clock di 16 MHz.
  • Almeno 13 linee di I/O digitali.

    Il pin della porta PB5 deve essere collegato (viene utilizzato per generare un segnale di clock a 1MHz). Sul Pro Micro questo viene utilizzato come pin I/O D9

Le schede Arduino Leonardo e Micro sono entrambe adatte, anche se non le ho provate.

Altri componenti

I resistori e i condensatori utilizzati qui non sono particolarmente speciali. Qualsiasi parte di (approssimativamente) il valore corretto dovrebbe funzionare.

Passaggio 3: disporre il circuito stampato

Disporre il circuito stampato
Disporre il circuito stampato

Per costruire il circuito, è meglio iniziare posizionando le prese, quindi aggiungere le resistenze e i condensatori. Tratteremo il cablaggio di questi insieme nel passaggio successivo.

Usando l'immagine sopra come guida, posizionare lo zoccolo IC a 40 pin, capovolgere la scheda e saldare prima i due pin agli angoli opposti. Se la presa non è piatta contro la scheda, è facile da riparare risaldando uno o l'altro pin. Quando va bene, salda il resto.

Posiziona le due prese a 12 pin, quindi inserisci l'Arduino in esse per tenerle verticali e ferme durante la saldatura. Anche in questo caso, saldare prima due pin a ciascuna estremità consentirà un controllo prima della saldatura finale.

Per la presa di uscita audio, ho usato un piccolo trapano per allargare i fori del PCB, poiché le etichette di montaggio sono piuttosto grandi.

Passaggio 4: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio

Una volta posizionati i componenti principali, è possibile cablarli sul retro della scheda, seguendo il circuito sopra.

I componenti di uscita audio (R2, R3, C2, C3) e i condensatori di disaccoppiamento (C1, C4) possono essere collegati con un cavo a nucleo solido (o con i frammenti dei cavi dei componenti). Ora è possibile effettuare i collegamenti di massa e alimentazione dall'Arduino al chip PSG (fili rosso e nero, nella foto).

Le varie uscite del Pro Micro sono cablate all'AY-3-8910 come segue (consultare la guida di collegamento per l'assegnazione dei pin):

Segnale 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 OROLOGIO D9 22 (tramite R1, 75 ohm)

Passaggio 5: programmazione utilizzando l'IDE Arduino

Programmazione utilizzando l'IDE Arduino
Programmazione utilizzando l'IDE Arduino

Se non conosci Arduino, ti consiglio vivamente di provare uno dei tanti tutorial sulle basi. La guida ai collegamenti di Sparkfun fornisce tutti i dettagli. Puoi verificare che la programmazione di base funzioni seguendo il tutorial "Blinkies". Arduinos può essere un po' complicato da convincere in modalità 'bootloader' (dove è possibile caricare nuovi schizzi), quindi è utile un po' di pratica con un semplice esempio.

Quando sei soddisfatto, scarica il file chiptunes.ino allegato a questa pagina, crealo e caricalo. (Ho scoperto che usare il tipo di scheda "Arduino/Genuino Micro" è OK per questo schizzo, se vuoi saltare l'installazione del supporto per schede Sparkfun).

Inoltre, tieni presente che se utilizzi un Mac, l'impostazione "Porta" dovrà essere modificata dopo aver caricato lo schizzo per la prima volta. Con un Arduino 'vuoto' (o usando lo sketch Blinky) apparirà come qualcosa come /dev/cu.usbmodemXXXX, come mostrato nell'immagine sopra. Quando il dispositivo USB MIDI è attivo (come utilizzato dallo sketch chiptunes.ino) sarà /dev/cu.usbmodemMID1.

Passaggio 6: test e utilizzo del sintetizzatore

Test e utilizzo del synth
Test e utilizzo del synth
Test e utilizzo del synth
Test e utilizzo del synth
Test e utilizzo del synth
Test e utilizzo del synth

Una volta programmato Arduino, la tua workstation dovrebbe riconoscerlo automaticamente come dispositivo MIDI USB. Apparirà con il nome "Arduino Micro" - dovresti essere in grado di vederlo in Gestione dispositivi in Windows o nell'app "Informazioni di sistema" in Mac OS.

Su un Mac, puoi utilizzare l'app Audio MIDI Setup per eseguire un test di base. Avvia l'app, quindi scegli Finestra -> Mostra Studio MIDI. Questo farà apparire la finestra MIDI Studio - tutte le tue interfacce MIDI appariranno in una disposizione leggermente casuale - che si spera includa il dispositivo "Arduino Micro". Se fai clic sull'icona "Test Setup" nella barra degli strumenti, quindi fai clic sulla freccia giù (vedi immagine) sul dispositivo Arduino Micro, l'app invierà note MIDI al synth. (Questi non sono particolarmente intonati!) Il synth dovrebbe emettere alcuni suoni casuali a questo punto.

Puoi quindi aggiungere "Arduino Micro" come dispositivo di output alla configurazione MIDI della tua workstation audio digitale e iniziare a suonare!

  • Il synth risponde sui canali MIDI da 1 a 4. Ogni canale ha un suono diverso (beh, un inviluppo di volume diverso).
  • Sono accettate note MIDI comprese tra 24 e 96 (C1-C7); le note al di fuori di questo intervallo vengono ignorate.
  • Il canale MIDI 10 riproduce suoni di batteria. Nota i numeri tra 35 e 50 (vedi

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

  • Ci sono tre canali vocali sull'AY-3-8910. Il firmware del sintetizzatore cerca di riprodurre la nota inviata più di recente, mantenendo ancora in riproduzione le note più alte e più basse attualmente richieste. Altre note (di solito le note centrali in un accordo) vengono tagliate se necessario.

E questo è tutto. Divertiti!

Passaggio 7: note a piè di pagina

A proposito del brano dimostrativo

Il brano dimostrativo - la famosa aria della regina della notte di Mozart - è stato creato abbastanza rapidamente da un file MIDI che ho trovato su Internet (https://www.midiworld.com/mozart.htm). Qualcun altro ha fatto tutto il duro lavoro!

Sto usando Presonus Studio One su un Mac e il file MIDI è stato importato su quattro tracce separate. Era necessaria una piccola quantità di editing dove le note di accompagnamento sono più alte della melodia principale e per rimuovere alcuni dei più discutibili glitch tra le note.

L'audio che ascolti sulla clip proviene direttamente dal sintetizzatore, con solo un tocco di EQ e saturazione per dargli un tocco di low-fi da 'arcade machine'.

Consigliato: