Spisu treści:

Syntezator Micro Midi: 5 kroków (ze zdjęciami)
Syntezator Micro Midi: 5 kroków (ze zdjęciami)

Wideo: Syntezator Micro Midi: 5 kroków (ze zdjęciami)

Wideo: Syntezator Micro Midi: 5 kroków (ze zdjęciami)
Wideo: Klawiatura sterująca Akai MPK Mini Plus [ TEST/REVIEW] 2024, Lipiec
Anonim
Syntezator Micro Midi
Syntezator Micro Midi
Syntezator Micro Midi
Syntezator Micro Midi
Syntezator Micro Midi
Syntezator Micro Midi

Ta instrukcja demonstruje użycie układu VLSI VS1053b Audio i Midi DSP w trybie Midi w czasie rzeczywistym. W tym trybie działa jako 64-głosowy polifoniczny syntezator GM (General Midi) Midi. Samodzielny mikrokontroler Arduino Uno steruje wyświetlaczem OLED, trzema przyciskami (wybór funkcji i góra lub dół, i przekazuje strumień danych Midi do DSP audio. Wybraną płytą muzyczną była płytka zaciskowa kodeka Adafruit VS1053, ale płytka zaciskowa muzyki Sparkfun został również pomyślnie przetestowany. Wykorzystano biblioteki Adafruit VS1053b zamiast znacznie większej biblioteki SFEMP3 (polecanej przez Sparkfun, mimo że mają też swój własny zestaw bibliotek), ponieważ kod Adafruit był dla mnie łatwiejszy do zrozumienia.

Większość kodu używanego do sterowania procesorem DSP audio/midi została opracowana przy użyciu Arduino Uno podłączonego do płytki zaciskowej audio/midi przez płytkę stykową. Po stwierdzeniu, że funkcje działają zadowalająco, Uno został użyty jako programator do samodzielnego ATmega 328, który został następnie umieszczony na małej płytce Veroboard o wymiarach 30x20 wraz z optoizolatorem IC 6N139 wymaganym na gnieździe wejściowym Midi (5 pin DIN). Podłączono również mały (64x48) ekran OLED, trzy przyciski, diodę LED aktywności Midi oraz złącze baryłkowe +5 V do zasilania i złącze wyjściowe audio stereo. Wymagania dotyczące zasilania są bardzo skromne - około 20 mA przy 5 woltach.

Krok 1: Lista części

ATmega328 Micro 28-pinowe gniazdo DIP + 28-pinowe gniazdo DIP6N138 lub 6N139 optoizolator + 4-pinowe gniazdo DIP Wyświetlacz Wemos 64x48 I2C OLED lub podobny Płytka zaciskowa kodeka Adafruit VS1053b3 miniaturowe przyciski Preferowane gniazdo 5-pinowe DIN Midi do montażu na płytce drukowanej Mała dioda LED w dowolnym kolorze. gniazdo do podłączenia do wzmacniacza lub słuchawekRezystory: 7 x 10k, 2 x 470 ohm, 2 x 220 ohm Kondensatory: 0,1uF 50v plastik, 10uf 25v elektrolit, 2 x 27pF ceramika Małe kawałki Veroboard (30 pasków po 20 kolumn i 4 paski przy 16 kolumnach), obudowa z tworzywa ABS o wymiarach 85x55x25mm, okablowanie i kilka śrub, nakrętek i podkładek.

Krok 2: Budowa

Budowa
Budowa
Budowa
Budowa
Budowa
Budowa

Na pokrywie obudowy znajduje się wyświetlacz OLED, trzy przyciski, które są zamontowane na innym małym kawałku płyty Veroboard oraz złącze zasilania beczki. Główna płytka drukowana Vero ma dwa otwory do mocowania płytki zaciskowej Music nad ATmega328. Szczegóły dotyczące połączeń można znaleźć na schemacie płytki Fritzing Strip.

Zaprogramowany ATmega328 (proszę zapoznać się z kodem w następnej sekcji) jest następnie wkładany do gniazda, a następnie do 6N139 i wszystko jest podłączone.

Dioda LED służy jako wskaźnik aktywności Midi i została zamontowana z przodu obudowy. Jest podłączony do wyjścia D2 ATmega328 za pomocą rezystora 470 omów.

Wyświetlacz OLED do zasilania wykorzystuje wyjście 3,3 V z płyty Adafruit - wymaga mniej niż 20 mA.

Spróbuj zamienić dwa połączenia Midi Din, jeśli nie słyszysz żadnego dźwięku przy pierwszym użyciu syntezatora.

Krok 3: Oprogramowanie

Szczegóły szkicu, który należy wgrać do ATmega328 podane są w MidA.ino. Dostępnych jest siedem funkcji:

Opcja P: Zmień program – zmień instrument GM Midi z 1 na 128 (ja użyłem od 0 do 127), taki jak brzmienie fortepianu lub syntezatora. Opcja B: Zmień bank instrumentów pomiędzy Melodic (Bank 0) i Perkusją (Bank 1). Opcja V: Dostosuj głośność od 1 do 10. Opcja C: Zmień kanał Midi, na który będzie reagował syntezator. Do wyboru są: Kanał 0, kanał 1, kanał 9 (perkusja), kanał 0 i 9 oraz kanał 1 i 9. Opcja R: Włącz lub wyłącz efekt pogłosu. Opcja S: Zapisz bieżące parametry w pamięci eeprom (w górę) lub Odczytaj (w dół) go z powrotem z pamięci eeprom. Dzieje się tak, ponieważ ustawienia nie są zapisywane podczas wyłączania. Opcja X: Wyślij wiadomość o wyłączeniu wszystkich notatek (Reset Midi).

Ósma opcja nie jest jeszcze zaimplementowana - to ominie ATmega jako filtr Midi i połączy wyjście optoizolatora bezpośrednio z pinem Rx płytki DSP.

Zauważ, że VS1053b uruchamia się w trybie Midi w czasie rzeczywistym, ładując skompresowaną 1039 bajtową łatkę podczas uruchamiania - to również zwiększa rozmiar bufora Midi i filtruje bajty danych Midi wyłączne dla systemu. Szczegóły tej poprawki można znaleźć na stronie internetowej VLSI.

Nieco zmodyfikowana wersja biblioteki Adafruit Graphics została wykorzystana do obsługi rozdzielczości 64x48 pikseli wyświetlacza OLED - proszę zapoznać się z linkami podanymi na końcu dla pana Mcausera. Lista wymaganych bibliotek znajduje się w kodzie szkicu.

Co ważne, gdy szkic jest wykonywany po raz pierwszy na ATmega328, niezależnie od tego, czy jest to Uno, czy samodzielny, kod załaduje ustawienia parametrów z ATmega328 Eeprom, które mogą nie być prawidłowe. W takim przypadku możesz albo zapisać wszystkie zera do eepromu za pomocą opcji X za pomocą przycisku w dół, albo skomentować linię w funkcji void setup, która ładuje wartości z eepromu przy pierwszym uruchomieniu, dostosuj swoje instrumenty itp. do swojego upodobania, a następnie zapisz ustawienia predefiniowane za pomocą przycisku opcji S w górę.

Kredyt przyznawany jest wszystkim osobom i podmiotom wymienionym w ich kodzie i bibliotekach.

Krok 4: Linki

VLSI:

Adafruit:

Github VS1053b:

Grafika Github:

Oled:

Sparkfun:

Krok 5: Używanie tablicy Sparkfun z bibliotekami Adafruit

Korzystanie z tablicy Sparkfun z bibliotekami Adafruit
Korzystanie z tablicy Sparkfun z bibliotekami Adafruit

Tabela na zdjęciu wyjaśnia, jak podłączyć tablice muzyczne Adafruit lub Sparkfun, aby korzystać z innej biblioteki.

Zalecana: