|
Генерация звука, Воспроизведение по нотам |
|
|
|
Jul 9 2018, 08:15
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(uriy @ Jul 9 2018, 08:59)  Нашел на форуме несколько подобных тем. Но как-то все не то. Мне нужно генерить сигналы нажатия клавиш, аварийные сигналы и другие предупреждающие сигналы. Конечно хочется чтобы все это было благозвучным. Просто килогерц не нравится. ... Звук выводится через ЦАП в STM32. 1. Запустить таймер на, скажем, 8kHz 2. По срабатыванию таймера выдать в ЦАП выборку из сэмпла. 3. Выборку можно взять либо из таблицы сэмплов для разных нот, либо, для периодических сигналов, вычислить математически. Примерно так.
Сообщение отредактировал KnightIgor - Jul 9 2018, 08:16
|
|
|
|
|
Jul 9 2018, 09:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(uriy @ Jul 9 2018, 10:59)  . . . .Конечно хочется чтобы все это было благозвучным. . . . Основа благозвучности - гармоническая форма выходного сигнала. Самое простое решение (как для встроенного DAC так и внешняя его эмуляция на резисторах) - записать таблицу синуса (достаточно четверть периода). Если нужны "навороты" сделайте формирователь формы огибающей амплитуды, как в муз. инструментах. За "базу" можно взять аппноты, где реализуется формирование DTMF кодов (телефония). Есть аппноты и для формирования синусоидального сигнала. Для форммирования гарм. сигнала возможно использовать и PWM + нч фильтр.
|
|
|
|
|
Jul 9 2018, 09:50
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(kovigor @ Jul 9 2018, 12:47)  Увы, не выйдет так. Я пробовал. Надо быть музыкантом, наверное. Я использовал уже готовые наборы нот, заимствуя их из нескольких проектов музыкальных шкатулок ... Наверное, нужно. Хотя бы знать, что такое терция, кварта, квинта. И аккорды, как следствие. А дальше - элементарно. Небось, весь "Турецкий марш" играть не обязательно. Аккорда хватит.
|
|
|
|
|
Jul 9 2018, 13:39
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Где-то месяц назад решили с дочкой (6 лет) в субботу сделать какую-нить электронную поделку. Я прикинул, что забахаем музыкальную шкатулку на УМС8-08, бо схема там простейшая, детальки есть. Спаяли - не работает. Налаживал - толку ноль. Потом нашел и становил УМС7-05 - играет, но мелодии там уж больно скучные, и настрой уже далеко не боевой. Я расстроен, дочка тоже... и вот на таком фоне поступил я немного эмоционально. Короче, в той УМС8-08 по какой-то причине не работал встроенный генератор. Подаешь извне 32кГц - все играет, а кварц раскачать сама не может. Доча еще, представитель современной молоди: "пап, а ты из этой микросхемы туда загрузи". Ага. В общем, на следующий день сделал я контроллер, который подает 32кГц на вход, а на выходе записывает параметры ШИМ. По ним делает реверс нот и пауз. Короче там не все так тривиально, у нот есть не только высота, получаемая с ДПКД, но и возможность нарастания, спада и удержания ноты как у OPL-синтезаторов. Нигде в Интернете не нашел ПЗУ от этих УМС и схемы внутреннего управления, а свою уж как-то долго показалось реверсить.
Я к чему? К тому, что если где-то есть движок для проигрывания УМС-совместимого ПЗУ, то там довольно все серьезно, и можно его было бы использовать в своих проектах для весьма сложных композиций с ШИМ-управлением (без ЦАП).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|