Spisu treści:

Syntezator Arduino MIDI Chiptune: 7 kroków (ze zdjęciami)
Syntezator Arduino MIDI Chiptune: 7 kroków (ze zdjęciami)

Wideo: Syntezator Arduino MIDI Chiptune: 7 kroków (ze zdjęciami)

Wideo: Syntezator Arduino MIDI Chiptune: 7 kroków (ze zdjęciami)
Wideo: GB-303 test #1 - 100bpm 2024, Lipiec
Anonim
Syntezator Arduino MIDI Chiptune
Syntezator Arduino MIDI Chiptune

Przeżyj zabawę wczesną muzyką z gier komputerowych dzięki autentycznemu 8-bitowemu syntezatorowi chiptune, którym możesz sterować za pomocą MIDI w zaciszu dowolnego nowoczesnego oprogramowania DAW.

Ten prosty obwód wykorzystuje Arduino do sterowania programowalnym układem generatora dźwięku AY-3-8910 (lub jednym z wielu jego klonów), aby odtworzyć dźwięk z lat 80-tych. W przeciwieństwie do wielu projektów, które wymagają specjalistycznego oprogramowania do edycji muzyki, wygląda to jak standardowe urządzenie USB MIDI. Syntezator ma sprytny algorytm, który stara się odtwarzać najbardziej istotne muzycznie nuty; w wielu przypadkach możesz wrzucić do niego nieedytowane pliki MIDI, a melodia wychodzi od razu. Całkowity koszt powinien wynosić około 20 funtów.

Krok 1: Rzeczy, których będziesz potrzebować

Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować

Pełna lista części do tego, jak widać na zdjęciach, jest następująca:

  • Klon Sparkfun Pro Micro (opcja 5 V, 16 MHz). Użyłem tego na Amazon.
  • Układ Yamaha YM2149F PSG. Mam swój z eBay.
  • Kondensatory ceramiczne 2 x 100nF
  • Po jednym z rezystorów 75R, 1K i 100K (1/4 W jest w porządku).
  • Ceramiczny kondensator dyskowy 4,7nF
  • Kondensator elektrolityczny 1uF (napięcie znamionowe > 5V).
  • 40-pinowe gniazdo DIP IC 0.6"
  • 2 x 12-kierunkowe nagłówki 0,1" (ten z CPC)
  • Płytka prototypowa, ok. 3" na 2" Kupiłem ich opakowanie zbiorcze, ponownie na Amazon.
  • Gniazdo gramofonowe do montażu na płytce drukowanej
  • Miniaturowy drut solid-core (taki jak ten).

Będziesz także potrzebować lutownicy, lutu, przecinaków do drutu, szczypiec i ściągacza izolacji.

Krok 2: Części alternatywne

Części alternatywne
Części alternatywne
Części alternatywne
Części alternatywne
Części alternatywne
Części alternatywne

Alternatywne programowalne chipy generatora dźwięku

Użyty przeze mnie YM2149 jest klonem oryginalnego IC firmy General Instruments AY-3-8910. (Pierwszy prototyp używał AY-3-8910, który kupiłem w serwisie eBay, ale okazało się, że generator białego szumu nie działa. Smutna buźka). Możesz użyć jednego z tych projektów bez żadnych zmian.

General Instruments wykonało również warianty AY-3-8912 i AY-3-8913, które były tym samym krzemem w mniejszych obudowach, bez dodatkowych pinów I/O. Te szpilki nie są potrzebne do żadnych celów audio, a ten projekt ich nie używa. Możesz użyć AY-3-8912 lub -8913, po prostu postępuj zgodnie z wyprowadzeniami pokazanymi powyżej.

Alternatywne Arduino

„Pro Micro”, którego użyłem, jest kopią płyty Pro Micro firmy Sparkfun. Jeśli nie masz pewności co do kodu Arduino, najlepiej trzymać się tego; jeśli z przyjemnością dostosujesz projekt, będziesz potrzebować następujących specyfikacji

  • Urządzenie ATmega 16u4 lub 32u4 (musi działać jako urządzenie USB MIDI; ATmega 168 lub 328 nie może tego zrobić).
  • Działanie 5 V (AY-3-8910 działa przy 5 V) i częstotliwość zegara 16 MHz.
  • Co najmniej 13 cyfrowych linii I/O.

    Port pin PB5 musi być podłączony (służy do generowania sygnału zegarowego 1MHz). W Pro Micro jest to pin I/O D9

Płyty Arduino Leonardo i Micro pasują do rachunku, chociaż ich nie wypróbowałem.

Inne składniki

Zastosowane tutaj rezystory i kondensatory nie są szczególnie wyjątkowe. Wszelkie części (w przybliżeniu) odpowiedniej wartości powinny działać.

Krok 3: Układanie płytki drukowanej

Układanie płytki drukowanej
Układanie płytki drukowanej

Aby zbudować obwód, najlepiej zacząć od rozmieszczenia gniazd, a następnie dodać rezystory i kondensatory. Omówimy okablowanie ich razem w następnym kroku.

Korzystając z powyższego rysunku jako przewodnika, umieść 40-pinowe gniazdo IC, odwróć płytkę i po prostu wlutuj najpierw dwa przeciwległe piny narożne. Jeśli gniazdo nie leży wtedy płasko na płytce, można to łatwo naprawić, przelutowując jeden lub drugi pin. Kiedy wszystko będzie w porządku, przylutuj resztę.

Ustaw dwa 12-pinowe gniazda, a następnie włóż do nich Arduino, aby utrzymać je pionowo i stabilnie podczas lutowania. Ponownie, przylutowanie najpierw dwóch pinów na każdym końcu pozwoli na sprawdzenie przed ostatecznym lutowaniem.

Do gniazda wyjściowego audio użyłem małego wiertła, aby powiększyć otwory na płytkę drukowaną, ponieważ znaczniki montażowe są dość duże.

Krok 4: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie

Po umieszczeniu głównych komponentów można je podłączyć z tyłu płyty, zgodnie z powyższym obwodem.

Komponenty wyjścia audio (R2, R3, C2, C3) i kondensatory odsprzęgające (C1, C4) mogą być połączone przewodem typu solid-core (lub odcięciami przewodów komponentowych). Teraz można wykonać połączenia masy i zasilania z Arduino do układu PSG (czerwone i czarne przewody, na zdjęciu).

Różne wyjścia Pro Micro są podłączone do AY-3-8910 w następujący sposób (patrz przewodnik podłączania dla przypisania pinów):

Sygnał 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 ZEGAR D9 22 (przez R1, 75 omów)

Krok 5: Programowanie za pomocą Arduino IDE

Programowanie za pomocą Arduino IDE
Programowanie za pomocą Arduino IDE

Jeśli jesteś nowy w Arduino, zdecydowanie polecam wypróbowanie jednego z wielu samouczków na temat podstaw. Poradnik podłączania Sparkfun zawiera pełne szczegóły. Możesz sprawdzić, czy podstawowe programowanie działa, postępując zgodnie z samouczkiem „Blinkies”. Arduino może być trochę trudne do przekonania do trybu „bootloader” (w którym można załadować nowe szkice), więc przydaje się odrobina praktyki z prostym przykładem.

Gdy będziesz zadowolony, pobierz plik chiptunes.ino dołączony do tej strony, zbuduj go i prześlij. (Odkryłem, że użycie typu płyty „Arduino/Genuino Micro” jest w porządku dla tego szkicu, jeśli chcesz pominąć instalację obsługi płyty Sparkfun).

Pamiętaj też, że jeśli korzystasz z komputera Mac, ustawienie „Port” będzie musiało zostać zmienione po załadowaniu szkicu po raz pierwszy. Z „pustym” Arduino (lub przy użyciu szkicu Blinky) pojawi się jako coś w rodzaju /dev/cu.usbmodemXXXX, jak pokazano na powyższym obrazku. Gdy urządzenie USB MIDI jest aktywne (używane w szkicu chiptunes.ino), będzie to /dev/cu.usbmodemMID1.

Krok 6: Testowanie i używanie syntezatora

Testowanie i używanie syntezatora
Testowanie i używanie syntezatora
Testowanie i używanie syntezatora
Testowanie i używanie syntezatora
Testowanie i używanie syntezatora
Testowanie i używanie syntezatora

Po zaprogramowaniu Arduino stacja robocza powinna automatycznie rozpoznać je jako urządzenie USB MIDI. Pojawi się pod nazwą „Arduino Micro” – powinieneś to zobaczyć w Menedżerze urządzeń w systemie Windows lub w aplikacji „Informacje o systemie” w systemie Mac OS.

Na komputerze Mac możesz użyć aplikacji Audio MIDI Setup, aby przeprowadzić podstawowy test. Uruchom aplikację, a następnie wybierz Okno -> Pokaż Studio MIDI. Spowoduje to wyświetlenie okna MIDI Studio – wszystkie interfejsy MIDI pojawią się w nieco losowym układzie – który, miejmy nadzieję, będzie zawierał urządzenie „Arduino Micro”. Jeśli klikniesz ikonę „Test Setup” na pasku narzędzi, a następnie klikniesz strzałkę w dół (patrz rysunek) na urządzeniu Arduino Micro, aplikacja wyśle notatki MIDI do syntezatora. (Nie są one szczególnie melodyjne!) W tym momencie syntezator powinien wydawać losowe dźwięki.

Następnie możesz dodać „Arduino Micro” jako urządzenie wyjściowe do konfiguracji MIDI Twojej cyfrowej stacji roboczej i zacząć grać!

  • Syntezator odpowiada na kanałach MIDI od 1 do 4. Każdy kanał ma inny dźwięk (no cóż, inną obwiednię głośności).
  • Akceptowane są nuty MIDI od 24 do 96 (C1-C7); nuty spoza tego zakresu są ignorowane.
  • Kanał MIDI 10 odtwarza dźwięki perkusji. Zwróć uwagę na numery od 35 do 50 (patrz

    www.midi.org/specifications-old/item/gm-level-1-sound-set) są akceptowane.

  • W AY-3-8910 dostępne są trzy kanały głosowe. Oprogramowanie sprzętowe syntezatora próbuje odtworzyć ostatnio wysłaną nutę, zachowując jednocześnie najwyższe i najniższe aktualnie żądane nuty. Inne nuty (zwykle środkowe nuty akordu) są w razie potrzeby odcinane.

I to wszystko. Baw się dobrze!

Krok 7: Przypisy

O melodii demo

Utwór demo – słynna aria Królowej Nocy Mozarta – został stworzony dość szybko z pliku MIDI, który znalazłem w Internecie (https://www.midiworld.com/mozart.htm). Ktoś inny wykonał całą ciężką pracę!

Używam Presonus Studio One na Macu, a plik MIDI został zaimportowany do czterech oddzielnych ścieżek. Potrzebna była niewielka ilość edycji, gdy nuty akompaniamentu są wyższe niż melodia główna, i aby usunąć niektóre z bardziej nieprzyjemnych trzasków między nutami.

Dźwięk, który słyszysz na klipie, pochodzi prosto z syntezatora, z odrobiną korektora i nasycenia, aby nadać mu trochę niskiego poczucia „maszyny arkadowej”.

Zalecana: