Прошлая статья, посвящённая обучающей плате Meowbit и реализациям Python для неё, завершалась упоминанием неспособности CircuitPython проигрывать музыку одновременно с игрой: писать на Python обработчики прерываний CircuitPython не позволяет, а без этого – задержка на время перерисовки экрана (порядка 0.15 с) «подвешивает» звук. Тем не менее, фоновый звук бывает нужен достаточно часто, и для большинства поддерживаемых плат (100 из 189) CircuitPython включает модуль audioio
либо audiopwmio
, реализующий фоновый звук родными для платы способами. К сожалению, для Meowbit (и вообще для плат на основе STM32) не реализован ни тот ни другой модуль; но в opensource-проекте это дело поправимое.
Прежде всего: почему для проигрывания звука есть два разных модуля с полностью одинаковыми API, и на разных платах поддерживается либо тот, либо другой?
Читать полностью »