- PVSM.RU - https://www.pvsm.ru -
Arduino может не только пищать, как какой-нибудь бытовой прибор. Расширить репертуар устройства позволяет библиотека Mozzi. Расскажем подробнее.
Это — библиотека, позволяющая писать алгоритмическую музыку на Arduino. Проект поддерживает [1] работу с Arduino Nano, Boarduino, Teensy и многими другими.
Аудиовывод плат на базе Atmel организован при помощи ШИМ, но на Teensy 3.x доступен [2] ЦАП (12 бит [2]). В большинстве случаев библиотека выводит звук на пин №9 (output pin), но в зависимости от платы номер может меняться на 11, A14 или B5.
Частота дискретизации составляет 16384 Гц, однако есть и экспериментальный режим — c частотой 32768 Гц. Но чтобы его активировать нужно внести правки [3] в конфигурационный файл mozzi_config.h.
Изменения в командах. Язык программирования устройств Arduino построен [4] на C/C++. Но библиотека Mozzi вносит [5] изменения в стандартный синтаксис. В первую очередь, чтобы повысить качество работы со звуком. Например, вызов delay(), delayMicroseconds() или других функций ожидания может приводить к глитчам в при воспроизведении аудио. В качестве замены Mozzi предлагает специальную функцию EventDelay(). В то же время на смену analogRead() пришла функция mozziAnalogRead(), которая работает в фоновом режиме и не перегружает процессор.
Быстрый запуск. В составе Mozzi есть примеры скетчей — единиц кода, которые загружаются и запускаются на плате Arduino. Их можно использовать в качестве шаблонов для быстрой модификации.
Оптимизация кода. Библиотека заточена под работу с процессорами мини-компьютеров. В этом контексте стоит дополнительно отметить, что среды разработки Arduino версий 1.5+ тоже умеют [1] оптимизировать скорость выполнения кода — это важно при работе с аудио. Так, в файле platform.txt (на OSX его можно найти в Users/your_name/Library/Arduino15) нужно найти и заменить флаг -Os на -O2.
В целом Mozzi позволяет воспроизводить на Adruino достаточно сложные звуки и мелодии, напоминающие звучание синтезаторов 80-х годов. Чтобы самостоятельно оценить Mozzi, можно собрать установку из платы и дополнительных компонентов, загрузить прошивку и поработать со звуком в аудиоредакторе вроде Audacity — инструкция по настройке есть на GitHub [6]. Однако примеры звучания можно найти и на видеохостингах, куда энтузиасты выкладывают свои работы.
Например, польский инженер собрал на Mozzi и Arduino кастомный синтезатор [7]. А вот другой проект — система воспроизводит зловещие звуки [8] как в фильмах-антиутопиях.
Больше библиотек и программных инструментов — в нашем «Мире Hi-Fi»:
Заняться цифровой обработкой сигналов — какие библиотеки опробовать [9]
Как писать музыку на Python — помогут три тематические библиотеки [11]
Автор: «Мир Hi-Fi»
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/biblioteka/373632
Ссылки в тексте:
[1] поддерживает: https://github.com/sensorium/Mozzi
[2] доступен: https://sensorium.github.io/Mozzi/learn/output/
[3] нужно внести правки: https://sensorium.github.io/Mozzi/doc/html/group__core.html
[4] построен: http://arduino.ru/Reference
[5] вносит: https://sensorium.github.io/Mozzi/learn/under-the-hood/
[6] GitHub: https://sensorium.github.io/Mozzi/learn/introductory-tutorial/
[7] кастомный синтезатор: https://www.youtube.com/watch?v=9QdUvALRTkw
[8] воспроизводит зловещие звуки: https://blog.adafruit.com/2021/12/29/make-your-own-80s-dystopian-music-soundtrack-qtpy-arduino-todbot/
[9] Заняться цифровой обработкой сигналов — какие библиотеки опробовать: https://www.audiomania.ru/content/art-8523.html
[10] Библиотеки для цифровой обработки сигналов на C++: https://www.audiomania.ru/content/art-8468.html
[11] Как писать музыку на Python — помогут три тематические библиотеки: https://www.audiomania.ru/content/art-7691.html
[12] Как устроен Sporth — ЯП для музыкальных live-сессий: https://www.audiomania.ru/content/art-7140.html
[13] Источник: https://habr.com/ru/post/658737/?utm_source=habrahabr&utm_medium=rss&utm_campaign=658737
Нажмите здесь для печати.