Оглавление:

Секвенсор секции ритма MIDI Arduino: 8 шагов (с изображениями)
Секвенсор секции ритма MIDI Arduino: 8 шагов (с изображениями)

Видео: Секвенсор секции ритма MIDI Arduino: 8 шагов (с изображениями)

Видео: Секвенсор секции ритма MIDI Arduino: 8 шагов (с изображениями)
Видео: Модули MIDI для Arduino. Создавай и объединяй музыкальные инструменты. Железки Амперки 2024, Июль
Anonim
Секвенсор секции ритма MIDI Arduino
Секвенсор секции ритма MIDI Arduino
Секвенсор секции ритма MIDI Arduino
Секвенсор секции ритма MIDI Arduino
Секвенсор секции ритма MIDI Arduino
Секвенсор секции ритма MIDI Arduino

Сегодня иметь хорошую программную драм-машину легко и дешево, но использование мыши убивает мне удовольствие. Вот почему я понял то, что изначально задумывалось как чистый 64-шаговый аппаратный MIDI-секвенсор ударных, способный запускать до 12 различных барабанных элементов (партий), но затем превратился в секвенсор ритм-секции …

… Поехали!

Шаг 1. Как это работает

Это оборудование не может генерировать звуки само по себе, а только воспроизводит внешнее оборудование через MIDI. Это означает, что вам понадобится звуковой генератор звуков ваших ударных (сэмплер, синтезатор ударных или ПК с вашим любимым программным обеспечением для ударных или что-то еще), способный запускаться с помощью сообщений MIDI-ноты.

Он в основном состоит из матрицы кнопок 4 x 4 (со светодиодами), по одной для каждого шага полосы. Вся последовательность из 64 шагов состоит из 16 шагов, умноженных на 4 такта. Каждый шаг составляет 1/16 ноты.

Есть два режима работы: режим реального времени и режим редактирования.

В режиме редактирования вы можете пошагово редактировать свою последовательность, определяя, какой барабан будет играть на каждом шаге.

Ваш внешний аппаратный инструмент («барабан») запускается путем отправки MIDI-сообщения «note on» для разных «номеров MIDI-нот» на канале с номером «10». По умолчанию эти номера заметок

барабан №1 (т. е. бочка) -> номер MIDI-ноты «60»

барабан №2 (т.е. малый барабан) -> нота MIDI с номером "62"

барабан №3 (т.е. хлопок) -> номер MIDI-ноты "64"

барабан №4 (т.е. хихат) -> номер 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. Я старался сделать оборудование максимально простым, то есть избегая использования светодиодных драйверов. Arduino DUE, вероятно, не самая подходящая плата для работы с группой светодиодов без драйвера светодиода из-за ограничений по выходному току (от 5 мА до 15 мА, в зависимости от контакта), но это самый быстрый Arduino, и время имеет решающее значение при работе с секвенсорами. Итак, имейте в виду, что ЭТА аппаратная конфигурация, вероятно, подтолкнет вашу Arduino DUE к ее пределам и может повредить ее в долгосрочной перспективе.

При этом аппаратное обеспечение в основном представляет собой секвенсор с 16 кнопками, 16 светодиодами (по одному для каждого шага) с 5 дополнительными кнопками для функций и 3 потенциометрами. Я также добавил красный светодиод после добавления функции записи в реальном времени.

Вот список материалов:

- 1x Arduino DUE

- 16 кратковременных кнопок без фиксации со встроенными светодиодами (вы можете использовать внешние светодиоды, если хотите, но не забудьте использовать светодиоды с низким энергопотреблением !!)

- 1x красный светодиод (низкая мощность!)

- 5 кнопок мгновенного действия без фиксации

- 3 однооборотных линейных потенциометра по 10 кОм

- 3x 6.5 мм моноджек для панельного монтажа

- 1x пластиковый корпус (я использовал корпус 190x140x70 мм)

- 2x 5-контактных разъема DIN с розеткой для панельного монтажа (MIDI)

- 1x двусторонняя перфорированная плита 70x90 мм

- 2x 40-контактные однорядные штыревые планки (2,54 мм), лучше позолоченные

- 1x оптопара H11L1

- 1х диод 1N4148

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

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

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

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

Обратите внимание, что кнопки на изображениях были заменены кнопками другого типа (еще более дешевыми …) из-за возмутительного подпрыгивания …

Время, необходимое для выполнения проекта: 8-10 часов

ВНИМАНИЕ: ВСЕГДА надевайте защитные очки и перчатки при сверлении! Лепестки горячего материала могут попадать в глаза или контактировать с кожей и вызывать ожоги или даже более серьезные повреждения для вас или окружающих

Шаг 3: проводка

Проводки
Проводки
Проводки
Проводки
Проводки
Проводки

Пошаговые кнопки напрямую подключены к контактам Arduino от 22 (шаг 1) до 37 (шаг 16). Заземление кнопок соединено гирляндной цепью и подключено к заземлению Arduino DUE. Нет необходимости в подтягивающих или понижающих резисторах, поскольку встроенные в Arduino подтягивающие резисторы включаются программно (см. Рисунок).

То же самое верно и для дополнительных 5 кнопок (контакты Arduino 2, 3, 4, 5 и 6), используемых для функций, отличных от шагов. Я также разместил гнездовой разъем 6,5 мм параллельно кнопке «Пуск», чтобы иметь возможность воспроизводить и останавливать мои последовательности удаленно.

Светодиоды подключены к земле (гирляндная цепь) и контактам Arduino DUE от 38 (шаг №1) до 53 (этап №16) последовательно с резистором 1 кОм каждый, чтобы ограничить потребление тока и сохранить микроконтроллер.

Потенциометры подключаются, как показано на прилагаемом рисунке. Обратите внимание, что опорное напряжение составляет 3,3 В, а не 5 В. Используемые входы: A0, A1 и A2.

Я также реализовал два триггерных выхода для сигналов арпеджио, таких как те, которые необходимы для арпеджирования старых синтезаторов 80-х, таких как Korg Polysix и Roland Juno 6/60. Они подключаются к контактам A3 и A4, но вы можете использовать цифровые контакты, если предпочитаете использовать цифровые сигналы. В случае, если вы собираетесь секвенировать синтезатор, совместимый с сигналами V-Trig (триггер по напряжению), для уменьшения потребления тока будет достаточно последовательного резистора 1 кОм; в случае синтезатора 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.

Ноты MIDI-выхода, назначенные каждому барабану, определяются переменной drumNote [STEPS_NUM] в скетче. Вы можете изменить их по своему желанию.

Номер канала MIDI-выхода для ударных по умолчанию установлен на «10».

Я не программист в реальной жизни, и наверняка есть лучшие способы кодировать то, что нам здесь нужно. Если вы программист с любыми предложениями, добро пожаловать! Пожалуйста, пришлите мне любые вариации, которые могут повысить эффективность / действенность кода, и я включу их в основной набросок (очевидно, со ссылкой на автора!).

Шаг 5: Краткое руководство

БАРАБАНЫ: ПОШАГОВАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ

Как только вы включите свой секвенсор (или сбросите его), будет загружена пустая последовательность. Секвенсор загружается в режиме редактирования с удержанием / блокировкой первого такта и выбранным первым барабаном (т. Е. Бочкой). Это означает, что, нажав любую кнопку шага, вы немедленно назначите этим шагам «удар». Громкость срабатывания барабана устанавливается положением потенциометра «громкость» при назначении барабана на шаг. Повторным нажатием кнопки ранее назначенного шага вы отмените назначение текущего барабана на этом шаге.

Если вы нажмете кнопку «Пуск», вы увидите, что ваши светодиоды бегут слева направо, сверху вниз, воспроизводя «удар» каждый раз, когда пересекается шаг удара.

Удерживая нажатой кнопку «Shift», вы увидите, что светодиод 1-го шага в 1-м ряду включился (это означает, что выбран первый барабан) и светодиод первого шага в четвертом ряду (что означает, что вы привязаны к первой полосе). Теперь вы можете изменить барабан, на котором хотите установить последовательность, нажав другую кнопку шага, удерживая нажатой кнопку «Shift». Выбрав новый барабан, отпустите «Shift». Все светодиоды погаснут (поскольку вы не назначили новый барабан ни одному шагу), и вы можете начать назначать новый барабан шагам. Повторите для всех необходимых барабанов (до 12).

Теперь, когда вы создали красивый узор, удерживайте нажатой клавишу «shift» и выключите выделенный шаг в нижнем ряду (это должен быть 1-й шаг 4-го ряда, если вы выбрали тот же макет, который я использовал): у вас просто unlocked »последовательность, которая теперь будет проходить по всем 4 полосам. Нижние необработанные светодиоды начнут «двигаться», показывая, какой такт в данный момент воспроизводится (последовательность тактов). Вы заметите, что последовательность будет воспроизводиться только в первом такте, а все остальные 3 такта не будут издавать звуков. Это связано с тем, что вы назначили барабаны только первому такту, а остальные оставлены пустыми. Вы можете заполнить их вручную (выберите новый бар, нажав одну из последних 4 кнопок шага, удерживая нажатой кнопку «shift», выберите один из барабанов, заполните шаги и т. Д. И т. Д.) Или скопируйте и вставьте созданную вами последовательность тактов. ко всем барам, войдя в режим редактирования (повторно заблокируйте первый такт) и нажав «запись» (которая теперь принимает функцию «вставить»), удерживая нажатой клавишу «Shift». Легче сделать, чем сказано.

БАРАБАНЫ: РЕЖИМ LIVE PLAY

При запуске секвенсор находится в режиме редактирования. Чтобы выйти из режима редактирования, вы должны удерживать нажатой «shift» и нажать кнопку полосы, удерживаемую / заблокированную в данный момент (кнопка шага в 4-м ряду включена). Это выключит светодиод ранее заблокированной панели и разблокирует последовательность. Теперь вы находитесь в режиме прямой трансляции.

В режиме живого воспроизведения при нажатии любой пошаговой кнопки запускается барабан, связанный с этой кнопкой.

Если вы хотите записать свою секвенцию вживую, запустите секвенцию, нажав кнопку «воспроизведение», затем нажмите кнопку «запись» (только в режиме живого воспроизведения). Загорится красный светодиод. Ваша игра на матрице панели управления секвенсора ударных или любое входящее MIDI-сообщение о включении ноты (т. Е. С внешней MIDI-клавиатуры) будет записано.

Прочие функции

При нажатии кнопки «прокрутка» активный в данный момент барабан будет воспроизводиться на каждом шаге (в рулоне). Это работает как в пошаговом, так и в живом режиме.

При нажатии любой кнопки шага, удерживая нажатой кнопку «mute», барабан, связанный с этим шагом, будет отключен (или включен). Это работает как в пошаговом, так и в живом режиме.

Вы можете очистить определенную последовательность ударных, нажав соответствующую кнопку шага, удерживая нажатой кнопку «REC».

Вы можете очистить всю последовательность (мягкий сброс), удерживая нажатой кнопку «Пуск» более 3 секунд.

Вы можете «качать» свою последовательность, поворачивая потенциометр «качания».

Вы можете отключить / включить MIDI-эхо, нажав кнопку «Mute», удерживая нажатой кнопку «Shift». Когда 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 "Release" вашего синтезатора.

- в отличие от барабанов, ноты нельзя сыграть в рулоне, нажав кнопку «прокрутить».

- При записи LIVE входящие данные MIDI-канала сохраняются в относительном «барабанном» шаге (MIDI-канал №1 -> «барабан №1» и т. Д.).

Вы можете очистить определенную последовательность синтезатора, нажав соответствующую кнопку шага «барабан», удерживая нажатой кнопку «REC». Повторное нажатие удаляет и последовательность ударных. Если была записана последовательность CC, она будет удалена первой, а затем в следующем порядке: CC -> Synth -> Drum.

Шаг 7. Триггеры арпеджио

Синтезаторы pre-MIDI начала 80-х часто оснащены входом, который иногда называют «входом триггера арпеджио». Посылая триггерный сигнал от 2,5 до 5,0 В (V-триггер или «триггер по напряжению») или заземляя вход триггера арпеджио (S-Trig или «триггерный переключатель»), вы можете указать синтезатору продвинуться на один шаг в последовательности арпеджио. Этим может быть сложно управлять с помощью секвенсора без выделенного триггерного выхода (иногда звуки "римшота" из выделенного выхода, где / используются в качестве средства для синтезаторов V-триггера), но с платой микроконтроллера вы можете легко управлять таким сигналом и контролировать ваше синтезаторное арпеджио, как это было задумано на заводе.

Этот секвенсор ритм-секции включает возможность запускать арпеджиатор двух разных синтезаторов независимо.

Использовать очень просто: выберите барабан 11 или 12 (нажмите шаг 11 или 12, удерживая нажатой клавишу «shift») и активируйте шаги, которые вы хотите, чтобы арпеджиатор переместился на один шаг. Таким образом, вы можете «запрограммировать» очень плотные 1/16 ноты обычных арпеджио, активируя все шаги, или 1/8, активируя каждый второй шаг. Кроме того, вы можете запрограммировать более сложные арпеджио, активировав шаги по нестандартному пути.

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

Шаг 8. Если что-то не работает…

Даже такой относительно простой проект, скорее всего, не будет работать на 100% при первом включении. Здесь, например, соответствие между кнопками и светодиодами имеет решающее значение, а несоответствие проводов сделает секвенсор бесполезным.

Чтобы протестировать все различные компоненты, составляющие пошаговый секвенсор, я написал простой тестовый набросок (см. Приложение).

Вы можете скачать последнюю тестовую прошивку ЗДЕСЬ (ссылка на GitHub).

Тестовый скетч работает следующим образом:

- нажмите пошаговую кнопку: соответствующий светодиод должен загореться, и MIDI-нота на канале 10 будет отправлена на MIDI-выход.

- нажмите функциональную кнопку: загорится один из первых 5 светодиодов.

- поверните потенциометр: светодиоды загорятся соответственно (первый горшок -> первый ряд светодиодов, второй горшок -> второй ряд светодиодов, третий горшок -> третий ряд светодиодов).

- если получена MIDI-нота, первый светодиод будет мигать.

Имейте в виду, что по умолчанию MIDI-эхо включено. Это означает, что если у вас есть петля MIDI между синтезатором и MRSS, это может вызвать проблемы (в большинстве случаев я испытывал предсказуемое срабатывание двойной ноты, но также срабатывали очень низкие ноты и, как правило, не реагировала встроенная клавиатура с синтезаторами с MIDI. действует как MIDI Throu… это зависит от синтезатора). В этом случае отключите MIDI-эхо, нажав кнопку «Mute», удерживая нажатой кнопку «Shift».

Рекомендуемые: