Съдържание:

Arduino Multi-track MIDI Loop Station: 6 стъпки
Arduino Multi-track MIDI Loop Station: 6 стъпки

Видео: Arduino Multi-track MIDI Loop Station: 6 стъпки

Видео: Arduino Multi-track MIDI Loop Station: 6 стъпки
Видео: Marlin Firmware 2.0.x Explained 2024, Юли
Anonim
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station

Циклична станция или цикъл е по същество инструмент за възпроизвеждане в реално време на вашите инструментални рифове (бримки). Той не е замислен като носител за запис, а инструмент за оформяне на вдъхновението без разсейване (и в крайна сметка изпълнява на живо …).

Има много станции за запис на аудио, както под формата на специален хардуер (почти всеки производител на педали за китара има свой собствен продукт), така и на компютърен софтуер (отличният Linux Sooper Looper или windows Mobius, за да цитираме най -известните). Успях да намеря само няколко проекта за DIY не-аудио, но MIDI лупинги, което означава инструмент за записване на MIDI събития и незабавното им възпроизвеждане в цикъл; повечето от тези проекти (всички, трябва да кажа) са изоставени или изгубени … ето ни с пълен проект за всички!

Тази MIDI контурна станция на Arduino просто следи входящите MIDI събития и ги възпроизвежда. Трябва само да натиснете педала за запис, да създадете най -добрия си риф досега и да спрете записа, като натиснете отново педала. Супер лесно:)

Този проект се основава на лесен за намиране отворен хардуер (Arduino DUE), софтуер (моят собствен фърмуер и Arduino IDE) и може да бъде персонализиран така, че да отразява вашите предпочитания.

Хайде да го направим!

PS: да, супер евтино е!

Стъпка 1: Ограничения

Преди да започнете да придобивате хардуерни части за проекта, нека ви кажа кои са неговите граници, за да можете да решите да продължите напред или да спрете тук.

- поради хардуерни ограничения (по същество Aduino DUE памет), максималната дължина по подразбиране на фразата, която можете да запишете, е ограничена до 46 секунди.

- циклите не могат да се съхраняват и възпроизвеждат след изключване. Можете обаче да ги изпратите на компютър и да ги запишете.

- няма квантоване на бележки.

- MIDI часовникът се поддържа, но по това време е на предварителен етап.

- записаните MIDI съобщения са включени бележки, бележки изключени, промени в контрола и наклон; други MIDI съобщения, като след докосване, промяна на програмата, SysEx и т.н., се пренебрегват.

- максималната полифония е зададена на 10 по подразбиране (отново, ограниченията на паметта на Aduino DUE).

Положителната страна е, че се поддържат MIDI потоци от множество различни инструменти, всеки предаващ по собствен канал; това означава, че можете да записвате няколко MIDI инструмента едновременно, наслоени или със собствена песен (повече професионалисти на следващата стъпка;)).

Ако животът с тези ограничения изглежда разумен (и това е за мен), ще се забавлявате много добре с това нещо;)

Стъпка 2: Как работи

Станцията MIDI loop е много лесна за работа. Той работи по начин, подобен на тези хардуерни аудио контурни станции, които всеки производител на китарни педали има в собствен каталог.

1) Изберете записа, в който искате да запишете вашата MIDI последователност. По подразбиране е избрана песен „едно“, но можете да я промените, като натиснете един от бутоните за песни (по един за всяка песен).

2) Когато натиснете превключвателя "REC"/крачния педал за първи път, петлителят се включва. Зеленият светодиод светва. Той ще изчака, докато не бъде получена първата ви бележка, преди да започне да записва действителната последователност/риф.

3) Когато приключите с последователността, натиснете отново превключвателя "REC"/крачен педал, за да определите действителната дължина на рифа. Зеленият светодиод изгасва. Looper ще започне незабавно да възпроизвежда вашата MIDI последователност. Ако достигнете максималното време, записът ще спре автоматично и последователността ще започне да се възпроизвежда в цикъл.

4) Сега можете да решите да наложите последователността си върху текущата песен или да изберете нова песен и да запишете върху нея, като натиснете превключвателя "REC"/педала. И в двата случая жълтият светодиод ще светне, дори ако новата песен е празна, защото това е "подчинена" песен (подчинена на първата записана песен). Натиснете отново, за да спрете натрупването (жълтият светодиод изгасва).

За тези от вас, които се чувстват удобно с аудио циклични станции, тази MIDI прогресия се нарича "REC/PLAY/OVERDUB" и е единствената поддържана.

Ако по някое време почувствате, че последното ви наслояване не е наред, можете да го изтриете, като натиснете превключвателя "отмяна"/педала. Можете да изчистите цялата текуща песен, като задържите педала "REC" натиснат за повече от 3 секунди; можете да нулирате лупера (софтуерно нулиране), като натиснете първите три бутона за песни едновременно или като изчистите всички използвани песни.

Можете да заглушите/включите песен, като натиснете бутона за песен на текущата песен.

Можете да изпратите ПАНИКА! съобщение чрез натискане на бутона за паника. Можете дори да изпратите ПАНИКА! съобщение чрез едновременно натискане на първите два бутона за песни.

Циркулярът има вграден прост метроном: бележка за MIDI съобщение за бележка номер "64" се изпраща при 100 BPM по канал 10 (каналът, който вероятно слушате от вашата барабанна машина). Можете да увеличите или намалите темпото, като настроите оптичния енкодер; чрез натискане на превключвателя на оптичния енкодер можете да активирате/деактивирате метронома. Обърнете внимание, че вашата барабанна машина трябва да бъде настроена да възпроизвежда звук (барабан, бас или какъвто и да е звук, който предпочитате), когато получавате MIDI бележка "64" или метрономът ще бъде заглушен.

Една баребоне версия на този MIDI контур може да бъде съставена с един крачен превключвател за стартиране и спиране на записа. Задържането на превключвателя за повече от 3 секунди ще повторно инициализира цикличната станция.

Ако искате да инвестирате допълнително време в разработването на хардуера, добавянето на ключове и бутони ще направи бримковата станция по -гъвкава. На снимката е как съм конфигурирал четирите си песни (поддържат се до пет) пълнофункционална станция за цикъл.

ВАЖНА ЗАБЕЛЕЖКА: хардуерът на снимките ми е прототип. Използвах повече гнезда за жак, отколкото е необходимо, но само четири бутона за песни. Това е така, защото когато започнах проекта, не бях напълно сигурен какви ще бъдат крайните изисквания.

Бутоните и крачните превключватели са еквивалентни по електронен път и можете да използвате един вместо друг; за моите нужди, тъй като винаги има твърде малко място на пода (по дяволите, прекрасни педали за ефект;)), имам ограничени крачни педали до единичната функция REC.

Стъпка 3: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Сметка на материалите:

Пълнофункционална 5-пистова MIDI линия

1x Arduino DUE

7x моментни бутони

1x пластмасов калъф (използвах корпус 150 x 110 x 70 mm)

2x 5-пинов DIN конектор за MIDI гнездо за женски панел

1x 6,3 мм гнездо за монтиране на панел

1x двустранна перфорирана дъска 50x70 mm

5x 3 mm LED (зелен)

1x 3 мм LED (жълт)

1x оптичен енкодер

1x H11L1 оптрон

1x 1N4148 диод

3x 1000 ома резистори

3x 220 ома резистори

10x 470 ома резистори

Малко спойка, малко кабели, станция за запояване … и свободно време:)

Време, необходимо за завършване на проекта: 6-9 часа

Защо не UNO?

Първите тестове (и начален работен код) бяха написани на "обикновена" дъска arduino UNO. Тази платка има ограничения на RAM, което ме принуди да намаля полифонията до "4", максимална дължина до по -малко от 4 секунди и резолюция от 40 ms при макс. Това без многоканално боравене. Премахвайки и проследяването на скоростта, успях да увелича времето за запис до 7 секунди.

С UNO тогава можете да реализирате "работеща" MIDI линия, но силно ограничена.

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

Софтуерът силно разчита на MIDI библиотеката на FortySevenEffects. Тази библиотека е страхотна и прави този вид проекти изпълними дори за не -кодиращи отрепки като мен.

Arduino IDE и неговата общност е друга важна част от този "успех".

Няма да навлизам в подробности как да кача скицата във вашия arduino DUE. Ако това е първият ви опит с arduino IDE, моля, първо прочетете това.

Написах две различни версии на кода, базирани на два напълно различни подхода.

Принципът на работа на версия 1 е, че по време на запис или презаписване Arduino DUE проверява и съхранява в своята (променлива) памет поддържаните MIDI събития (бележка включена, забележка изключена, промяна на контрола и промяна на височината); времевата ос се квантува на стъпки от 20 ms и получените съобщения се съхраняват съответно в тези слотове. По време на възпроизвеждане съхранените MIDI съобщения се изпращат обратно към синтезатора, като се спазва квантуването на времето.

Принципът на работа на версия 2 е "просто" записване на midi събитие и час, в който събитието трябва да се задейства. Версия 2 има различни ограничения от версия 1 (изброени в предишна стъпка). опитайте и двете и използвайте този, който работи по -добре за вас.

Има и предварителна обработка на часовника, но ще са необходими някои ощипвания, за да работи както трябва. Кодът предполага, че записвате цикъл от 4/4 - 4 бара (16 удара).

Можете да деактивирате външния часовник, като държите натиснат бутона "паника", когато включвате лупера.

Кодовете се качват ТУК. Коментарите се поставят навсякъде, така че да можете да огънете фърмуера по ваше желание;)

Стъпка 5: Окабеляване

Окабеляване
Окабеляване
Окабеляване
Окабеляване
Окабеляване
Окабеляване

MIDI IN и MIDI OUT схемите са докладвани в приложените снимки. Забележете, че се използват TX1 и RX1, а не TX0 и RX0.

Входните щифтове на Arduino DUE не могат да поддържат 5V, но 3.3V; поради това се използва оптрон H11L1 вместо по -често срещан 6N138. Имам доказателства, че използването на 6N138, съчетано с делител на напрежение, за да се намали напрежението на сигнала, преминаващо към TX1, както в моя първи прототип, може да работи нестабилно в някои настройки.

Светодиодите са свързани към изходните щифтове на Arduino DUE чрез резистори 470 ома. Можете да използвате резистори до 1K ома, за да намалите тока, преминаващ към светодиодите, и да намалите тяхната яркост.

Бутоните/превключвателите/жаковете са директно свързани към входните щифтове на Arduino благодарение на входящите резистори, активирани в скицата. Няма нужда от външни (падащи) резистори.

Оптичният енкодер е свързан към GND и +5V. Той отива към входните щифтове на Arduino, преминаващи през 2 480 ома резистора, по един за всеки оптичен изход на данни.

Arduino DUE се захранва директно от 5V щифт и се заземява чрез +5V DC хъб.

Всички основания са свързани помежду си.

Приложена е таблица с връзки от щифтове arduino към IN/OUT периферно устройство. Номерата на пиновете на Arduino отразяват тези в моя хардуер за проптотип и могат да изглеждат (те някак са …) случайни. Можете лесно да промените местоположението на щифта в скицата по ваше желание;)

Стъпка 6: Какво ще стане, ако имам повече от един MIDI източник?

Какво ще стане, ако имам повече от един MIDI източник?
Какво ще стане, ако имам повече от един MIDI източник?

След кратко търсене на сливане с MIDI установих, че най -практичното (и евтино) решение е MIDI превключвател.

MIDI превключвателят е пасивно устройство, което позволява MIDI източник и деактивира всички останали източници. Просто като това.

Сърцето на MIDI превключвател е многопозиционен (моят е 6 позиционен), 2 полюсен превключвател. Много е важно броят на полюсите да е "2", тъй като всеки MIDI гнездо трябва да бъде напълно изрязан, ако не е избран, а не в комуникация с останалите. Приложена е снимка на тази, която реализирах за собствена употреба.

На ТОЗИ ВРЪЗКА схема.

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