20.03.2014, 12:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Эмуляция звука барабана на STM8S003
Пытаюсь сделать эмуляцию звука барабана. Почитал, что в простейшем случае используют короткие куски белого шума. ЦАП эмулирую при помощи ШИМа на TIM1, TIM2 устанавливает нужный уровень громкости (изменяя скважность TIM1). Проверил — получается как-то совершенно непохоже.
Как я понял, более качественный звук дает воспроизведение сэмплов. Но самый короткий сэмпл, что я нашел, весит почти 60кБ! А надо — от силы килобайта на 3-4.
Вопрос: возможно ли более-менее нормальный звук барабанов на этом МК сделать?
Ну и еще вопрос: как бы так попроще эмулировать звучание музыки? Гольная синусоида звучит ужасно; пила звучит получше, но все равно не хватает тембровой окраски. Может, сделать на трех таймерах (ШИМом) генерацию основного тона и пары гармоник, а на операционнике их смикшировать?
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.03.2014, 12:26
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Вариант 1. Использовать RLE компрессию. Данные хранить во флеши.
Вариант 2. Данные хранить во внешней SPI флеши. Их можно читать на частоте до 80МГц и выше. Для барабанов достаточно и 8кГц на 8 бит. Т.е. 64кГц SPI даже будет достаточно. Задача элементарная.
|
|
|
|
20.03.2014, 12:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от Easyrider83
|
Вариант 1
|
Так сэмплы-то особо не сжимаются. Что, программным синтезом - никак?
Сообщение от Easyrider83
|
Вариант 2
|
Ну, подключать внешнюю флешку в детской игрушке - это уже чересчур. Хочется как можно проще сделать.
Сообщение от Easyrider83
|
Для барабанов достаточно и 8кГц на 8 бит
|
Частота тактирования флешки - 16МГц, так что, 8бит сделать будет проблематично (МК же из обработчика прерываний выходить не будет). Сейчас у меня TIM1 работает на 4МГц, и то это многовато для используемого мосфета (усилители я только позавчера заказал, придут через месяц-два).
Чтобы частота была более-менее, пришлось ограничиться четырьмя битами (4/16МГц — частота ШИМ, скважность меняется от 0/16 до 16/16).
Для реализации восьмибитного псевдо-ЦАП нужно на каждый импульс ШИМ выдавать 256 импульсов таймера. Т.о., даже в случае частоты TIM1, равной 16МГц, частота ШИМ получится равной 62.5кГц. Т.о., чтобы генерировать звук с частотой, скажем, 10кГц, на один период выйдет всего-то 6 периодов ШИМ. Маловато.
Буду что-нибудь придумывать, если других вариантов не найдется.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.03.2014, 13:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от eddy
|
Пытаюсь сделать эмуляцию звука барабана. Почитал, что в простейшем случае используют короткие куски белого шума. ЦАП эмулирую при помощи ШИМа на TIM1, TIM2 устанавливает нужный уровень громкости (изменяя скважность TIM1). Проверил — получается как-то совершенно непохоже.
|
Синтез звучания любых муз. инструментов (в том числе и ударных) - штука сложная. "Простейший" случай не катит. любой инструмент, кроме частотных составляющих имеет еще и амлитудные. [в простейшем случае] одну составляющую - огибающую. А она, быть может, больше определяет характер звучания, чем ее частотные наполнители в спектре. Attack, dessay, sustaine, release. Изменяя времена длительностей этих фаз, их максимальные амплитуды, получаем широчайшее мноогобразие имитируемых инструментов. Следующим этапом должно быть динамическое во времени изменение спектрального состава синтезируемого звука. И примешивание (по необходимости) белого/розового шумов для отдельных видов имитации. Ну и надо учитывать, что генератор шумов должен иметь свои огибающие...
Монотонное звучание пилы, треугольника, меандра, пульса лишь изменяют тембр звучания (спектр), но без динамического изменения этого спектра-тембра невозможно получить ничего путного.
Барабаны в этом плане довольно сложный для синтезирования инструмент, отсюда и рекомендации по использованию семплов.
На МК пусть даже среднего класса добиться "похожести" скорее всего будет невозможно. Наверное, лучше порыться в инете по ключам: drum machine, analog, digital. Пусть Гугл для начала потрудится..
В области синтезирования звуков за последнее десятилетие сделан мощный прорыв. Откройте современные Korg, Yamaha или иные - там почти все реализовано на моночипе. Наверное, велосипед надо повесить на стенку и пользоваться продуктами умов инженеров, которые съели известное животное в этом деле...
Try this way
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 20.03.2014 в 14:01.
|
|
|
|
20.03.2014, 14:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
ut1wpr, мне не нужен совсем уж идентичный звук - это же детская игрушка!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.03.2014, 14:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от eddy
|
ut1wpr, мне не нужен совсем уж идентичный звук - это же детская игрушка!
|
Нельзя портить детям психику.
|
|
|
|
20.03.2014, 14:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от eddy
|
ut1wpr, мне не нужен совсем уж идентичный звук - это же детская игрушка!
|
А где об этом было сказано?
И почему в игрушке должен быть кошмар? Простейшая драм-мэшин реализуется на парочке 555 таймеров. Секвенция и прочее управление - копеечный 8S003. Но понимание того, что ты делаешь, чего хочешь добиться, на мой взгляд должно лежать в основе всех действий. Или получишь ХЗЧ.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
20.03.2014, 14:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от ut1wpr
|
Простейшая драм-мэшин реализуется на парочке 555 таймеров.
|
У меня совершенное рукожопие в электронике. И если с цифровой хоть как-то что-то получается, то в аналоговой - полный швах.
Поэтому и хочется обойтись как можно более простой схемой.
Я уже понял, что на транзисторах усилитель я не сделаю (для усиления звука с 200-рублевого китайского плеера на 4-омный динамик), поэтому заказал копеечных ОУ.
Вкратце, суть такова: у ребенка поломался "волшебный барабан" (стихи рассказывал и тарахтел). Я решил туда воткнуть копеечный mp3-плеер (чтобы коротенькие мелодии играть), светодиодный индикатор заряда батареи (на двоичном декодере), светодиодную мигалку (использую те светодиоды, которые в барабане уже были). Управление - при помощи макетки на stm8s003 (купил по-дурости, теперь мне она не нужна — для более серьезных дел я уже 8 макеток на s105 купил, по 60 рубликов за макетку). Вот я и подумал, что неплохо бы еще туда добавить эмуляцию звука удара, когда ребенок долбанет по барабану (у "барабана" два пластмассовых кругляша, под которыми находятся пьезоэлементы вроде пищалок с часов "монтана").
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.03.2014, 15:18
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Проще ребенку настоящий барабан купить.
|
|
|
|
20.03.2014, 15:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 116
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Эмуляция звука барабана на STM8S003
Сообщение от Easyrider83
|
Проще ребенку настоящий барабан купить.
|
Она ж маленькая (чуть больше года). Раздолбает настоящий моментально. Да и просто долбить в барабан ей еще не интересно: нужно и чтобы он песенки пел, да светодиодами мыргал.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:43.
|
|