USB MIDI контроллер на Arduino

В данной статье я хочу показать, как можно на недорогом контроллере Arduino изготовить простейшую MIDI-клавиатуру с USB-подключением на 8 клавиш и колесом прокрутки.
Итак, я использовал:
контроллер Arduino UNO
8 шт. кнопок
8 резисторов 10 кОм
поворотный энкодер 25LB22-Q
макетная плата и перемычки
Схема подключения следующая:

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

Энкодер подключен к входам аппаратного прерывания, описание работы с ним я рассматривать не буду, т.к. программа проста и взята с официального сайта Arduino.

В данном проекте энкодер используется как колесо прокрутки для изменения модуляции (modulation wheel), однако его можно переназначить и для других целей (pitch bend и т.п.).

MIDI-данные от энкодера, с Arduino посылаются следующей строкой:
noteOn(0xB0, 0x01, encoder0Pos);
где 0xB0 - сообщение контроллера (control change)
0x01 - код контроллера (в нашем случае Modulation)
encoder0Pos - значение контроллера (в нашем случае 0-127).
Меняя коды контроллера вы можете использовать колесо прокрутки (энкодер) для самых разных контроллеров.

Отдельно стоит упомянуть Pitch Bend. Из спецификации MIDI следует, что необходимо послать сообщение из трех байт: 0xE0 (код Pitch Bend), MSB (старший байт), LSB (младший байт).

Два крайних байта хранят 14-битное значение pitch которое может лежать в пределах 0...16383 (0x3FFF). Середина находится 0x2000, все что выше этого значения - происходить изменение высоты тона вверх, если ниже, то высота тона изменяется вниз.
В коде программы я закомментировал строчки если вы вдруг вместо modulation захотите использовать Pitch Bend (середина значения, разложение на 2 байта и др.)

Код определения нажатия клавиши включает в себя три состояния: клавиша нажата, клавиша удерживается и клавиша отпущена. Сделано это для того, чтобы можно было передавать значение длительности нажатия клавиши. Если это не нужно, то можно оставить только одно состояние (нажатие клавиши), программа в данном случае существенно упростится.


Схема простого микшера для нескольких источников звукового сигнала

   При воспроизведении музыкаль­ных произведений через усилитель­ные устройства в некоторых случаях возникает необходимость выделить солирующий инструмент или голос, подобрать наиболее приятный тембр звучания и т. п. Для этого применя­ются так называемые микшеры.

Они используются также тогда, когда нужно соединить две разнородных передачи, так например, воспроиз­вести речь на фоне музыки.
Принципиальная схема простого микшера приведена на рис. 1
рис.1
Этот микшер предназначен для подклю­чения к звукоусилителям киноуста­новок, но может быть присоединен и к другим аналогичным усилителям НЧ. Как видно из схемы, микшер состоит из каскада предварительного усиления НЧ, который имеет нес­колько входов, предназначенных для подключения микрофонов, располо­женных около различных музыкаль­ных инструментов, а также вход, позволяющий присоединить к мик­шеру приемник или магнитофон. Каждая входная цепь имеет регулируемые корректирующие ячей­ки и все цепи хорошо развязаны между собой. Это дает возможность осуществить микширование. Потен­циометр R16 служит для подбора со­отношения громкостей двух разно­родных передач при их смешивании. Микшер имеет низкоомный выход, что позволяет подключить его неэкранированным кабелем к оконечному усилителю, находящемуся на боль­шом расстоянии. Микшер питается от одной батареи КБС-Л-0,5. Конструк­ция его может быть различной, налаживание сводится к подбору деталей, отмеченных на схеме звез­дочкой. Между микрофонами (МД-41 или другими динамическими) и выходами микшера в непосредственной близо­сти от первых необходимо установить простейшие микрофонные усилители, схема которых показана на рис 2. 
Рис.2
В этих усилителях применены малошумящие транзисторы П10 типа п—р—п. Можно также использовать р—п—р транзисторы (П14—П16), но при этом необходимо тщательно подобрать экземпляр с наименьшим уровнем собственных шумов. Микрофонные усилители можно смонти­ровать в подставке микрофона или непосредственно в кабеле. Они пита­ются от батареи микшера. Поэтому необходимо пометить полярность входных гнезд микшера и вилок микрофонных кабелей или применять для включения микрофонов спе­циальные фишки. Точно также сле­дует поступить с выходными гнез­дами микшера и вилкой кабеля к оконечному усилителю, так как включение здесь также не безраз­лично.
РАДИО №2, 1964.    Москва, Б. МИНИН. 
http://centaurs.ucoz.ru

Различные,интересные решение цветомузыки


А теперь немного практики! 3-х канальная Цветомузыкальная установка

Приведена схема самой примитивной цветомузыкальной установки на три канала. Данная ЦМУ включает простейшие пассивные фильтры на RC элементах, сигналы с выхода которых управляют тиристорными ключами. Излучатели питаются от источника постоянного напряжения 220 В


Схема 3-х канальной цветомузыкальной установки
Верхним по схеме является фильтр НЧ, настраиваемый на частоту 100...200 Гц, ниже по схеме идет полосовой фильтр СЧ (200...6000 Гц), а внизу — фильтр ВЧ (6000...7000 Гц). Каналам НЧ, СЧ и ВЧ соответствуют лампы красного, зеленого и синего цветов. Поскольку данная схема не содержит предварительного усилителя, входной сигнал должен иметь амплитуду 0,8...2 В. Уровень сигнала регулируется с помощью резистора R1. Резисторы R2, R3. R4 предназначены для регулирования уровней сигнала по каждому каналу в отдельности.
Трансформатор ТР1 выполняется на сердечнике Ш16х24 из трансформаторной стали. Обмотка I содержит 60 витков провода ПЭЛ 0,51. обмотка II — 100 витков ПЭЛ 0,51. Может использоваться и любой другой малогабаритный трансформатор (например, от транзисторных приемников) с соотношением витков в обмотках близким к 1:2. Тиристоры необходимо установить на теплоотводя-щие радиаторы в том случае, если суммарная мощность ламп на один канал будет превышать 200 Вт.
Представленная 3-х канальная ЦМУ очень проста в изготовлении, однако обладает множеством недостатков. Это, во-первых, большой требуемый входной уровень сигнала, во-вторых, малое входное сопротивление, в-третьих, резкое мигание ламп, вызванное отсутствием компрессии и примитивизмом применяемых фильтров.
http://cxem.net

Немного теории


Немного теории

Фильтры типа k. Низкочастотные, высокочастотные, полосовые и заграждающиеФильтрами нижних частот (ФНЧ) называются фильтры, пропускающие в нагрузку только низкие частоты: от w1 = 0 до w2. Полоса затухания у них находится в интервале от w2 до ¥. Построение ФНЧ и их характеристики показаны на рис. 12.2.
Рис. 12.2. Т-образная (а) и П-образная (б) схемы ФНЧ, а также их характеристики (с)
Под фильтрами верхних частот (ФВЧ) понимают фильтры, пропускающие в нагрузку только высокие частоты: от w1 до ¥. Полоса затухания у них находится в интервале от 0 до w1. Построение ФВЧ и их характеристики показаны на рис. 12.3.Для Т-образного фильтра нижних частот. (12.1)
Рис. 12.3. Т-образная (а) и П-образная (б) схемы ФВЧ, а также их характеристики (с)При w = w1 = 0 . С увеличением частоты ZC уменьшается, сначала мало отличаясь от значения  При  характеристическое сопротивление ZC = 0.Для П-образного фильтра нижних частот. (12.2)
Для Т-образного фильтра верхних частот. (12.3)
Характеристическое сопротивление ZС = 0 при . С увеличением w сопротивление ZСувеличивается и при w → ¥ .
Если фильтр предназначен для работы на частотах, находящихся внутри полосы прозрачности данного фильтра и относительно далеко отстоящих от значения w, при котором ZС = 0, то сопротивление Zнфильтра НЧ выбирают равным ZС, которое соответствует w = w1 = 0. Для Т-фильтра .
Для фильтров ВЧ обычно нагрузку согласовывают со значением ZC при . Для Т-фильтра ВЧ . В полосе затухания ZC оказывается чисто реактивным для всех фильтров. Для определения характера ZC в этой зоне определяют характер входного сопротивления фильтра в режиме холостого хода или короткого замыкания: для фильтров НЧ при очень высокой частоте и для фильтров ВЧ – при низкой частоте. В зоне затухания ZC имеет индуктивный характер для Т-фильтра НЧ и П-фильтра ВЧ и емкостный характер для П-фильтра НЧ и Т-фильтра ВЧ.
Полосовые фильтры представляют собой фильтры, пропускающие в нагрузку лишь узкую полосу частот от w1 до w2. Справка от w2 и слева от w1 находятся полосы затухания (рис. 12.4).Формулы для определения параметров полосового фильтра по заданным частотам f1 и f2 и сопротивлению нагрузки фильтра ZC при .
Рис. 12.4. Схема полосового фильтра и его характеристики(12.4)Под заграждающими фильтрами понимают фильтры, в которых полоса прозрачности как бы разрезана на две одинаковые половины полосой затухания. Слева от w1 и справа от w2 находятся две части полосы прозрачности.Схема заграждающего фильтра и его характеристики представлены на рис. 12.5.По схеме k-фильтра можно определить, к какому виду он относится. Если в ветви сопротивлений стоят только индуктивности, то фильтр относится к типу НЧ. Если в ветви сопротивлений – емкость, то это фильтр ВЧ.Если в ветви сопротивлений находятся последовательно соединенные элементы L и C, то фильтр полосового типа. Если параллельно соединенные элементы L и C, то получится заграждающий фильтр.
Рис. 12.5. Схема заграждающего фильтра (а), его полоса прозрачности (б), характер изменения угла (в) и сопротивления (г)
toe-kgeu.ru

Популярные сообщения