Съдържание:

Arduino MIDI Rhythm Section Sequencer: 8 стъпки (със снимки)
Arduino MIDI Rhythm Section Sequencer: 8 стъпки (със снимки)

Видео: Arduino MIDI Rhythm Section Sequencer: 8 стъпки (със снимки)

Видео: Arduino MIDI Rhythm Section Sequencer: 8 стъпки (със снимки)
Видео: Arduino 64 Steps Sequencer with minimum hardware, adapted from the Drum Sequencer 2024, Юли
Anonim
Arduino MIDI ритъм секционер
Arduino MIDI ритъм секционер
Arduino MIDI ритъм секционер
Arduino MIDI ритъм секционер
Arduino MIDI ритъм секционер
Arduino MIDI ритъм секционер

Наличието на добра софтуерна барабанна машина е лесно и евтино днес, но използването на мишка убива забавлението за мен. Ето защо осъзнах това, което първоначално беше замислено като чист хардуерен MIDI барабанен секвенсор от 64 стъпки, способен да задейства до 12 различни барабанни елемента (части), но след това се превърна в секвенсор за ритмични секции …

… Ето!

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

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

Състои се главно от матрица с 4 x 4 бутона (със светодиоди), по една за всяка стъпка на лента. Цялата последователност от 64 стъпки се състои от 16 стъпки, умножени по 4 бара. Всяка стъпка е 1/16 от бележката.

Има два режима на работа: режим на живо и режим на редактиране.

В режим на редактиране можете действително да редактирате последователността си стъпка по стъпка, като определите кой барабан ще свири на всяка стъпка.

Вашият външен хардуерен инструмент ("барабан") се задейства чрез изпращане на MIDI "бележка за" съобщение за различни "номера на MIDI бележки" на номер на канал "10". По подразбиране тези номера на бележките са

барабан #1 (т.е. удар) -> номер на MIDI бележка "60"

барабан #2 (т.е. примка) -> номер на MIDI бележка "62"

барабан #3 (т.е. пляскане) -> номер на MIDI бележка "64"

барабан #4 (т.е. Hihat) -> номер на MIDI бележка "65"

барабан #5 -> MIDI бележка номер "67"

барабан #6 -> MIDI бележка номер "69"

барабан #7 -> MIDI бележка номер "71"

барабан #8 -> MIDI бележка номер "72"

барабан #9 -> номер на MIDI бележка "74"

барабан #10 -> MIDI бележка номер "76"

барабан #11 -> MIDI бележка номер "77"

барабан #12 -> номер на MIDI бележка "79"

Можете да промените тези стойности (и MIDI канала) в скицата, ако предпочитате.

В режим на живо чрез натискане на бутони стъпка можете да играете барабани на живо, свързани с всяка стъпка, като изпращате MIDI съобщения чрез сериен. Можете да записвате на живо натискането на бутони и/или входящите MIDI съобщения.

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

Ритъмна секция?

Повечето барабанни секвенсори са изцяло MIDI барабанни тригери, с фиксиран MIDI нотен номер за всеки барабанен звук. В този случай имаме „секвенсор за ритъмна секция“повече от чист „барабанен секвенсор“, защото можете дори да синтезирате последователности.

Прочетете РЪКОВОДСТВОТО ЗА БЪРЗО СТАРТ за повече подробности и пълен списък с функции.

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

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

Този проект се реализира около дъска на Arduino DUE. Опитах се да поддържам хардуера възможно най -опростен, т.е.избягвайки използването на LED драйвери. Arduino DUE вероятно не е най -подходящата платка за обработка на куп светодиоди без LED драйвер поради ограниченията на изходния ток (от 5 mA до 15 mA, в зависимост от щифта), но това е най -бързият Arduino и времето е всичко, когато се занимавате със секвенсори. Така че, имайте предвид, че ТАЗИ хардуерна конфигурация вероятно ще доведе до пределите на вашия Arduino DUE и може да го повреди в дългосрочен план.

Като се има предвид това, хардуерът е предимно 16 бутона, 16 светодиода (по един за всяка стъпка) секвенсор с 5 допълнителни бутона за функции и 3 потенциометра. Добавих и червен светодиод, след като добавих функция за запис на живо.

Ето списъка с материали:

- 1x Arduino DUE

- 16 -кратни моментни бутони без блокиране с вградени светодиоди (можете да използвате външни светодиоди, ако предпочитате, но не забравяйте да използвате светодиоди с ниска мощност !!)

- 1x червен светодиод (ниска мощност!)

- 5x моментни бутони без блокиране

- 3x 10K единични обороти, линейни, потенциометри

- 3x 6,5 мм монтиране на панел моно жак женски

- 1x пластмасов калъф (използвах корпус 190x140x70 mm)

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

- 1x двустранна перфорирана дъска 70x90 mm

- 2x 40 -пинова мъжка едноредова лента за заглавки (2,54 мм), по -добре, ако е позлатена

- 1x оптрон H11L1

- 1x 1N4148 диод

- 23x 1000 ома резистори

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

- 2x BC547 pnp транзистори

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

Моля, обърнете внимание, че бутоните на снимките са заменени с друг тип (дори по -евтини …) бутони поради скандалното подскачане …

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

ВНИМАНИЕ: ВИНАГИ носете защитни очила и ръкавици, докато пробивате! Горещи люспи от материали могат да се изпъкнат към очите ви или да влязат в контакт с кожата ви и да причинят изгаряния или дори по -сериозни щети на вас или на хората около вас

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

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

Стъпковите бутони са директно свързани към щифтовете на Arduino от 22 (стъпка 1) до 37 (стъпка 16). Бутоните заземяват верига и са свързани към Arduino DUE маса. Няма нужда от издърпващи или падащи резистори, тъй като интегрираните резистори на Arduino са софтуерно активирани (вижте скицата).

Същото важи и за допълнителните 5 бутона (Arduino щифтове 2, 3, 4, 5 и 6), използвани за функции, различни от стъпки. Също така поставих 6.5 мм конектор за женски жак успоредно с бутона "старт", за да мога да възпроизвеждам и спирам последователностите си дистанционно.

Светодиодите са свързани към земята (верига от маргаритка) и DUE щифтовете на Arduino от 38 (стъпка #1) до 53 (стъпка #16) последователно с по 1K ом резистор, за да ограничат изтичането на ток и да запазят микроконтролера.

Потенциометрите са свързани, както е показано на приложената снимка. Обърнете внимание, че референтното напрежение е 3.3V, а не 5V. Използвани са входове A0, A1 и A2.

Също така внедрих два тригерни изхода за арпеджио сигнали, като тези, необходими за арпегиране на стари 80 -те синтезатори като Korg Polysix и Roland Juno 6/60. Те са свързани към пинове A3 и A4, но можете да използвате цифрови пинове, ако предпочитате да сте цифрови сигнали. В случай, че ще подредите синтезатор, съвместим с V-Trig (тригер за напрежение) сигнали, ще бъде достатъчен резистор от 1k ома за намаляване на изтичането на ток; в случай на S-Trig (превключващ задействащ) синтезатор, ще ви е необходима проста схема за превключване на pnp (вижте приложената схема).

MIDI IN и OUT схемите са схематизирани в приложените изображения. Забележете, че за разлика от повечето arduinos, Rx1 и Tx1 се използват по подразбиране на DUE платки вместо Rx0 и Tx0. Това е чудесно, защото можете да качвате скицата си, без да е необходимо да изключвате Rx всеки път. Забележете също, че съм използвал оптрон H11L1, защото не успях да работя, както би трябвало да е обикновен 6N138 в рамките на Arduino DUE 3.3V лимит.

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

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

Можете да изтеглите актуализирания фърмуер ТУК (връзка към github).

Скицата разчита на отличната MIDI библиотека FortySevenEffects. Ще трябва да инсталирате библиотеката във вашата arduino IDE.

MIDI изходните бележки, присвоени на всеки барабан, се определят от променливата drumNote [STEPS_NUM] в скицата. Можете да ги промените по ваше желание.

Номерът на изходящия MIDI канал за барабани е зададен на "10" по подразбиране.

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

Стъпка 5: Ръководство за бърз старт

БАБАНИ: СТЪПКА ПО СТЪПКА

Веднага щом включите вашия секвенсор (или го нулирате), ще се зареди празна последователност. Секвенсорът се зарежда в режим на редактиране, като първата лента е задържана/заключена и първият барабан (т.е. удар) е избран. Това означава, че чрез натискане на който и да е бутон за стъпка, веднага ще присвоите „удар“на тези стъпки. Силата на звука, който барабанът ще се задейства, се задава от позицията на потенциометъра "сила на звука", когато барабана се присвоява на стъпката. Чрез повторно натискане на предварително зададен бутон за стъпка ще отмените присвояването на текущия барабан на тази стъпка.

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

Като задържите натиснат бутона "shift", ще видите LED индикатора за първата стъпка на първия ред включен (което означава, че е избран първият барабан) и светодиода за първата стъпка на четвъртия ред (което означава, че сте заключени към първата лента). Вече можете да промените барабана, който искате да секвенирате, като натиснете друг бутон за стъпка, като държите натиснат „shift“. След като изберете новия барабан, освободете „shift“. Всички светодиоди ще се изключат (тъй като не сте назначили новия барабан на нито една стъпка) и можете да започнете да присвоявате новия барабан на стъпки. Повторете за всички барабани, от които се нуждаете (до 12).

Сега, след като сте създали хубав модел, задръжте натиснат „shift“и изключете маркираната стъпка в долния ред (това трябва да е първата стъпка от четвъртия ред, ако сте приели същото оформление, което използвах): имате само „ отключена "последователността, която сега ще премине през всичките 4 бара. Долните необработени светодиоди ще започнат да се "движат", показвайки коя лента се възпроизвежда в момента (прогресия на лентата). Ще забележите, че само когато в първата лента ще се възпроизведе последователност, като всички останали 3 ленти не генерират звуци. Това е така, защото сте присвоили барабани само на първата лента, а останалите са оставени празни. Можете да ги попълните на ръка (изберете нова лента, като натиснете един от последните 4 бутона за стъпки, като държите натиснат „shift“, изберете един от барабаните, попълнете стъпките и т.н.) или копирайте и поставете създадената от вас лента до всички ленти, като влезете в режим на редактиране (повторно заключване към първата лента) и натиснете "запис" (който сега приема функцията "поставяне"), като същевременно държите натиснат "shift". По -лесно се прави от казаното.

БАБАНИ: РЕЖИМ НА ИГРА НА ЖИВО

При стартиране секвенсорът е в режим на редактиране. За да излезете от режима за редактиране, трябва да задържите натиснат "shift" и да натиснете бутона на лентата, който в момента е задържан/заключен (бутонът стъпка на 4 -ти ред е включен). Това ще изключи светодиода на предварително заключената лента и ще отключи последователността. Вече сте в режим на игра на живо.

В режим на възпроизвеждане на живо, чрез натискане на който и да е бутон за стъпка, барабанът, свързан с този бутон, ще се задейства.

Ако искате да запишете последователността си на живо, стартирайте последователността, като натиснете "play", след това натиснете бутона "record" (само в режим на възпроизвеждане на живо). Ще се включи червен светодиод. Вашето свирене на матрицата на контролния панел на барабанния секвенсор или всяко входящо съобщение за MIDI бележка (т.е. от външна MIDI клавиатура) ще бъде записано.

Други функции

Чрез натискане на бутона "roll", текущо активният барабан ще се свири на всяка стъпка (в рол). Това работи както в режимите „стъпка по стъпка“, така и в „на живо“.

Чрез натискане на който и да е бутон за стъпка, докато държите натиснат бутона "заглушаване", барабанът, свързан с тази стъпка, ще бъде заглушен (или включен). Това работи както в режимите „стъпка по стъпка“, така и в „на живо“.

Можете да изчистите конкретна последователност от барабани, като натиснете бутона за съответната стъпка, като същевременно държите натиснат бутона "REC".

Можете да изчистите цялата последователност (меко нулиране), като държите натиснат бутона "старт" за повече от 3 секунди.

Можете да "люлеете" последователността си, като завъртите потенциометъра "люлка".

Можете да деактивирате/активирате MIDI ехо, като натиснете бутона "заглушаване", като същевременно натиснете бутона "смяна". Когато MIDI ехото е активирано (по подразбиране), всяка информация, която присъства в гнездото MIDI INPUT, ще бъде изпратена към жака MIDI OUTPUT (само MIDI бележката е включена, бележката е изключена, височината на тона, последното докосване и промяната на контрола се озвучават).

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

Стъпка 6: Ритъмна секция

Първоначалната идея беше "чист" 64 стъпков MIDI барабанен секвенсор за секвениране на до 12 независими части на барабана. След известно тестване забелязах, че би било хубаво да се контролира и басова линия и присвоих характеристиката на променлива височина на стъпка само на най-новия барабан. След това промених кода отново, за да мога да променя височината във всеки барабан и да контролирам до 12 синтезатора. Ревизия по-късно добавих полифония (полифония на синтезатор е ограничена до 3 по подразбиране).

Да обобщим:

- докато сте в режим LIVE, ако записът LIVE е включен и последователността е започнала, можете да записвате входящи MIDI бележки за съобщения, полифонично. Ще се съхраняват информация за височината и силата на звука. Информацията за огъване на наклона и информация за последващ контакт се губят. Съобщенията за промяна на MIDI контрола ще се съхраняват. Имайте предвид, че имате само един CC слот на канал на стъпка.

- Ако последователността е спряна, можете да запишете до 3 стойности на височина (акорд) към конкретна стъпка от конкретна лента, като задържите натиснат бутона на стъпката на местоназначението и натиснете (едновременно или един по един) желаните клавиши на клавиатура, свързана към порта MIDI IN.

Забележи това:

- бележката, задействана при стъпка, се „убива“при следващата стъпка. За да увеличите дължината на нотата, действайте според параметъра „освобождаване“на VCA на вашия синтезатор.

- за разлика от барабаните, нотите не могат да се възпроизвеждат на ролка чрез натискане на бутона "roll".

- Когато записвате НА ЖИВО, данните за входящия MIDI канал се съхраняват в относителната стъпка "барабан" (MIDI канал #1 -> "барабан" #1 и така нататък).

Можете да изчистите конкретна последователност от синтезатор, като натиснете съответния бутон „барабан“, като държите натиснат бутона „ЗАПИС“. При повторно натискане ще изчистите и последователността на барабана. Ако е записана CC последователност, това ще бъде първото изтриване, след което следва реда CC -> Synth -> Drum

Стъпка 7: Задействания на Арпеджо

В началото на 80-те години преди MIDI синтезаторите често са оборудвани с понякога наричан „вход за задействане на арпеджио“. Чрез изпращане на тригърен сигнал от 2,5 до 5,0 V (V-триг или "тригер за напрежение") или чрез заземяване на входа за задействане на арпеджио (S-Trig или "превключващ тригер") можете да кажете на синтезатора да премине напред с една стъпка от арпеджио последователността. Това може да бъде трудно да се управлява с секвенсор без специален тригер (понякога звуци "rimshot" от специален изход, където/се използват като целесъобразно за V-триг синтезатори), но с микроконтролерна платка можете лесно да управлявате такъв сигнал и контрол вашето синтезаторно арпеджио, както беше предвидено от фабриката.

Този секвенсор за ритмична секция включва възможността да задейства арпеджиатора на два различни синтезатора, независимо.

Използването е много лесно: изберете барабан 11 или 12 (натиснете стъпка 11 или 12, докато натискате "shift") и активирайте стъпките, които искате арпеджиаторът да се премести на една стъпка. По този начин можете да "програмирате" много стегнати 1/16 от редовните арпеджио с дължина на нотата, като активирате всички стъпки, или 1/8, като активирате всяка друга стъпка. Освен това можете да програмирате по-сложни арпеджио, като активирате стъпки, следвайки нередовен път.

В зависимост от типа на задействащия сигнал, поддържан от синтезатора, който искате да контролирате, ще ви е необходима проста хардуерна модификация: в случай на V-тригън (т.е. синтезатори на Roland) поставете резистор от 1 Kohm последователно с изход за задействане на arduino. В случай на S-триг (т.е. Korg синтезатори) използвайте схемата, прикрепена към стъпката "окабеляване" за безопасен задействащ превключвател.

Стъпка 8: Ако нещата не работят …

Дори сравнително прост проект като този най -вероятно няма да работи 100% при първото му включване. Тук, например, съотношението между бутоните и светодиодите е от решаващо значение, а несъвършеното окабеляване ще направи секвенсора неизползваем.

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

Можете да изтеглите най -новия тестов фърмуер ТУК (връзка GitHub).

Тестовата скица работи както следва:

- натиснете стъпков бутон: съответният светодиод трябва да светне и MIDI бележка по канал 10 ще бъде изпратена към MIDI изхода.

- натиснете функционален бутон: един от първите 5 светодиода ще се включи.

-завъртете потенциометър: светодиодите ще светнат съответно (първи пот -> първи ред светодиоди, втори пот -> втори ред светодиоди, трети пот -> трети ред светодиоди).

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

Имайте предвид, че MIDI ехото е активирано по подразбиране. Това означава, че ако имате MIDI цикъл между синтезатор и MRSS, това може да причини проблеми (изпитвах предсказуема двойна бележка, която задейства повечето пъти, но също така задейства много ниски бележки и обикновено не реагираща вградена клавиатура със синтезатори с MIDI като действа като MIDI Throu … зависи от синтезатора). Ако случаят е такъв, деактивирайте MIDI ехото, като натиснете бутона "mute", като същевременно държите натиснат бутона "shift".

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