Перейти к содержанию
    

Проиграть массив нот на STM32

Вот задумался, как бы на пьезопищалке, подключенной к выходу таймера STM32, сыграть мелодию, а не просто пищать одним тоном. Например, таймер высоты ноты по срабатыванию переключает выход на противоположный. Значит, задать ему нужно половину периода ноты. Скважность будет всегда два. А длительность ноты отсчитывать другим таймером, и по его срабатыванию загружать по DMA новый полупериод в таймер высоты и новую длительность в таймер длительности. Это, получается, два канала DMA нужно. Будет два массива - ноты и их длительности. Количество элементов массива задает количество пересылок в DMA.

Кто-нибудь делал подобное? Сложного, полифонического не хочу. Чисто в качестве небольшого украшения в работе прибора.    

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, ViKo сказал:

Кто-нибудь делал подобное? Сложного, полифонического не хочу. Чисто в качестве небольшого украшения в работе прибора.    

Мне понравилась реализация мелодий в старых микросхемах УМС. Там кроме высоты и длительности ноты есть еще и огибающая.

Причем выход цифровой комплиментарный с тактом 32768Гц.

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

Сделал граббер сигнала с УМС. Сырые данные есть, но превратить их обратно в ноты/длительность/огибающую и паковку в 128 байт в авторежиме не осилил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно даже и без длительности. Повторять ту же ноту, если нужно дольше. 

Громкость можно регулировать скважностью, но для меня это лишнее. Да и тембр тогда меняется неестественно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, ViKo said:

Можно даже и без длительности. Повторять ту же ноту, если нужно дольше. 

Громкость можно регулировать скважностью, но для меня это лишнее. Да и тембр тогда меняется неестественно. 

Вот интересный проект на эту тему. Лучшее что видел, но до практической реализации руки не дошли.

http://www.deep-shadows.com/hax/wordpress/?page_id=1111

https://www.radiokot.ru/circuit/digital/game/51/

Изменено пользователем Михась

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пробовал делать такое, только попроще, без DMA.   Таймер с прерываниями ( длительность нот) +  PWM ( высота ноты).  "Мурка" и "Варяг" были вполне узнаваемы.   Регулировка скважностью громкости мне не понравилась ( или я не умею её готовить).     

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

буквально недавно читал

не помню точную ссылку

но что то из разряда

https://habr.com/ru/post/126835/

https://habr.com/ru/post/348192/

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как же вы забыли про тов. Чана?

http://elm-chan.org/works/mxb/report.html

http://elm-chan.org/works/sd8p/report.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...