Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

MIDI-арпеджиатор Arduino

Компоненты и расходные материалы

Arduino Nano R3
× 1
Поворотный потенциометр (общий)
× 7
Кнопочный переключатель SparkFun, 12 мм
× 7
MIDI-порт
× 1
Резистор 221 Ом
× 4
LED (общий)
× 2

Об этом проекте

Обновление 11.03.2019

Привет, создал новую прошивку для арпеджиатора, исходники полностью переписаны. Теперь модульная структура позволяет запускать арпеджио на разных платформах, а не только на Arduino. Также добавлены новые интересные функции в виде евклидовых рифм. Я вернусь с подробным описанием позже!

https://github.com/raszhivin/arpeggio2

Аппаратная часть осталась прежней, новые исходники совместимы со скетчем снизу.

Обновление 25.06.2019

Я создаю новое оборудование, посмотрите новое видео:

Введение

Электронная музыка - мое хобби, и мне очень нравится играть с моими ключами Korg Volca Keys. Некоторое время назад я познакомился с веб-приложением под названием «Chord Progression Arpeggiator» и был впечатлен мощностью и простотой музыкальных алгоритмов. Потратьте пару минут на приложение, и вы поймете, почему меня так вдохновила идея создания арпеджио на моем Korg. Видео «Korg Volca Keys красивые арпы! (и последовательность из 128 нот) »показывает введенные вручную ноты арпеджио, но это слишком сложно и негибко, чтобы вводить все ноты вручную.

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

Основы теории музыки

(Текст ниже взят из reddit, большое спасибо пользователю kmmeerts)

Итак, существует целый спектр шумов. Оказывается, каждый из этих шумов имеет основную частоту - скорость движения воздуха. Более низкая частота звучит, ну, более низкая частота, а более высокая частота мы воспринимаем как более высокий тон. Два разных инструмента, играющих на одном и том же инструменте, могут звучать по-разному, но они все равно будут казаться нам одной и той же нотой. Это различие называется тембром и позволяет отличить флейту от виолончели, играющую одну и ту же ноту. Это позволяет гармонично играть на самых разных инструментах.

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

Сама октава разделена на 12 нот, которые мы назвали:

[A, A #, B, C, C #, D, D #, E, F, F #, G, G #]

Это самые основные ноты в западной музыке, и они соответствуют белой и черной клавишам пианино. Вы можете видеть, что после каждых 12 клавиш шаблон повторяется. Почему 12? Это сложно и имеет долгую историю, но суть в том, что звучит лучше всего. Самые приятные интервалы хорошо представлены системой из 12 клавиш, чего не было бы с большим или меньшим количеством клавиш (хотя люди все же пытаются).

Из этих 12 нот формируются гаммы. Шкала - это набор нот, которые ... хорошо звучат вместе. В моем арпеджиаторе есть только гептатоническая диатоническая гамма, называемая модами. Гептатоника означает, что каждая гамма состоит из 7 нот, и практически вся западная музыка построена на этом. Диатоника связана с порядком интервалов между нотами. Например, гамма C-мажор - это просто ноты без резких знаков, начинающиеся с C:[C D E F G A B]. Каждая гамма происходит от основной ноты. Также есть крупная шкала, уходящая корнями в D:[D E F # G A B C #]. Шкалы определяются образцами того, какие ноты нужно пропустить. Основная шкала - [W W H W W W H], где W означает «сделать заметку и пропустить одну», а H означает «сделать заметку». В других режимах используются другие шаблоны создания и пропуска заметок.

Для каждой из этих семи нот есть связка аккордов. Используемые здесь аккорды просты:начиная с ноты, возьмите три ноты, каждый раз пропуская одну в той гамме, которую мы используем. Таким образом, в нашей простой гамме до мажор (CDEFGAB) аккорд V (V =пять, поэтому на пятой ноте) будет G (пропустить A) B (перебрать, пропустить C) D, поэтому GBD. Этот паттерн можно повторять, поднимаясь на октаву (6 нот:GBDGBD). Арпеджио (по-итальянски «сломанный») просто играет эти ноты по одной, а не все вместе.

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

Схема

Схема моего арпеджиатора довольно проста, она состоит из 7 потенциометров, 7 кнопок, MIDI-порта, 2 светодиодов и 4 резисторов. Его можно легко собрать на макетной плате, как показано ниже, но если вы новичок в мире Arduino, было бы намного лучше, если бы вы сначала начали с следующих руководств:

https://www.arduino.cc/en/main/howto

https://www.arduino.cc/en/Tutorial/Blink

https://www.arduino.cc/en/Tutorial/InputPullupSerial

https://www.arduino.cc/en/tutorial/potentiometer

https://www.arduino.cc/en/Tutorial/Midi

Элементы управления

Потенциометры:

  • Октава тонической ноты (0..7)
  • Октава аккорда (0..7)
  • Задержка между нотами в прогрессии (ударов в минуту)
  • Тонизирующая / основная нота (C ... B)
  • Шаги арпеджио (1 ... 5)
  • Музыкальный режим (ионический, дорийский ...)
  • Стиль арпеджио (восходящий, нисходящий, восходящий + нисходящий, случайный)

Кнопки:при нажатии кнопки воспроизводится соответствующая последовательность аккордов.

Демонстрация

В первом видео я описываю функциональность устройства и его элементы управления:

На втором видео показан небольшой джем с арпеджиатором:

Синхронизация

Вы можете синхронизировать темп арпеджио с Korg Volca:подключите аудиоразъем арпеджиатора к «SYNC OUT» синтезатора. Убедитесь, что исходный код настроен правильно в arpeggiator.ino :

// Синхронизация:выбираем один из двух возможных вариантов:

#define EXT_SYNC

// # определяем INT_SYNC

Раскомментируйте EXT_SYNC для синхронизации через SYNC IN или INT_SYNC для управления темпом через поти.

Буду рад каждому отзыву и комментарию, если у вас есть идеи, как улучшить устройство - оставьте, пожалуйста, комментарий.

Удачи и удачи!

Код

Исходный код
https://github.com/raszhivin/arpeggiator

Схема

для Fritzing arpeggiator_LICtzK2a2Q.fzz

Производственный процесс

  1. Цифровые игральные кости Arduino
  2. Unopad - MIDI-контроллер Arduino с Ableton
  3. Железный человек
  4. Найди меня
  5. Беспроводные MIDI-адаптеры USB-BLE
  6. Роботизированная рука, напечатанная на 3D-принтере Arduino
  7. Управление увлажнителем Arduino
  8. Ворота бесконтактного мониторинга температуры
  9. NeoMatrix Arduino Pong
  10. Джойстик Arduino