Съдържание:

Micro Midi синтезатор: 5 стъпки (със снимки)
Micro Midi синтезатор: 5 стъпки (със снимки)

Видео: Micro Midi синтезатор: 5 стъпки (със снимки)

Видео: Micro Midi синтезатор: 5 стъпки (със снимки)
Видео: Коммутация музыкальных устройств (запись лекции) 2024, Ноември
Anonim
Микро Миди Синтезатор
Микро Миди Синтезатор
Микро Миди Синтезатор
Микро Миди Синтезатор
Микро Миди синтезатор
Микро Миди синтезатор

Тази инструкция демонстрира използването на VLSI VS1053b аудио и Midi DSP чип в режима Midi в реално време. В този режим той действа като 64 гласов полифоничен GM (General Midi) Midi синтезатор. Самостоятелен микро Arduino Uno управлява OLED дисплей, три бутона (Избор на функция и нагоре или надолу и предава потока от данни Midi до аудио DSP. Избраната музикална дъска беше пробивната платка за кодек Adafruit VS1053, но дъска за пробив на музика Sparkfun също беше успешно тестван. Библиотеките на Adafruit VS1053b бяха използвани вместо много по -голямата библиотека SFEMP3 (препоръчана от Sparkfun, въпреки че те също имат свой собствен набор от библиотеки), защото намерих кода на Adafruit за по -разбираем.

По -голямата част от кода, използван за управление на аудио/midi DSP, е разработен с помощта на Arduino Uno, свързан към дънната платка за аудио/midi чрез макет. След като се установи, че функциите работят задоволително, Uno беше използван като програмист за самостоятелен ATmega 328, който след това беше поставен на малък Veroboard с размери 30x20 заедно с 6-оптоизолационната IC 6N139, необходима на входния гнездо Midi (5-пинов DIN). Свързан беше и малък (64x48) OLED щит, три бутона, светодиод за активност на Midi и +5 -волтов конектор за захранване и добавен конектор за аудио стерео изход. Изискванията за захранване са много скромни - около 20 mA при 5 волта.

Стъпка 1: Списък на частите

ATmega328 Micro 28 пинов DIP + 28 пинов DIP гнездо 6N138 или 6N139 оптоизолатор + 4 пинов DIP гнездо Wemos 64x48 I2C OLED дисплей или подобен Adafruit VS1053b Кодек пробивна платка 3 миниатюрни бутони 5 пинов DIN Midi гнездо за печатна платка за предпочитане Малък светодиод всякакъв цвят. гнездо за свързване към усилвател или слушалки Резистори: 7 x 10k, 2 x 470 ома, 2 x 220 ома Кондензатори: 0.1uF 50v пластмаса, 10uf 25v електролитен, 2 x 27 pF керамика Малки парчета Veroboard (30 ленти по 20 колони и 4 ленти от 16 колони), пластмасов корпус от ABS около 85x55x25 мм, окабеляване и няколко винта гайки и шайби.

Стъпка 2: Строителство

Строителство
Строителство
Строителство
Строителство
Строителство
Строителство

Капакът на кутията съдържа OLED дисплея, трите бутона, които са монтирани на друго малко парче Veroboard, и конектора за захранване на цевта. Основната платка Vero има два отвора за фиксиране на музикалната платка над ATmega328. За подробности за свързването, моля, вижте диаграмата на Fritzing strip board.

Програмираният ATmega328 (моля, вижте следващия раздел за кода) след това се вмъква в гнездото му, последвано от 6N139 и всичко е свързано.

Светодиодът се използва като индикатор за активност на Midi и е монтиран от предната страна на корпуса. Той е свързан към D2 изхода на ATmega328 чрез резистор от 470 ома.

OLED дисплеят използва 3.3 -волтовия изход от платката Adafruit за захранване - изисква по -малко от 20 mA.

Опитайте да смените двете връзки на Midi Din, ако не чувате звук при първото използване на синтезатора.

Стъпка 3: Софтуер

Подробности за скицата, която трябва да бъде качена в ATmega328, са дадени в MidA.ino. Налични са седем функции:

Вариант P: Промяна на програмата - променете инструмента GM Midi от 1 на 128 (използвах 0 до 127), като например пиано или синтезатор. Вариант V: Регулирайте силата на звука от 1 до 10. Опция C: Променете Midi канала, на който Synth ще отговори. Изборът е канал 0, канал 1, канал 9 (перкусия), канал 0 и 9 и канал 1 и 9. Опция R: Включване или изключване на ефекта на реверберация. или Прочетете (надолу) обратно от паметта на Eeprom. Това е така, защото иначе настройките не се запазват при изключване. Опция X: Изпратете съобщение за изключване на всички бележки (Midi Reset).

Осма опция все още не е внедрена - това ще заобиколи ATmega като Midi филтър и ще свърже изхода на оптоизолатора директно към Rx щифта на DSP платката.

Обърнете внимание, че VS1053b се зарежда в режим Midi в реално време чрез зареждане на компресиран пластир от 1039 байта по време на зареждане - това също увеличава размера на Midi буфера и филтрира изключителните байтове за данни Midi на системата. Подробности за този пластир можете да намерите на уебсайта на VLSI.

Малко модифицирана версия на библиотеката Adafruit Graphics беше използвана за обслужване на разделителната способност на 64x48 пиксела на OLED дисплея - моля, вижте връзките, дадени в края на г -н Mcauser. Списък на необходимите библиотеки е даден в кода на скицата.

Важно е, че когато скицата се изпълнява за първи път на ATmega328, независимо дали е на Uno или самостоятелна, кодът ще зареди предварително зададени параметри от ATmega328 Eeprom, които може да не са валидни. В този случай можете или да запишете всички нули в Eeprom, като използвате опцията X с бутона надолу, или да коментирате реда във функцията за настройка на празнотата, която зарежда стойности от Eeprom при първото стартиране, да настроите инструментите си и т.н. харесване и след това запазете вашите предварително зададени настройки с бутона S опция нагоре.

Кредит се дава на всички лица и образувания, споменати за техния код и библиотеки.

Стъпка 4: Връзки

VLSI:

Adafruit:

Github VS1053b:

Графика на Github:

Oled:

Sparkfun:

Стъпка 5: Използване на дъската Sparkfun с библиотеките на Adafruit

Използване на дъската Sparkfun с библиотеките на Adafruit
Използване на дъската Sparkfun с библиотеките на Adafruit

Таблицата на снимката обяснява как да свържете Adafruit или Sparkfun Music Boards, за да използвате друга библиотека.

Препоръчано: