[Разработка под Arduino, DIY или Сделай сам, Звук] Электросаксофон: проект создания EWI шаг за шагом

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Авг-2020 21:32


Вступление, или откуда что берется

Карьера программиста и инженера вообще — очень интересная штука, и зачастую приводит к управлению проектами, как и случилось у меня в T-Systems. Руководство проектами – это прекрасно: и опыт, и почет, и уважение, но простора для инженерной деятельности там не остается. А руки-то помнят! (с)
Остается использовать полученные знания и навыки в своих сторонних проектах, благо, такая возможность есть.
О чем я сегодня расскажу
Кроме всего прочего, я еще немного (лет 5-6) саксофонист. И все хорошо в этом прекрасном инструменте, но уж очень он громкий. И с первых своих уроков я мечтал о появлении в моей жизни такого же саксофона, но чтобы можно было играть на нем в наушниках и не донимать соседей, чтобы был этакий тренировочный инструмент.
Конечно, существуют электронные духовые инструменты, флагманы — AKAI EWI и Roland Aerophone, но, во-первых, они очень компромиссные с точки зрения положения пальцев и вообще эргономики (не говоря уже про амбушюр), а во-вторых, кроме них, ничего на рынке и нет, а эти стоят 60+к. Извините, но мой сакс — американец CONN — стоит в 2 раза дешевле (весьма подержанный, впрочем, но еще меня переживет). Так что задушили они меня вдвоем — жаба и жажда деятельности. Будем делать электросакс.
Итак, постановка задачи:
  • Сделать тренировочный инструмент для аппликатуры и амбушюра альт-саксофониста;
  • Сделать его дешево в (потенциальной) серии и не очень дорого на стадии эксперимента;
  • Сделать его работающим без задержек между действиями пользователя и получаемым звуком (частая проблема в MIDI устройствах и ад для музыканта);
  • Сделать его маленьким в ношении-хранении и копирующим альт-саксофон для рук в работе;
  • Очень желательно: 
  • Сделать его также инструментом для выступлений;
  • Добавить интерфейс MIDI;
  • Сделать возможность в нем играть под «минусы» с телефона или SD карты.

Что есть в наличии:
  • Прямые руки;
  • ЛЭТИ РТФ за плечами, то есть общее понимание электроники, но без большого опыта;
  • Музыкальное недо-образование и понимание, как играть на саксе;
  • Опыт около 20 лет в программировании всякого — от Visual Basic до экзотического языка Magik;
  • Чуть позже появился 3д-принтер (купил не под эту задачу, но очень пригодился),
  • Ну и новоприобретенные (или хорошо забытые старые) навыки построения проектов в жизни и IT, дальше будет почти Agile.

Приступаем
Чуть больше 2 лет назад я взял с собой в отпуск стартовый набор Arduino UNO, пару шприцов (не подумайте плохого), датчик давления BMP180 и желание попробовать это все на досуге.
Получилась такая смешная конструкция с 3 кнопками, но, на удивление, она заработала!
Когда я туда дул, появлялся звук, соответствующий комбинации кнопок. Звук, конечно, был системно-динамиковый, прямо в уши неискушенному пользователю.

Но опыт удался, а это означало, что всей птичке пропасть, коль увяз коготок.
Дальше будет некоторое количество промежуточных вех, кому не интересны детали, листайте до конца, там результаты и выводы.
Веха 1. 2 месяца от старта
Корпус — кабель-канал и пластиковые трубы, разводка кнопок на фольгированном стеклотекстолите резаком, очень похоже на игрушку, сделанную в гаражном кооперативе 90х. Датчик BMP180, MIDI, кнопки тактовые ардуинские. Первый мундштук из той же пластиковой трубы. Язык Си, среда разработки Arduino.
Очень большие задержки образовались (четверть-половина секунды), долго думал, что из-за MIDI (использовал MIDI-OX и Hairless MIDI). Решил делать встроенный звук.

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

Веха 3. 4 месяца
Еще летом купил себе на день рождения 3д-принтер, самый простой, Anet A6. Решил подизайнить с ним. Кстати, этот дизайн мне нравится до сих пор, может быть, такой внешний вид будет у одного из готовых инструментов, но пока не уверен, слишком много возни.


Веха 4: полгода
Первый записанный звук (ужаснитесь), первая полностью работоспособная модель. https://www.youtube.com/watch?v=hhtxDk5x1P8
Кнопки от механической клавиатуры Cherry MX Blue (знакомый саксофонист оценил, говорит, похоже на настоящие щелчки клавиш. Мне тоже так показалось.)
Вот примерно так выглядел:

Веха 5, 9 месяцев
Сделал упор на технологичность и блочную компоновку: печатный монтаж (лазерный утюг, кто в теме, перекись водорода и лимонная кислота с солью), шлейфы и максимальное использование готовых модулей. На UNO не хватало пинов для всех кнопок, решил действовать пока экстенсивно — использовал Arduino Mega.
Получилась первая модель, которую можно вынести на улицу, поиграть у друзей, вернуть обратно, и все это — без единого разрыва (с).



Тем временем поменял цифровой датчик давления BMP180 на аналоговый от Motorola, переписав часть программы. Задержки исчезли. Совсем. Заодно добавил мундштуку возможность подтянуть звук тростью, как у настоящих саксов. Тензорезистор справа снизу.

Веха 6, год
Заработал Aux-in, теперь могу играть на электросаксе под минусы ночью, и все, что услышит наблюдатель — это пыхтение исполнителя и щелчки клавиш.
(3.5 мм джек, с телефона можно минус замешать в звук исполнителя)

Веха 7, полтора года (надоел он мне до чертиков, 3 месяца особо не подходил)
Теперь он может складываться в 3 раза и помещается даже в женскую сумочку (не самую мелкую, впрочем, проверял на жене).  Внутренности поменялись на еще более модульные, Arduino был Mega, стал Nano. Много 3d-печати, но еще не весь, для корпуса по-прежнему используется кабель-канал, очень уж удобно.


И, наконец, пока что последняя, 2 года
Это не точка, это внушительная запятая!

Подвожу промежуточные итоги
  • Можно ли сделать тренировочный инструмент для аппликатуры и амбушюра: да.
  • Можно ли его сделать дешево (3-5к за детали): да.
  • Можно ли его сделать работающим без задержек: да.
  • Можно ли его сделать маленьким в ношении-хранении и копирующим альт-саксофон для рук в работе: да.
  • Можно ли сделать инструмент для выступлений: с выбранным подходом — нет. Причина — качество звука.
  • Можно ли сделать инструмент с MIDI интерфейсом, чтобы это исправить: может быть.
  • Можно ли сделать инструмент для выступлений с другим подходом: может быть.

Нерешенные задачи:
  • Используется DIY карточка MIDI на чипе vs1053, имеющая 3 ограничения:
    • Звуки не очень хорошие;
    • Большой уровень шума;
    • Недостаточный уровень звука.
    • Карточек лучше на рынке нет.
  • MIDI: когда делал — были проблемы с задержками, сейчас немного остыл, хочу сделать инструмент со своими звуками. Может, еще вернусь.

Основная идея — построить это на реальных звуках (WAV). Боюсь, что это придумывание очень давно придуманного велосипеда под названием SoundFont, а еще мощи Arduino может не хватить. Но, может, еще и возьмусь.
Есть другая идея — уменьшить количество электроники и увеличить количество программирования: например, использование Raspberry PI вместо Arduino. SoundFont там применим программно. Возможные проблемы:
  • Я вообще никак в Linux. Будем разбираться, тем более, в C/C++ все же «как».
  • У Raspberry, говорят, не очень со звуком, но есть HDMI и звуковые карты-шилды. Будем разбираться.
  • Повышенное энергопотребление: разберемся точно!
  • Больший размер Raspberry, чем Arduino. Думаю, решаемо, тем более, есть и компактные варианты Raspberry (Zero, например)

… И — веха 1 новой конструкции
Raspberry завелся (пока что модель B), первые звуки получены, язык — снова C (хотя, наверное, можно и питона какого использовать, но пока не научился), использую свободно распространяемый синтезатор Fluidsynth как библиотеку, начинаю работать с GPIO. Про задержки пока непонятно, могут быть на стыке аналогового датчика и полностью цифровых GPIO.
Спасибо за внимание! Если есть интерес к проекту, то еще встретимся, и я расскажу о дальнейшем его развитии.
С вами был Сергей Балашов,
PM в компании T-Systems в рабочее время, а в свободное — инженер-саксофонист!
Следить за этим и другими моими проектами (вне рамок компании) можно тут:
https://vk.com/happy_sax
P.S.: А если кто в Питере поджемить хочет, но стесняется — после карантина тоже приходите:
https://vk.com/eclectic_jam
Про джемы в другой раз расскажу, может, и не здесь, тут все же про IT, не про музыку.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_pod_arduino (Разработка под Arduino), #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_zvuk (Звук), #_elektrosaks (электросакс), #_saksofon (саксофон), #_muzykalnye_instrumenty (музыкальные инструменты), #_arduino, #_zvuk (звук), #_samodelki (самоделки), #_blog_kompanii_tsystems (
Блог компании T-Systems
)
, #_razrabotka_pod_arduino (
Разработка под Arduino
)
, #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
, #_zvuk (
Звук
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 15:34
Часовой пояс: UTC + 5