MIDI-обработка электронного органа: 6 шагов
MIDI-обработка электронного органа: 6 шагов
Anonim
MIDI-обработка электронного органа
MIDI-обработка электронного органа

Эта инструкция поможет вам взять старый нелюбимый электронный орган, который есть у вас в гараже или подвале, и преобразовать его в современный музыкальный инструмент. Мы не будем слишком подробно останавливаться на деталях конкретного органа, который у вас есть, кроме как сказать, что по сути типичная музыкальная клавиатура - это набор клавиш, которые при нажатии подключаются к общей шине. В старом мире наряду с клавишами существовали значительные схемы, которые вынуждали передавать выходной сигнал на шину, который, в свою очередь, усиливался и передавался в аудиосистему. Сегодня клавиатура - это набор датчиков; мы считываем состояние отдельных клавиш и отправляем изменения в программный синтезатор, который управляется командами MIDI.

Инструктаж охватывает большую часть вовлеченного процесса, от сбора цифрового состояния ключей, управления им с помощью микропроцессора Arduino, создания потока данных MIDI и передачи его на компьютер (включая Raspberry Pi), на котором запущен синтезатор.

Шаг 1: абстрагирование клавиатуры

Ниже представлен абстрактный электронный орган, в котором каждая строка представляет собой набор клавиш, упоров или других переключателей управления. Записи столбца 0 представляют отдельные клавиши, а - шину, к которой подключается клавиша при ее нажатии. Великое руководство с 61 клавишей может быть первым рядом, Swell Manual - вторым рядом, педали - третьим, стопы и т. Д. - четвертым. Строки фактически содержат 64 элемента из-за его цифрового значения как степени 2 сверх 61. В рядах клавиатуры клавиши соответствуют обычным музыкальным соглашениям с C слева.

Автобус 0-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Автобус 1 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Автобус 2 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Автобус 3 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Каждая шина независима и электрически изолирована от своих аналогов. Первые 8 элементов выделены жирным шрифтом, а 8 таких блоков расположены выше. На следующем этапе подробно описывается печатная плата, которая работает с выделенными жирным шрифтом элементами и другими 7 их блоками.

Ключи были представлены выше как 0. Мы можем пойти немного дальше и сказать, что при нажатии клавиши отображается цифровая 1, а в противном случае - 0. И клавиши могут быть обычными музыкальными белыми плоскими или черными диезами, или педалями органа, или упорами органа, или набором поворотных переключателей, которые могут дать нам тон саксофона. Мы просто рассматриваем инструмент как набор переключателей на наборе шин и, по сути, цифровой поток нулей и единиц.

Шаг 2. Подключение к клавиатуре

Проводка от клавиатур
Проводка от клавиатур
Проводка от клавиатур
Проводка от клавиатур

Чтобы помочь с подключением клавиатур, с помощью Eagle CAD была создана печатная плата. Его размер составляет около 96 мм на 43 мм, и требуется 8 мм, которые проходят через заднюю часть клавишных сборок органа.

Давайте подробно рассмотрим эту печатную плату (PCB). Левое изображение - это лицевая сторона печатной платы, на которую устанавливаются компоненты, а правое - ее задняя сторона, на которой мы припаяем компоненты.

Во-первых, компоненты 2X3 наверху предназначены для подключения к клавишам выше, при этом две верхние соединительные шины 0 и 1, следующая пара 2 и 3, а нижняя пара также шины 2 и 3. Было обнаружено, что печатная плата Разъем 2X3 был достаточно жестким, чтобы в нем можно было разместить одножильный соединительный провод от ключей, просто вставленных в разъем, аналогично проводке экрана Arduino. Соединительная проволока, которую я использовал, была извлечена из оригинального органа; это диаметр 0,75 мм.

Таким образом, каждый заголовок 2x3 вмещает столбец клавиш, выделенных жирным шрифтом, или, в широком смысле, одно примечание. Таким образом, для платы требуется 8 таких заголовков. Изображение содержит один из этих женских заголовков вверху слева. Средняя часть платы заполнена 32 диодами (1N4148 или аналогичными), каждый из которых соответствует одному из красных входов. Полярность диода указана на плате, катод (черная полоса) находится на верхнем конце платы. Один диод показан в позиции 4. Наконец, один штыревой разъем 2X5 заполняет нижнюю часть платы. Его верхние 2 контакта не соединены. Контакт 1 расположен в правом нижнем углу и подключается к крайним левым 4 диодам, контакт 2 - к диодам 5-8 и, наконец, 29-32 подключается к контакту 8. Заголовок может быть вырезан из более длинной секции DIL, как показано на доска. Проводка между различными компонентами осуществляется внутри самой печатной платы, при этом требуется только пайка диодов и разъемов.

8 из этих полных досок устанавливаются непосредственно под руководствами с использованием предусмотренных монтажных отверстий, удобно растягиваясь по всему органу. Таким образом, функция этой платы состоит в том, чтобы взять один блок из 8 ключей по 4 шинам и подать его на штекерный разъем, к которому будет подключен 10-канальный ленточный кабель для передачи на следующий этап. Дизайн платы можно загрузить из предоставленного zip-файла.

Шаг 3. Объединение выводов клавиатуры в регистры сдвига

Объединение выходов клавиатуры в регистры сдвига
Объединение выходов клавиатуры в регистры сдвига

Требуются еще две печатные платы, как показано выше. Они известны как DIN R5 и популярны в мире MIDI, хотя они просто предоставляют функцию регистра сдвига. Во-первых, в верхней горизонтальной части вы можете увидеть 4 штекерных разъема 2X5, которые через ленточный кабель подключаются к аналогу 2X5 на 8 платах выше. Нам нужны две платы DIN для размещения наших 8 таких кабелей.

Далее по плате находятся микросхемы IC, которые образуют 32-битный регистр сдвига, и, наконец, нас интересуют еще два заголовка 2X5, один из которых (J2) соединяется с другими платами DIN (наша вторая), а другой J1 - с наш Arduino или Arduino-подобный микропроцессор.

Подводя итог, у нас есть -

  • До 4-х шин с 64-клавишным вводом
  • 8 плат по 32 входа, 8 выходов на шину
  • эти 64 выхода подаются на 2 32-битных регистра сдвига
  • микропроцессор Arduino будет переключаться между шинами

Шаг 4: Собираем оборудование вместе

Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе
Собираем оборудование вместе

Соединения между Arduino, двумя платами DIN и ленточными кабелями из комплекса органных клавиш показаны на рисунке выше. Обратите внимание, что J2 второго DIN просто оставлен пустым.

В разъемах используется технология IDC (контакт смещения изоляции), и провода не нужно зачищать или разъединять. Они наносятся на кабель с помощью приспособления для сжатия, доступного у любителей. Слева конец обжатого кабеля можно обработать лезвием бритвы; в центре под разъемом находится розетка 2X5; и справа вид сверху на разъем.

Платы DIN и специальные платы для печатных плат были прикреплены к корпусу органа с помощью латунных шурупов с полукруглой головкой и распорок. Частичный вид пользовательских печатных плат, установленных в органе, изображен выше. Верхние соединительные кабели соединяют упоры или органы управления с платами, а масса слева исходит от педалей. Наконец, удаление тональных генераторов и других разнообразных функций оригинального органа позволило повторно использовать пустоту шкафа для хранения вина.

Шаг 5: Комплекс Arduino

Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино
Комплекс Ардуино

Теперь будет рассмотрен комплекс Arduino слева от двух плат DIN выше. Он состоит из трех отдельных слоев, связанных между собой как экраны Arduino. Печатные платы, составляющие слои, случайно окрашены в синий, зеленый и красный цвета.

Синий слой (вверху) - это щит, произведенный Freetronics, который обеспечивает жидкокристаллический символьный дисплей 16x2. (2 ряда по 16 знаков). Это не является строго необходимым, но чрезвычайно полезно для проверки работы клавиатуры, педалей и упоров. Он управляется библиотекой LiquidCrystal, и другие варианты оборудования могут быть легко заменены.

Красный слой (внизу) - это Teensy 3.2, установленный на плате Sparkfun Teensyduino. Teensy предлагает прямую поддержку MIDI и в остальном ведет себя как Arduino UNO. Таким образом, использование Teensy позволяет экономить компоненты на последующих этапах. Разъем источника питания (5 В, 2 А) находится внизу слева, а разъем USB, поддерживающий последовательный или MIDI-выход, - в центре слева. Заголовки на верхнем и нижнем краях обеспечивают стандартные функции щита Arduino.

Зеленый слой (зажатый между синим и красным) представляет собой специальную печатную плату. Его цель состоит в том, чтобы поддерживать отдельные элементы, такие как соединение с платами DIN, и сокращать внешнюю проводку. Некоторые его функции избыточны. Он включает в себя некоторые схемы для поддержки MIDI через стандартный Arduino UNO. Он также имеет штекерный разъем 2X5 для подключения ленточного кабеля к разъему J1 на первой плате DIN. Другие функции включают поддержку регулировки громкости; в оригинальном органе использовался потенциометр 10K (горшок), управляемый ножной башмаком.

Четыре горизонтальных разъема обеспечивают стандартное подключение экрана Arduino к плате Teensy ниже и жидкокристаллическому дисплею. Отпечаток, напоминающий автовокзал, в нижнем левом углу остался, а длинный вертикальный заголовок слева обеспечивает подключение к четырем шинам, регулятору громкости и земле.

Специальная плата была разработана с использованием Eagle CAD, а zip-файлы комплекса Gerber, отправленные производителям печатных плат, доступны в zip-файле PCB2.

Шаг 6: программное обеспечение Arduino

Программное обеспечение изначально было разработано для Arduino UNO, но позже было внесено очень мало изменений для использования Teensy. Использование пина не изменилось.

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

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

Нисходящая среда обычно включает процессор под управлением Windows, UNIX или Linux, а также программный синтезатор, такой как FluidSynth, которым, в свою очередь, может управлять jOrgan. В конечном итоге FluidSynth управляется одним или несколькими звуковыми шрифтами, которые определяют, какой звук генерируется при получении конкретной MIDI-команды. Есть некоторая аналогия со шрифтами для обработки текстов. Для клавиатуры и педалей изменение по сравнению с предыдущим сканированием приведет к созданию последовательности MIDI Note On или Note Off. Крайняя левая клавиша - это MIDI 36, она увеличивается по клавиатуре. Индекс шины легко предоставит объем для номера MIDI-канала. Для клавиш остановки генерируются управляющие последовательности программ MIDI, или может быть целесообразно сгенерировать включение / выключение ноты и предоставить jOrgan или аналогичное программное обеспечение нисходящего потока MIDI для интерпретации, настройки и расширения. Какой бы курс ни был выбран, окончательное решение определяется определением нижестоящих звуковых шрифтов. Программное обеспечение использовалось в различных формах для генерации MIDI через USB в Windows, использующей приложение Wurlitzer и FluidSynth, а также в Raspberry Pi, работающем с FluidSynth и General MIDI Soundfont. Это описание, по общему признанию, отрывочное, но любой, кто знаком со средой Arduino или C, не составит труда изменить его для своих целей; есть разумная внутренняя документация и разумная модульность.

Программное обеспечение Arduino содержится в файле organino.zip.