Русский
Русский
English
Статистика
Реклама

Sensy

Как я делаю цифровую минигитару

06.09.2020 16:13:36 | Автор: admin
image

В этой статье я постараюсь в общих чертах описать путь создания девайса от идеи до реализации юзабельного прототипа.

Меня зовут Дмитрий Дударев. Я занимаюсь разработкой электроники и очень люблю создавать различные портативные девайсы. Еще я люблю музыку. Полгода назад я взял у друга акустическую гитару чтобы попытаться научиться на ней играть по урокам из ютуба и табулатурам. Было тяжело. То ли я неправильно что-то делал, то ли плохо старался, то ли в обществе моих предков мелкая моторика вредила размножению. В любом случае, ничего кроме звуков дребезжащих струн у меня не выходило. Мое негодование усиливала постоянная расстройка струн. Да и окружающим тысячный раз слушать мою кривую Nothing else matters удовольствия не доставляло.

Но в этих муках про главное правило электронщика я не забыл. Если что-то существует, значит туда можно вставить микроконтроллер. Или, хотя бы, сделать портативную электронную модификацию.


Идея


В голове начала вырисовываться структура цифровой гитары.

Первым делом я составил список требований к девайсу:

  1. Устройство должно имитировать гитару с 6-ю струнами и 12-ю ладами на грифе
  2. Должно быть компактным, в идеале складным, чтобы можно было брать его с собой куда угодно
  3. Должно подключаться ко всем популярным осям Android, IOS, Windows, Linux, MacOS и определяться там как MIDI устройство без каких-либо драйверов
  4. Работа от аккумулятора
  5. Подключение должно производиться без проводов (но раз уж там будет USB разъем для зарядки, то и по проводу пусть тоже подключается)
  6. Возможность сразу начать играть, без необходимости в долгих тренировках по адаптации кистевых связок
  7. На каждой струне и каждом элементе грифа должно быть по светодиоду, чтобы можно было запустить табулатуру мелодии, и гитара сама показывала куда нужно прикладывать руки
  8. Возможность использования основных техник игры на гитаре: hummer on, pull off, slide, vibrato
  9. Задержка передачи midi команд не более 10мс
  10. Все должно собираться из подручных материалов без сложных техпроцессов и дорогой электроники

Разумеется, для мобильных платформ потребуется написать приложение, в котором можно будет выбрать табулатуру для обучения светодиодами, выбрать инструмент (акустика, классика, электрогитара с различными пресетами фильтров, и т.д.), и воспроизводить звуки.

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

Аналоги


Итак, первым делом, вооружившись мыслью о том, что в наше время почти невозможно придумать что-то новое и кто-то уже это делал, иду гуглить. Действительно, оказалось, что первая цифровая гитара была создана еще в 1981 году, но из-за ограниченной функциональности широкого применения не нашла.



Современные компактные midi гитары тоже существуют, но рассчитаны на более профессиональную целевую аудиторию, дорогие и, самое главное, без режима жми на лампочки. Есть даже экзотические варианты с айпадом вместо струн или напоминающее моллюска.



Значит, можно приступать.

Proof of concept


Начать решил с проверкой концепции. Минимальный прототип на скорую руку.
Для начала нужно определиться с элементной базой.

Контроллер

В своих проектах я чаще всего использую STM32. Они мощные, дешевые, доступные. Выбрал STM32F042. В нем есть USB (причем, со специальным внутренним генератором на 48МГц чтобы не вешать внешний кварц), 32-битное ядро, и вся необходимая периферия. И все это при стоимости меньше бакса.

Беспроводное подключение решил оставить на следующую итерацию.

Струны на дэке

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

Замоделил в солиде и напечатал для оценки эргономики.





Получилось довольно приятно на ощупь. Должно работать.

Сенсоры на грифе

На гитаре предполагаются 6 струн и 12 ладов. Суммарно это 72 сенсора на грифе и еще 6 на дэке. Можно было бы использовать на каждый элемент по тактовой кнопке, но, во-первых, они щелкают, во-вторых, не получится реализовать техники вроде slide или vibrato. Хотелось бы еще и усилие нажатия определять.

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



В продаже их найти в нужном количестве оказалось очень сложно, да и стоят немало. Пришлось заказать на али.

АЦП

Для считывания состояния каждого датчика нужен ацп. В STM-ке их всего несколько штук, так что для опроса 78 датчиков понадобится что-то еще. Можно было бы использовать внешние многоканальные ацп микросхемы, но они слишком дорогие. Поэтому я решил поставить 5 дешевых 16-канальных аналоговых мультиплексора CD74HC4067 и подключить к каждому по одному каналу ацп STM-ки.

Плата

Пока едут тензорезисторы, начинаю разводку платы. Выводы датчиков длинные, так что пришлось располагать их внахлест.







Прежде чем заказывать печать платы, решил дождаться тензорезисторов. И, как оказалось, не зря.

Из 80-ти датчиков рабочими оказались только несколько, и то с разными параметрами.



От изображения на сайте продавца они отличаются заметно в худшую сторону.

И чего я ожидал, покупая электронику на али?..

И тут меня осенило.

Можно ведь применить другой метод детектирования измерение емкости как в датчиках прикосновения. Это гораздо дешевле и доступнее. А если правильно спроектировать механику, то можно и усилие определять.

Что ж. Удаляю все что было сделано.



Начинаю сначала


В новой версии минималистичного proof of concept-а в качестве сенсорных элементов я выбрал напиленные из 4мм медного прутка цилиндрики, припаянные к плате.

Теперь нужно придумать как измерять 78 емкостей.

Опрос сенсоров

Немного погуглив, выяснил, что существует множество микросхем контроллеров сенсорных клавиатур. Среди них удалось найти дешевый 12-канальный измеритель емкости общего назначения. Он измеряет емкость в масштабах единиц пикофарад, чего должно быть достаточно для схемы измерения усилия, которую я планирую реализовать в следующих модификациях.
Дополнительно на всякий случай повесил на каждый элемент грифа по посадочному месту для кнопки или чего-то подобного. И сделал вырезы в плате, чтобы можно было не только прикоснуться к цилиндрику, но и прожать его внутрь. Можно будет поэкспериментировать с разными техниками игры.

Микросхема подключается по I2C интерфейсу и имеет 2 конфигурационных пина, задающих адрес. Соответственно, на одну шину можно повесить максимум 4 микросхемы. А мне нужно 12. Не проблема, распределяю их на три группы и подключаю к шине STM-ки через мультиплексор.

Платы





На этот раз плату удалось заказать и даже дождаться ее изготовления.

После запайки комплектухи, медных цилиндриков и потенциометров понял, что конструкция с пластиковыми струнами получается слишком сложной. Поэтому решил пока что повесить на дэку такие же сенсорные цилиндрики, но подлиннее. Чтобы не переделывать всю плату, сделал небольшую платку-накладку и подключил ее ко второй I2C шине STM-ки.



Железяка готова. Следующая задача заставить ее играть.

Софт


План следующий:

  1. Скачать виртуальный синтезатор, который может работать с MIDI устройствами и издавать гитарные звуки.
  2. Написать прошивку, которая будет опрашивать сенсоры и передавать результаты в комп через USB custom HID интерфейс около 100 раз в секунду.
  3. Написать программу на питоне, которая будет принимать эти данные, эмулировать виртуальное MIDI устройство, генерировать MIDI пакеты и отправлять их на виртуальный синтезатор.

Разбираться как сразу прикинуться MIDI устройством решил чуть позже.

Чем воспроизводить звук?

Виртуальных синтезаторов под винду с поддержкой MIDI оказалось довольно много. Я попробовал Ableton live, RealGuitar, FL studio, Kontakt. Остановился на RealGuitar из-за простоты и заточенности именно под гитару. Он даже умеет имитировать несовершенства человеческой игры скольжение пальцев по струнам, рандомизированные параметры извлечения нот.



Подключение к виртуальному синтезатору

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



В интерфейсе программы я сделал графическое отображение уровня измеряемой емкости для каждого сенсора для упрощения подстройки фильтров. Также на будущее добавил элементы управления светодиодами, вибромотором (пока не знаю зачем, но он тоже будет в гитаре), визуализации работы акселерометра и уровня заряда аккумулятора.



Для того, чтобы удары по струнам гитары вызывали проигрывание правильных нот, нужно замапить все 72 сенсора на грифе на соответствующую ноту.

Оказалось, что из 72 элементов на 12-ти ладах всего 37 уникальных нот. Они расположены по определенной структуре, так что удалось вместо построения большой таблицы вывести простое уравнение, которое по номеру сенсора выдает номер соответствующей ноты.



Тест

Похоже, все готово для первого теста. Пилить прутки и паять все 12 ладов мне было лень, поэтому ограничился 8-ю. Момент истины:


ITS ALIVE! Жизнеспособность концепта подтверждена. Счастью не было предела! Но нельзя расслабляться.

Следующий этап добавление светодиодов, акселерометра, вибромотора, аккумулятора, беспроводной связи, корпуса и возможности работы без драйверов или программ эмуляции midi на всех популярных платформах.

Светодиоды

Для подключения 84 светодиодов я выбрал самый простой пусть daisy chain из 14-ти 8-битных сдвиговых регистров. Их удобно подключить к SPI MOSI выводу STM-ки и слать по DMA массив данных без участия ядра.

Акселерометр

Особых требований к акселерометру у меня не было, поэтому взял самый простой LIS3D. С его помощью гитара будет определять свой наклон относительно горизонта, что позволит модулировать различные звуковые фильтры во время игры движениями рук.

Беспровод

Для беспроводной передачи данных решил поставить ESP32. Оно поддерживает различные протоколы Bluetooth и WI-FI, будет с чем поэкспериментировать (на тот момент я еще не знал, что в моем случае существует только один правильный способ подключения).

Корпус

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

Включение питания будет происходить при раскрытии корпуса за счет приближения магнитика на грифе к датчику Холла на плате дэки.

Начинаю работу


Было проделано много работы по экспериментам с различными конструкциями тактильных элементов грифа и рассеивателями для светодиодов. Хотелось, чтобы равномерно светилась вся поверхность элемента, при этом сохранялась возможность детектирования прикосновения и нажатия на кнопки.



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



Вроде, все продумано, можно начинать разводку платы.











MIDI устройство

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

Оказалось, сделать это не так сложно, все спецификации есть на официальном сайте usb.org. Но все алгоритмы, которые выполнялись на стороне питонского приложения, пришлось переписывать на C в контроллер.

Я был удивлен, что оно сразу заработало на всех устройствах. Windows 10, MacOS, Debian 9, Android (через USB переходник). Достаточно просто воткнуть провод и в системе появляется MIDI устройство с названием Sensy и распознается всеми синтезаторами. С айфоном пока протестировать не удалось т.к. нет переходника. Но должно работать так же.



Беспроводной интерфейс

Следующая задача организовать работу без проводов.

Погуглить сразу я поленился, поэтому потратил несколько дней на тестирование различных беспроводных интерфейсов. BLE я отмёл сразу, т.к. в моей голове Low energy прочно ассоциировалось с низкой частотой передачи пакетов. Пробовал WI-FI в режиме клиента, WI-FI в режиме точки доступа, Bluetooth в режиме SPP и т.д. Везде была одна и та же проблема огромная задержка (больше 100мс на глаз) и неравномерность прихода пакетов во времени. Это делало игру невозможной.

Я уже собирался сдаться и сделать отдельный донгл, который бы втыкался в USB мобильника или компа и принимал данные с гитары по кастомному радио.

Но тут я случайно наткнулся на спецификации новых версий протокола BLE и увидел, что минимальный connection interval там 7.5мс, что отлично вписывается в мои требования.

Более того, оказалось, что существует протокол BLE MIDI, который поддерживается всеми новыми операционками и работает без всяких драйверов прямо как по USB MIDI.

Единственной проблемой оказалось то, что такой низкий connection interval и вообще BLE MIDI поддерживаются только относительно новыми платформами. Подробности еще предстоит выяснить, но тесты с доступными мне девайсами прошли успешно.

На некоторых новых айфонах даже имеется предустановленный виртуальный синтезатор Garage Band, способный издавать качественные гитарные звуки (если нет, можно скачать в App Store бесплатно).

Прошивка

Написав весь минимальный необходимый функционал, я уперся ровно в размер флэша STM-ки. Свободными осталось всего 168 байт. Очевидно, кремниевые боги мне благоволили, значит иду в правильном направлении.



Можно было бы углубиться в оптимизацию кода и значительно сократить объем занимаемой памяти, но проще будет в следующей версии использовать контроллер потолще, который стоит на 5 центов дороже и не тратить время. Тем более, мало ли какие еще фичи захочется добавить.
Но минимального функционала недостаточно, нужно еще поработать с техниками игры. В первую очередь, хочу реализовать slide. Это когда начинаешь играть ноту с определенным зажатым ладом и проскальзываешь рукой по грифу, перескакивая с лада на лад.

С USB я уже поразвлекался, поэтому можно весь код, связанный с ним, закомментить и освободить память. Тестировать можно и по беспроводу:


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



Какие минусы у этой конструкции?

  1. На сенсорах нигде не измеряется усилие нажатия. Это влечет за собой три проблемы:
    • Постоянно происходят случайные задевания соседних струн как на дэке, так и на грифе. Это делает игру очень сложной.
    • Все играемые ноты извлекаются с одинаковой громкостью. Большинство подопытных этого не замечают, но хотелось бы более приближенной к настоящей гитаре игры
    • Невозможность использовать техники hammer on, pull off и vibrato
  2. Светодиоды одноцветные. Это ограничивает наглядность при игре по табулатурам. Хочется иметь возможность разными цветами указывать на различные приемы игры.
  3. Форма корпуса не подходит для левшей. С точки зрения софта я уже реализовал инверсию струн по акселерометру. Но механический лепесток, необходимый для удержания гитары рукой во время игры, поворачивается только в сторону, удобную правшам.
  4. Отсутствие упора для ноги. Сейчас, при игре сидя, нижняя струна почти касается ноги, а это неудобно.
  5. Сустав сгибания гитары требует осмысления и доработки. Возможно, он недостаточно надежен и стабилен.

Время переходить к разработке следующей версии.


Переезжаю на контроллер серии STM32F07. На нем уже 128КБ флэша этого хватит на любой функционал. И даже на пасхалки останется.

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

Конечно, будут реализованы и три главных нововведения:

  • светодиоды теперь RGB,
  • на каждом сенсоре грифа будет измерение усилия (тактовые кнопки больше не нужны),
  • струны на дэке станут подвижными.

На данный момент плата дэки выглядит так (футпринт ESP на всякий случай оставил):


Проект называется Sensy и сейчас находится в активной разработке. Уже есть полная уверенность в том, что весь задуманный функционал будет реализован, поэтому было принято решение о дальнейшем развитии.

Мы находимся в Питере, сейчас команда состоит из двух человек: я занимаюсь технической частью, мой партнер маркетингом, финансами, юридическими вопросами.

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

Кому интересно следить за новостями проекта оставляйте почту в форме на сайте и подписывайтесь на соцсети.

Очень надеюсь на обратную связь от Хабрасообщества с комментариями и предложениями!

Забавный эпизод из процесса разработки
Сижу отлаживаю NRF52, пытаюсь вывести данные через UART. Ничего не выходит. Проверял код, пайку, даже перепаивал чип, ничего не помогает.

И тут случайно нестандартным способом перезагружаю плату в терминал приходит буква N в ascii. Это соответствует числу 0x4E, которое я не отправлял. Перезагружаю еще раз приходит буква O. Странно. Может быть проблема с кварцевым резонатором и сбился baud rate? Меняю частоту в терминале, перезагружаю плату опять приходит N. С каждой новой перезагрузкой приходит по новой букве, которые в итоге составляют повторяющуюся по кругу фразу NON GENUINE DEVICE FOUND.

Что эта NRF-ка себе позволяет? Прошивку я обнулял. Как она после перезагрузки вообще помнит, что отправлялось в предыдущий раз? Это было похоже на какой-то спиритический сеанс. Может, я и есть тот самый NON GENUINE DEVICE?

Залез в гугл, выяснил, что производители ftdi микросхем, которые стоят в USB-UART донглах, придумали способ бороться с китайскими подделками. Виндовый драйвер проверяет оригинальность микросхемы и на лету подменяет приходящие данные на эту фразу в случае, если она поддельная. Очевидно, мой донгл оказался подделкой и переход на другой решил эту проблему.

Снова спасибо китайцам.

Спасибо за внимание!
Подробнее..

Как я делаю цифровую минигитару. Часть 2

08.03.2021 14:16:44 | Автор: admin

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

Напомню какие требования к девайсу я поставил, когда начинал разработку:

  • Устройство должно имитировать гитару с 6-ю струнами и 12-ю ладами на грифе

  • Должно быть компактным, в идеале складным, чтобы можно было брать его с собой куда угодно

  • Должно подключаться ко всем популярным осям Android, IOS, Windows, Linux, MacOS и определяться там как MIDI устройство без каких-либо драйверов

  • Работа от аккумулятора

  • Подключение должно производиться без проводов по Bluetooth Low Energy (но раз уж там будет USB разъем для зарядки, то и по проводу пусть тоже подключается)

  • Возможность сразу начать играть, без необходимости в долгих тренировках по адаптации кистевых связок

  • На каждой струне и каждом элементе грифа должно быть по светодиоду, чтобы можно было запустить табулатуру мелодии, и гитара сама показывала куда нужно прикладывать руки

  • Возможность использования основных техник игры на гитаре: hummer on, pull off, slide, vibrato

  • Задержка передачи midi команд не более 10мс

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

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

На момент написания предыдущей статьи выглядело оно так:

Было принято решение пытаться делать стартап и выходить на кикстартер.

И так, что было дальше?

Следующим шагом стал стандартный этап поиска pre-seed раунда инвестирования. Деньги нужны были на доработку и изготовление нового прототипа, проведения пиар кампании и оплату юридических манипуляций (для участия на кикстартере необходимо юр. лицо в США со всеми вытекающими организационными тратами). Эту задачу нам с моим партнером, отвечающим за бизнес процессы, удалось решить за 2 месяца.

Позиционирование

Для подтверждения полезности продукта и его функционала мы решили провести встречи со всеми Питерскими и Московскими музыкантами, с которыми смогли связаться, и заодно поснимать видеороликов для соц сетей.

Профессиональные гитаристы отнеслись к девайсу ожидаемо скептически. И я их полностью понимаю, это не замена настоящей полноценной гитаре. Это девайс для применений, в которых важны портативность, универсальность, простота, возможность играть в наушниках и т.д. Сидишь, например, в самолете, вокруг шум, суета, плачущие дети, кислородные маски выпадают. Спать невозможно. И тут внезапно наступает вдохновение, достаешь девайс, надеваешь наушники и записываешь новый трек.

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

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

Конкуренты

Есть на этом рынке и конкуренты. Мы купили по экземпляру каждого для оценки.

1. Artiphon - панель, чувствительная к нажатию, по форме напоминает гитару, но позиционируется скорее как настольная клавиатура.

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

2. Jammy - гитарный форм-фактор, состоит из разъединяющихся элементов с реальными струнами. Датчики независимо отслеживают удары по струнам на деке и прикосновение струны к ладу на грифе. Знакомым гитаристам не удалось сыграть на ней что-то внятное - ноты то не извлекались, то извлекались по нескольку раз. Возможно, требуется длительное привыкание. На реальных роликах в интернете также не удалось найти полноценной гитарной игры, в основном это игра медленным перебором по отдельным струнам.

3. Jamtik - игрушка с 7-ю ладами на батарейках. Сыграть на ней не удалось даже В траве сидел кузнечик.

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

Теперь самое интересное новый прототип.

На основе испытаний старого прототипа, конкурентов и личных предпочтений, я решил расширить функционал девайса и добавить несколько пунктов к требованиям:

  • Конечно, RGB подсветка

  • Подвижные струны на деке с детектированием как касания, так и величины отклонения при извлечении ноты. Это позволит избавиться от проблемы задевания пальцами соседних струн и расширит возможности игры за счет поддержки velocity (разные параметры нарастания звука и громкости ноты) и глушения струн прикосновениями как в настоящей гитаре

  • Детектирование силы нажатия на сенсоры грифа для реализации стандартных гитарных техник игры

  • Встроенный синтезатор со встроенной библиотекой инструментов и разъем Jack 3.5мм для подключения наушников или внешних колонок. Встроенные динамики делать не стал добиться хорошего звучания было бы слишком сложно и дорого

  • Мобильное приложение со встроенным качественным синтезатором и функционалом обучения

  • Пады с подсветкой для записи лупов

  • Упоры на деке и удобного удержания сидя и стоя, крепления для ремешка

Корпус

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

Основная задача - сделать девайс таким, чтобы был применим мануальный опыт игры на настоящей гитаре. Были проработаны расстояния между ладами, механика струн, геометрия деки и равесовка. Пока что это только рендеры корпуса, но изготовление прототипов уже идет полным ходом.

Электроника

Электронику пришлось разделить на 4 платы:

  • Гриф

Адресные RGB светодиоды подключены последовательно к одной ноге STM-ки. Пришлось повозиться с двойной буферизацией и выводом данных через DMA 100 раз в секунду. Зато, теперь оно работает очень быстро и можно запускать цветные визуальные анимации на поверхности грифа.

  • Плата с падами и подпружиненными контактами для соединения с грифом в разложенном состоянии гитары

  • Основная плата со струнами, мозгами, силовой частью, радио частью, синтезатором и датчиками

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

  • Плата с разъемами USB type-C, Jack 3.5мм и тремя индикаторными светодиодами

Мобильное приложение

После выкладывания предыдущей статьи, мне написал мобильный разработчик Юрий Дубовой с предложением помочь в разработке приложения под iOS.

Мы сформировали протокол общения гитары с приложением и разбили его на несколько интерфейсов:

  • Midi команды, разумеется, по умолчанию передаются по стандартному BLE-Midi интерфейсу. Таким образом, к приложению при желании можно будет подключить и другие midi устройства, например, клавиатуру

  • Опционально поддерживается прием midi команд и по проводному USB-Midi интерфейсу. Это будет полезно для старых телефонов без поддержки BLE, а также в случае необходимости сокращения задержки до минимума (порядка 5мс)

  • Отдельный кастомный BLE сервис для передачи уникальных команд, связанных с управлением светодиодами, режимами работы девайса, синхронизацией состояния и т.д.

  • Стандартный BLE battery service для передачи уровня заряда аккумулятора. Он поддерживается на уровне операционной системы и, в случае в виндой, даже отображается соответствующая иконка в панели устройств

Приложение разбито на несколько экранов, соответствующих разным режимам работы:

Свободная игра

В этом режиме пользователь выбирает один из инструментов (акустика, электрогитара, пианино, укулеле, барабаны, и т.д.) и просто играет как ему хочется. Есть возможность загружать свои инструменты в виде саундфонтов в формате .sf2.

Игра по табулатурам

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

Обучение

Пока у нас нет даже прототипа этого режима, но предполагается интерактивное обучение нотной грамоте и гитарным основам в игровой форме с использованием светодиодов на девайсе.

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

Теперь играть на ней можно тремя разными способами:

  1. Подключение через BLE MIDI протокол к телефону или компу, где девайс распознается как миди устройство, и игра через внешние виртуальные синтезаторы (Ableton, FL studio, Garage Band и т.д. или наше приложение)

  2. То же самое, но с подключением через USB MIDI (работает со всеми хостами, которые я проверял Android, IOS, Windows, MacOS, Debian)

  3. Игра внутренним синтезатором, с подключением наушников или внешней колонки напрямую в гитару. В этом случае звук будет не самым Hi-Fi, но вполне приемлемым для игры для себя

Интересно, что можно играть всеми тремя способами одновременно, может кому-то пригодится.

Завершение

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

Кому интересно следить за новостями проекта или оформить предзаказ оставляйте почту в форме на сайте и подписывайтесь на соцсети.

Спасибо за внимание! Буду рад обратной связи в комментариях.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru