Zwuki na assemblere

Обсуждаем цифровые устройства...
Ответить
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

Wot, zahotel zdelat na mikrokontrollere igrushku s netriwialnymi
zwukowymi effektami.

Pytalsya programmirowat, podbirat, no za chas u menya ne
poluchilosx dazhe "DZH" - zwuka iz tetrisa.

Poluchaetsya pishat. Esli postaratxsya, to s kosmicheskim aktsentom.

Ni u kogo net zagotowok na assemblere razumnyh zwukow?

W Internete ya ne nashel nichego pohozhego,
mozhet kto gde-to widel?

A predelom mechtanij bylo by zagotowki dlya sinteza rechi.
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

А ты как генеришь звуки? Я так понимаю, чтоб сделать какой-либо более-менее приличный звук, надо смешивать несколько частот
Лучше быть первым в деревне, чем вторым в Риме
Реклама
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

Tolko chto
Napisal programmu, kotoraya tsiklicheski wywodit na port logicheskie nuli i edinitsy. Iz massiva.
Esli w sootwetstwuyushem meste napisat
.DB 2,4,5,1
, Budet tsiklicheski wywodit

001111000001

Pytalsya podbirat massiwy.

Udalosx dobitsya effekta edushego traktora, tanka,wertoleta.

A wot Zwuk wzrywa tipa Tdzh-dzh-dzh nikak ne poluchaetsya. A nado dumatx skazem w tetrise oni zhe wywodqtsya imenno tak?
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

A bywayut deshewye avr - kontrollery, u kotoryh mozhno tsifrofoj signal preobrazowywat w analogowyj? :evil:
Реклама
Эиком - электронные компоненты и радиодетали
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

ЦАП можно навертеть на резистивной матрице. Кроме того, чуть ли не все АВРки поддерживают аппаратный ШИМ. Можно модулировать сигнал ШИМом, на выходе ставить фильтр - получится аналог 8)
Лучше быть первым в деревне, чем вторым в Риме
Реклама
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

Резистивная матрица -
контроллер подает напряжение на динамик через разные резисторы?

А что такое ШИМ?

То что в даташите зовется mutiplexer?
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Даташит на какую микросхему? Multiplexer - это мультиплексор, как ни странно :)))
ШИМ - широтно-импульсная модуляция. то есть, при неизменной частоте меняется длительность импульсов, за счет чего изменяется действующее напряжение в сигнале. Проинтегрированный ШИМ дает аналоговый сигнал, эквивалентный (пропорциональный - Р.) длине импульсов
Лучше быть первым в деревне, чем вторым в Риме
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1507
Зарегистрирован: Чт дек 15, 2005 17:34:48
Откуда: Петрозаводск

Сообщение Старый ржавый электронщик »

ksp4, мож те лучше надыбать сэмплов разных и загнать в МК? дешево и сердито :)
звук - это несущая частота + гармоники и обертоны. Шум - это частотнораспределенный сигнал, есть белый, розовый шум. А как ты собираешься синтезировать звук, состоящий из 5-7 основых сигналов с гармониками и пары десятков обертонов - я не знаю.
путь наименьшего сопротивления проходит по пути наитолстого провода (с) Сергей Соболь
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 186
Зарегистрирован: Чт янв 12, 2006 00:17:30
Откуда: Новосибирск, ИФП СО РАН

Сообщение Alexey_B »

ksp4 писал(а): А что такое ШИМ?
То что в даташите зовется mutiplexer?
Нет, в даташите ШИМ зовется PWM - Pulse Width Modulation.
Контактная информация:
Max
Админ
Аватара пользователя
Сообщения: 10814
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва

Сообщение Max »

Насчет ШИМа можно посмотреть вот тут:
http://www.radiokot.ru/start/audio/amplifiers/03/
Контактная информация:
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

Ржавый электронщик, а в каком виде сэмлы лучше использовать для звуковых эффектов на контроллере?

I gde ih wzyat?

W internete oni dopustim w wide WAV. Wot ya ego beru i chto delayu?
Perekodiruyu w posledowatelnostx nulej i edinits, wywodimyh na dinamik?

Pytalsya tak delat s rechyu --- sowsem otwratitelno poluchaetsya.
Dazhe sdelal, pripayaw 4 rezistora, 4-bit ЦАП, sokrashal rech do 4 bit -
wse rawno otwratitelno.

Wot kitajskie kukly goworyat "mama". Eto wed mikrokontroller generiruet
nuli i edinitsy?

A mozhet u kogo-to estx bolee udobnyj dlya ispolzowaniya mikrokontrollera
semply - tipa kuskow koda na assemblere?
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

Tak nikto ne pytalsya nauchit mikrokontroller goworit chelowecheskim yazykom?
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Кароч, насчет разрешения звука: наиболее приличное качество начинается с 6 бит. Меньше - и не пробуй - плеваться будешь. Частота выборки - порядка 6...8 кГц. Ну будем считать - 6 (6144 - для круглости счета). Имеем: 6*6144 - 36864 бит/с = 4,5 кБайт/с. Память среднестатистического контроллера - 8 кБ - меньше 2 секунд. То есть - полюбому, на лицо - необходимость внешней памяти. Если религия позволяет - можно написать какой-нибудь простенький кодек. Но ресурсов он будет жрать много, а толку с него, боюсь, будет мало. Хотя можно попробовать :)

Итак, пошагово: че и как делаем:
1. Ужимаем ВАВ до параметров 6бит 6144 Гц. Ужатие до 6 бит подразумевает уменьшение дин. диапазона сигнала с 48 (8-бит) до 36 дБ. При этом, создастся вав-файл, состоящий из 8-битных семплов, два старших бита каждого семпла всегда будут равны 0.
2. Пишем софтульку, которая откусит от ВАВ-файла шапку и пожмакает семплы таким образом, что лишних нулей не станет. Получится куча-мала, которую ни один виндозный проигрыватель уже играть не станет. Да и не надо :)
3. Пишем вторую софтульку, которая переведет бинарный файл в шестнадцатеричное текстовое представление вида 0х00...0хFF. То есть, на ее выходе мы должны поиметь то, что будет вставлено в текст программы контроллера как массив.
4. Вставляем то что поимели в текст программы, пишем читатель массива и плеватель прочитанного в порт. Вешаем на копыта 6 резисторов, включаем, прошиваем, слушаем 8)
Лучше быть первым в деревне, чем вторым в Риме
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 186
Зарегистрирован: Чт янв 12, 2006 00:17:30
Откуда: Новосибирск, ИФП СО РАН

Сообщение Alexey_B »

Serega писал(а): 4. Вставляем то что поимели в текст программы, пишем читатель массива и плеватель прочитанного в порт. Вешаем на копыта 6 резисторов, включаем, прошиваем, слушаем 8)
Тогда лучше уж все же ШИМ пользовать, ибо ног меньше требуется, да и сильно хорошо резисторы согласовывать не надо.
Контактная информация:
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт фев 09, 2006 19:59:06
Откуда: Москва

Сообщение ksp4 »

A w 4-bitnom wariante i wprawdu, nichego razobrat nelzya.

6 rezistorow koe-kak rabotayut, mozho slowa dowolno horosho
razobratx wblizi,

a stoit otojti na 1 metr ot dinamika (melkij, ot plohogo dwuhkassetnika), tolko gromkoe kwakanie slyshno. Widimo eto swojstwo dinamika ne izluchat wysokie chastoty. (?)
Zdes mozhno chto-nibud pridumat?

A pro PWM: prochital statiyu na etom sajte, chto-to ponyal, no

W datasheet na mega88 napisano, chto chtoby ispolzowat sootwetstwuyushuyu nozhku kontrollera dlya wstroennoj
PWM, nuzhno (ili ne nuzhno? 8) )
ustanowit signalnye bity
PVOE i POV.
A po kakomu adresu ih mozhno iskatx, ya nikak ne smog najti. Raz 5 perechitywal.
Nex
Родился
Аватара пользователя
Сообщения: 9
Зарегистрирован: Вт июл 08, 2008 10:00:41
Откуда: Котово

Сообщение Nex »

3. Пишем вторую софтульку, которая переведет бинарный файл в шестнадцатеричное текстовое представление вида 0х00...0хFF. То есть, на ее выходе мы должны поиметь то, что будет вставлено в текст программы контроллера как массив.
Можно поподробней,где найти такую програмку, сам написать н7е могу? есть ли готовое решение? Очень нужна) Тоже идея научить говорить свою Мегу. Хочу чтобы называл температуру голосом.
Контактная информация:
abc
Друг Кота
Аватара пользователя
Сообщения: 3688
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Сообщение abc »

Делал так.
Оцифровать (или переконвертировать) звуки в формат WAV PCM 8бит.
Переименовать в *.bin и с помощью Пони залить полученный файл в 24С512. Можно предварительно отрезать WAV-хедер (первые 35 байт) в любом HEX-редакторе.
Цепляем 24С512 к любому контроллеру, имеющему аппаратный I2C.
В цикле читаем данные из памяти (можно побайтно) и тут же гоним их на ЦАП. Я использовал R-2R цепочку.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

ksp4 писал(а):Tak nikto ne pytalsya nauchit mikrokontroller goworit chelowecheskim yazykom?
Думаю это как раз для тебя...
http://pol-sem.narod.ru/polymuson/polymuson.htm
Nex
Родился
Аватара пользователя
Сообщения: 9
Зарегистрирован: Вт июл 08, 2008 10:00:41
Откуда: Котово

Сообщение Nex »

А вот если мне надо записать несколько сэмплов маленьких(например для каждой цифры) а потом уже смотря какое число проигрывать нужные сэмплы, как быть? Чтобы для числа 36 например проиграть сэмпл "3" а следом за ним "6". Ну а программку кто-нибудь подскажет для перевода?
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 487
Зарегистрирован: Чт ноя 23, 2006 22:47:35

Сообщение Pahan »

У меня качество звука с ШИМ было очень плохим. Если трафег халявный, можете послушать чего у меня получилось http://depositfiles.com/files/6738932 (примерно 1,5 Мб). Там 2 файла, один оригинальный, другой с выхода ШИМ 22кГц по методу Roman Black http://www.romanblack.com/picsound.htm. В 128К память влазит примерно 53сек. звука. Запись делал на линейный вход звуковухи на 44кГц.
Контактная информация:
Ответить

Вернуться в «Цифровая техника»