Домой Железо Разработчик создал полифонический синтезатор на базе ESP32

Разработчик создал полифонический синтезатор на базе ESP32

Устройство управляется касаниями медных полосок и использует специализированный ЦАП для качественного звука.

На Reddit в сообществе, посвященном микроконтроллерам ESP32, пользователь под ником Alxdreee представил любопытный проект: полностью функциональный полифонический синтезатор. Устройство обладает сенсорным управлением и способно генерировать музыкальные ноты в режиме реального времени, реагируя на прикосновения к медным элементам.

Аппаратная часть и сенсоры

Основой интерфейса синтезатора стала медная лента (copper ribbon) в сочетании с емкостными датчиками модели MPR121. При касании пальцем одной из медных полосок система распознает это действие как нажатие клавиши.

Для качественной обработки аудиопотока автор использовал внешнюю плату ЦАП PCM5102A. Подключение к микроконтроллеру осуществляется через цифровой интерфейс I2S, что позволяет передавать аудиосигнал без лишних помех и добиваться чистого звучания непосредственно с платы. Подобные способы использования разъемов для расширения стандартных возможностей системы часто становятся ключом к реализации DIY-проектов такого уровня.

Программное обеспечение и DSP

Весь код для цифровой обработки сигналов (DSP) был написан автором с нуля на языке C++. В текущую реализацию входят:

  • фильтр с переменными состояниями (state-variable filter);
  • модули огибающих (envelopes);
  • цепочка базовых звуковых эффектов (effects chain).

Alxdreee отмечает, что самой сложной частью процесса стала оптимизация DSP-движка. Главной целью было обеспечение стабильной работы алгоритмов без критических сбоев или случайных перезагрузок ESP32, которые могли возникнуть из-за высокой вычислительной нагрузки в момент синтеза звука.

Перспективы проекта и доступ к коду

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

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

Разработчик создал полифонический синтезатор на базе ESP32
Разработчик создал полифонический синтезатор на базе ESP32 — иллюстрация к материалу. Источник: xda-developers.com