Интеллектуальный физический интерфейс MIDI
INTELLIGENT PHYSICAL MIDI INTERFACE

Изобретение относится к области электронных музыкальных инструментов, в частности к устройствам обучения игры на музыкальном инструменте, и представляет собой аппаратно-программное устройство.
В описании использованы следующие сокращения.
MIDI (англ. Musical Instrument Digital Interface - цифровой интерфейс музыкальных инструментов) - стандарт цифровой звукозаписи на формат обмена данными между электронными музыкальными инструментами.
UWB (англ. Ultra-Wide Band - сверхширокая полоса) - беспроводная технология связи на малых расстояниях при низких затратах энергии, использующая в качестве несущей сверхширокополосные сигналы с крайне низкой спектральной плотностью мощности.
Bluetooth (от слов англ. blue - синий и tooth - зуб) - производственная спецификация беспроводных персональных сетей.
Wi-Fi (англ. Wireless Fidelity - беспроводная точность) - технология беспроводной локальной сети.
В 1982 г. был анонсирован стандарт MIDI. Все современные цифровые музыкальные инструменты сделаны на основе этого стандарта. Схематично любой цифровой музыкальный инструмент состоит из двух частей. Первая - это сама MIDI-клавиатура, на которой музыкант исполняет мелодию. Клавиатура может иметь вид как у пианино или баяна, иметь различное число клавиш или октав. Вторая - это так называемый синтезатор, устройство для воспроизведения мелодии, которую музыкант исполняет на MIDI-клавиатуре.
MIDI-клавиатура и синтезатор соединены двухпроводным кабелем, по которому синтезатору передаются действия музыканта на MIDI-клавиатуре, т.е какие клавиши (ноты) нажаты, с какой скоростью, какие клавиши (ноты) отжаты - это основные команды.
С момента создания стандарт MIDI непрерывно дорабатывается, расширяется, усовершенствуется, но для музыканта-исполнителя практически ничего не меняется. Например, игра на цифровом пианино требует тех же навыков, что и на классическом механическом пианино, и в этом смысле стандарт MIDI не предложил исполнителю ничего нового, кроме различных звуковых спецэффектов на синтезаторе.
Не так давно в синтезаторах стал применяться "автоаккомпанемент", когда мелодии, исполняемой музыкантом, могут подыгрывать другие виртуальные инструменты вплоть до оркестра, но и в этом случае исполнитель должен уметь играть и правильно попадать в ноты.
Наиболее близким аналогом заявляемого изобретения является устройство, известное из патента US 7718885, представляющее собой музыкальный синтезатор, поток управляющего сигнала которого генерируется «вживую». Музыкант играет на клавиатуре, которая генерирует поток управления, такой как поток MIDI. Небольшая задержка между получением потока MIDI и синтезом звука используется, чтобы начать следующий переход нот перед переключением нот.
Однако данное решение не позволяет подставлять правильные ноты мелодии во время игры музыканта.
Технической проблемой, на решение которой направлено изобретение, является создание устройства, позволяющего подставлять правильные ноты мелодии во время игры на клавишном инструменте.
Техническим результатом является решение заявленной технической проблемы.
Заявленный технический результат достигается благодаря тому, что интеллектуальный физический интерфейс MIDI выполнен с возможностью подключения к MIDI-клавиатуре и синтезатору и содержит микроконтроллер, энергонезависимую память, устройство управления, формирователь сигнала для входа MIDI и формирователь сигнала для выхода MIDI, при этом энергонезависимая память выполнена с возможностью сохранения файла с нотами мелодии, микроконтроллер выполнен с возможностью обработки файла с нотами мелодии для старт-стопного воспроизведения нот мелодии и отправки на синтезатор команд в соответствии с обработанным файлом вместо команд для проигрывания нот, получаемых с MIDI-клавиатуры.
Заявляемое устройство может быть применено с любыми цифровыми музыкальными инструментами, использующими интерфейс MIDI, например, цифровые пианино, цифровые баяны, аккордеоны или просто сама клавиатура MIDI любой конструкции. При этом сами музыкальные инструменты не требуют никакой доработки. Заявляемое устройство даёт возможность любому человеку, не имеющему музыкальной подготовки, играть на этих инструментах, т.е. ему необязательно "попадать в ноты", т.к. при нажатии любых клавиш на выходе звучат правильные ноты. Очень важно, что исполнитель при этом может управлять темпом исполнения от очень медленного (вплоть до остановки) до очень быстрого, а также громкостью - от "очень громко" (фортиссимо) до "очень тихо" (пианиссимо). Сочетание этих факторов дает полное ощущение творческой игры и самовыражения как для самого исполнителя, так и для его слушателей, поскольку у разных исполнителей будет различным и стиль исполнения, и индивидуальность. Более того, один и тот же исполнитель может интерпретировать одно и то же произведение по-разному, при этом ему не требуется нотная грамотность. Главное - человек как бы "перешагивает" через долгие и утомительные упражнения-гаммы для тренировки техники, когда уже на уровне подсознания пальцы "знают", где нужные клавиши-ноты.
Заявляемое устройство может быть применимо в развлекательных целях, для домашнего музицирования, музыкотерапии, аккомпанемента при любительском пении, как интеллектуальная музыкальная игрушка для детей, развивающая музыкальный вкус.
Изобретение поясняется с помощью фиг. 1-7, на которых показаны:
Фиг. 1 - подключение интеллектуального физического интерфейса MIDI;
Фиг. 2 - устройство интеллектуального физического интерфейса MIDI;
Фиг. 3 - алгоритм работы интеллектуального физического интерфейса MIDI;
Фиг. 4 - структура обработанного файла;
Фиг. 5 - структура блока А;
Фиг. 6 - структура блока Б;
Фиг. 7 - структура блока В;
На фиг. 1-7 позициями 1-13 обозначены:
1 - интеллектуальный физический интерфейс MIDI;
2 - MIDI-клавиатура;
3 - синтезатор;
4 - двухпроводный кабель;
5 - микроконтроллер;
6 - энергонезависимая память;
7 - устройство управления;
8 - формирователь сигнала для входа MIDI;
9 - формирователь сигнала для выхода MIDI;
10 - разъём входа MIDI;
11 - разъём выхода MIDI;
12 - разъём блока питания;
13 - корпус.
Интеллектуальный физический интерфейс MIDI 1 состоит из микроконтроллера 5, энергонезависимой памяти 6 и устройства управления 7, формирователя сигнала для входа MIDI 8 и формирователя сигнала для выхода MIDI 9, конструктивно размещённых в одном корпусе 13. На корпусе установлены разъём входа MIDI 10, разъём выхода MIDI 11, разъём блока питания 12.
Формирователи сигнала для входа и выхода MIDI 8 и 9 соответствуют стандарту MIDI и предназначены для согласования электрических уровней микроконтроллера 5 и физического интерфейса MIDI. Они работают после включения питания микроконтроллера 5.
Микроконтроллер 5 выполнен в виде чипа типа STM32F407 или ему подобного и содержит микропроцессор, память программы и данных, периферийные устройства. В данном случае используются два периферийных устройства - последовательный асинхронный интерфейс: один для приема, другой для передачи данных MIDI со скоростью 31250 бит в секунду.
Энергонезависимая память 6 предназначена для хранения нот мелодий в виде стандартных MIDI файлов и взаимодействует с микроконтроллером 5 по последовательному интерфейсу.
Устройство управления 7 позволяет с любого смартфона или другого персонального электронного устройства задавать режимы работы устройства, выбирать мелодии и осуществлять другие сервисные функции. Устройство управления 7 может быть выполнено беспроводным с использованием технологий Bluetooth, UWB, Wi-Fi и др. Устройство управления 7 может быть выполнено проводным, например, в виде пульта управления.
Разъём входа MIDI 10 предназначен подсоединения двухпроводным кабелем 4 MIDI-клавиатуры 2, а разъём выхода MIDI 11 - синтезатора 3.
В памяти программ микроконтроллера 5 хранится программа, которая выполняет весь алгоритм работы интеллектуального физического интерфейса MIDI 1.
Устройство используют следующим образом.
Интеллектуальный физический интерфейс MIDI 1 включают между MIDI-клавиатурой 2 и синтезатором 3 в разрыв физического интерфейса MIDI, как показано на фиг.1.
Интеллектуальный физический интерфейс MIDI 1 имеет два основных режима работы: прозрачный и интеллектуальный.
В прозрачном режиме устройство пропускает все данные без изменений от MIDI-клавиатуры 2 к синтезатору 3, т.е. реализуется простой физический интерфейс MIDI и интеллектуальный физический интерфейс MIDI 1 не задействован, т.е. музыкант играет как обычно.
В интеллектуальном режиме в энергонезависимую память 6 загружают ноты мелодии, которую исполнитель собирается играть на MIDI-клавиатуре 2. При нажатии исполнителем клавиши от MIDI-клавиатуры 2 к синтезатору 3 передается команда "Включить ноту", а при отпускании - команда "Выключить ноту".
Каждая команда состоит из трех байт:
- 1-ый байт - код команды (включить или выключить);
- 2-ой байт - номер ноты от 1 до 127 (нумерация согласно стандарту MIDI);
- 3-ий байт - скорость нажатия клавиши для команды "Включить ноту", для команды "Выключить ноту" не используется.
Эти данные обрабатывает микроконтроллер 5.
Когда исполнитель нажимает какие-то клавиши (неважно какие) на MIDI-клавиатуре 2, данные поступают на обработку в микроконтроллер 5 интеллектуального физического интерфейса MIDI 1, и затем, уже изменённые соответственно нотам мелодии загруженного файла, эти данные направляются на синтезатор 3.
Таким образом, исполнитель только инициирует передачу правильных нот на синтезатор 3, но не обязан в них попадать.
Скорость нажатия клавиш, соответствующая громкости, задаётся исполнителем. При каждом нажатии клавиш исполнителем интеллектуальный физический интерфейс MIDI 1 передаёт очередные ноты мелодии, подготавливает следующие ноты и входит в режим ожидания нажатия клавиш исполнителем. Поэтому общий темп мелодии также задаёт исполнитель частотой нажатия клавиш. Однако соотношение длительностей нот между собой в мелодии поддерживает интеллектуальный физический интерфейс MIDI 1 согласно текущей партитуре мелодии. Эти операции выполняет программно-реализованный алгоритм в микроконтроллере 5.
Блок-схема алгоритма работы интеллектуального физического интерфейса MIDI 1 представлена на фигуре 3.
Ромбом с буквой «С» обозначены события или условия, которые предполагают выбор действия, прямоугольником с буквой «Д» - сами действия.
Событие С1
После включения питания посредством разъёма блока питания 12 интеллектуальный физический интерфейс MIDI 1 ожидает команды от устройства управления 7 - номера загруженного MIDI-файла (мелодии).
Действие Д1
Далее микроконтроллер 5 считывает из энергонезависимой памяти 6 соответствующий MIDI-файл и преобразует его в вид, удобный для старт-стопного выполнения мелодии, получая обработанный файл. Это ключевой момент для всего алгоритма интеллектуального физического интерфейса MIDI 1. Стандартный MIDI-файл предназначен для непрерывного исполнения мелодии, команды "Включить ноту", "Выключить ноту" привязаны ко внутреннему программному синхрогенератору и не содержат в явном виде длительностей нот.
Структура выполняемого обработанного файла представлена на фигуре 4.
Обработанный файл представляет собой чередование блоков трёх типов: А, Б, В. Блок А - переменной длины и может включать от одной до нескольких записей. Каждая запись - это команда типа "Включить ноту", т.е. какие ноты мелодии нужно послать на синтезатор 3 в текущий момент времени (фиг. 5). Блок Б всегда включает только одну запись - это длительность в миллисекундах самой короткой ноты (или группы нот) из предшествующего блока А (фиг. 6). Блок В - переменной длины и может включать от одной до нескольких записей. Каждая запись - это команда типа "Выключить ноту", т.е. звучание каких нот мелодии нужно прекратить синтезатору 3 в текущий момент времени (фиг. 7). Каждый блок имеет свою метку для распознавания.
Действие Д2
Считывается очередной блок типа А, но команды типа "Включить ноту" пока не передаются на синтезатор 3.
Событие С2
Это событие состоит в нажатии исполнителем одной или нескольких клавиш на MIDI-клавиатуре 2, после чего выполняется действие Д3.
Действие Д3
Происходит подсчёт частоты нажатий клавиш на MIDI-клавиатуре 2 исполнителем за 1 секунду.
Во всех командах "Включить ноту" (блока А из Д2) скорость нажатия клавиши (громкость - 3-ий байт) заменяются текущей скоростью нажатия клавиш исполнителем на MIDI-клавиатуре 2.
Все команды "Включить ноту" (блока А из Д2) передаются на синтезатор 3, и соответствующие ноты начинают звучать.
Затем считывается блок Б (наименьшая длительность ноты или группы нот из блока А). Эта длительность изменяется обратно-пропорционально частоте нажатий клавиш исполнителем на MIDI-клавиатуре 2 и заносится в программный таймер микроконтроллера 5 интеллектуального физического интерфейса MIDI 1.
Событие С3
В этом событии каждую миллисекунду вычитается «1» из величины в программном таймере, при равенстве нулю осуществляется переход к действию Д4.
Действие Д4
Считывается очередной блок типа В командами "Выключить ноту", эти команды сразу же передаются на синтезатор, и соответствующие ноты прекращают звучание.
Событие С4
Если выполняемый обработанный файл закончился, осуществляется переход к анализу события С1 - ожидание новой команды от устройства управления 7, иначе - к действию Д2, т.е. мелодия продолжается.
Таким образом, из рассмотренного алгоритма видно, что какие бы клавиши исполнитель не нажимал, на синтезатор 3 приходят правильные ноты. Но при этом исполнитель может менять темп мелодии, останавливаться и продолжать с того же места, менять громкость исполнения, т.е. имеет возможность художественного самовыражения путем этих динамических оттенков.