MIDI-арпеджиатор Arduino
Компоненты и расходные материалы
| × | 1 | ||||
| × | 7 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 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Производственный процесс
- Цифровые игральные кости Arduino
- Unopad - MIDI-контроллер Arduino с Ableton
- Железный человек
- Найди меня
- Беспроводные MIDI-адаптеры USB-BLE
- Роботизированная рука, напечатанная на 3D-принтере Arduino
- Управление увлажнителем Arduino
- Ворота бесконтактного мониторинга температуры
- NeoMatrix Arduino Pong
- Джойстик Arduino