Чтобы Arduino «запел» — поможет библиотека Mozzi

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Arduino может не только пищать, как какой-нибудь бытовой прибор. Расширить репертуар устройства позволяет библиотека Mozzi. Расскажем подробнее.

Фотография: Sahand Babali. Источник: Unsplash.com
Фотография: Sahand Babali. Источник: Unsplash.com

Что за Mozzi

Это — библиотека, позволяющая писать алгоритмическую музыку на Arduino. Проект поддерживает работу с Arduino Nano, Boarduino, Teensy и многими другими.

Аудиовывод плат на базе Atmel организован при помощи ШИМ, но на Teensy 3.x доступен ЦАП (12 бит). В большинстве случаев библиотека выводит звук на пин №9 (output pin), но в зависимости от платы номер может меняться на 11, A14 или B5.

Частота дискретизации составляет 16384 Гц, однако есть и экспериментальный режим — c частотой 32768 Гц. Но чтобы его активировать нужно внести правки в конфигурационный файл mozzi_config.h.

Интересные особенности

Изменения в командах. Язык программирования устройств Arduino построен на C/C++. Но библиотека Mozzi вносит изменения в стандартный синтаксис. В первую очередь, чтобы повысить качество работы со звуком. Например, вызов delay(), delayMicroseconds() или других функций ожидания может приводить к глитчам в при воспроизведении аудио. В качестве замены Mozzi предлагает специальную функцию EventDelay(). В то же время на смену analogRead() пришла функция mozziAnalogRead(), которая работает в фоновом режиме и не перегружает процессор.

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

Оптимизация кода. Библиотека заточена под работу с процессорами мини-компьютеров. В этом контексте стоит дополнительно отметить, что среды разработки Arduino версий 1.5+ тоже умеют оптимизировать скорость выполнения кода — это важно при работе с аудио. Так, в файле platform.txt (на OSX его можно найти в Users/your_name/Library/Arduino15) нужно найти и заменить флаг -Os на -O2.

Как все это звучит

В целом Mozzi позволяет воспроизводить на Adruino достаточно сложные звуки и мелодии, напоминающие звучание синтезаторов 80-х годов. Чтобы самостоятельно оценить Mozzi, можно собрать установку из платы и дополнительных компонентов, загрузить прошивку и поработать со звуком в аудиоредакторе вроде Audacity — инструкция по настройке есть на GitHub. Однако примеры звучания можно найти и на видеохостингах, куда энтузиасты выкладывают свои работы.

Фотография: Spencer. Источник: Unsplash.com
Фотография: Spencer. Источник: Unsplash.com

Например, польский инженер собрал на Mozzi и Arduino кастомный синтезатор. А вот другой проект — система воспроизводит зловещие звуки как в фильмах-антиутопиях.


Больше библиотек и программных инструментов — в нашем «Мире Hi-Fi»:

  • Заняться цифровой обработкой сигналов — какие библиотеки опробовать

  • Библиотеки для цифровой обработки сигналов на C++

  • Как писать музыку на Python — помогут три тематические библиотеки

  • Как устроен Sporth — ЯП для музыкальных live-сессий


Источник: https://habr.com/ru/company/audiomania/blog/658737/


Интересные статьи

Интересные статьи

Привет, Хабр! Я Дима Бардин, руководитель группы архитекторов Croc Code. Поговорим о ТЗ?Все, кому приходилось участвовать в составлении технического задания для проекта, реагируют на буквы “ТЗ” в...
Привет, Хабр! Я Катя из команды техписателей в Ozon. Мы продолжаем расти и развиваться, поэтому вслед за статьёй о видах документации хочу разобрать, какие проблемы внутри команды можно документацией ...
Последние несколько лет мы при каждом удобном случае снова и снова обсуждаем, что же такое DevOps. Это уже порядком надоело, но раз всё еще происходит, значит есть проблема — проблема вза...
Аллергопробы. Ищем тот самый мятлик, на который аллергия Коты начинают репетировать радостные вопли под окном, ненормальный скворец снова решил, что кондиционер отличное место для гнезда, а ...
Наверняка многие из вас хотя бы однажды пользовались хабраконвертером, который официально рекомендован администрацией Хабра — https://shirixae.github.io/habraconverter-v2/. Несколько лет назад ег...