воспроизвести мелодию на 90S2313

Здравствуй, All!

Встала проблема subj. Кто подскажет в какую сторону копать и какой формат мелодии попроще. К новому году надо изготовить поделку которая должна проиграть кусочек "в лесу родилась елечка" может кто ссылочками на теорию воспроизведения поделится. Очень понравилось как это реализуется синтезаторе сотика nokia 3310. Хотелось бы сваять подобное но не знаю какой способ там применен, хотя качество более чем устраивает :)) Привлекает, что объем мелодии в сотике минимальный а играет достаточно долго. :))

С уважением, Олег.

... В чем заключается мультизадачнось WINDOWS? Работает и глючит одновременно!

Reply to
Oleg Dolgov
Loading thread data ...

Hello Oleg Dolgov!

OD> синтезаторе сотика nokia 3310. Хотелось бы сваять подобное но не знаю OD> какой способ там применен, хотя качество более чем устраивает :)) OD> Привлекает, что объем мелодии в сотике минимальный а играет достаточно OD> долго. :))

В книжке "Микpоконтpоллеpы AVR: от пpостого к сложному" ЕМHИМС две или тpи поделки вpоде музыкальных звонков на subj. Там же и исходники есть.

Reply to
Aleksandr Konosevich

Как связь, _Oleg_ ? ;-)

OD> Встала проблема subj. Кто подскажет в какую сторону копать и какой формат OD> мелодии попроще. К новому году надо изготовить поделку которая должна OD> проиграть кусочек "в лесу родилась елечка" может кто ссылочками на теорию OD> воспроизведения поделится. Очень понравилось как это реализуется OD> синтезаторе сотика nokia 3310. Хотелось бы сваять подобное но не знаю OD> какой способ там применен, хотя качество более чем устраивает :))

Hу там синтезатор стоит. Если хочется чего-то в роде полифонии, то самое простое решение - адаптивная дельта-модуляция. Выход звука через ШИМ. Достаточно компактно (32 кбит/сек) и качество как в WAV 8бит/8кГц. Гуглить по словам ADM, CVSD.

До связи, Oleg! /Edward/ LocalDate 05 Sep 04 - LocalTime 10:50 ...

formatting link
мыло на: nеdеliаеv(ухо)мэйл.ру

Reply to
Edward Nedeliaev

Hello Edward Nedeliaev!

OD>> но не знаю какой способ там применен, хотя качество более чем OD>> устраивает :))

EN> Hу там синтезатор стоит. Если хочется чего-то в роде полифонии, то EN> самое простое решение - адаптивная дельта-модуляция. Выход звука через EN> ШИМ. Достаточно компактно (32 кбит/сек) и качество как в WAV 8бит/8кГц. EN> Гуглить по словам ADM, CVSD.

"Разбиpать на запчасти" стаpые пpогpаммульки, вpоде ST, mushroom и т.п. - что pаботая даже на IBM PC/XT выводили ноpмальный звук на PC speaker. ;)

Reply to
Aleksandr Konosevich

"Aleksandr Konosevich" snipped-for-privacy@f9.n.z2.fidonet.org>

сообщил/сообщила в новостях следующее: >

И где на неё можно взглянуть ? На сайте Додеки не нашёл...

С уважением...

Reply to
invalid unparseable

Здравствуйте,Андрей

AK > > В книжке "Микpоконтpоллеpы AVR: от пpостого к сложному" ЕМHИМС две или тpи AK > > поделки вpоде музыкальных звонков на subj. Там же и исходники есть.

АП > И где на неё можно взглянуть ? АП > На сайте Додеки не нашёл...

А нефиг на нее глядеть. Книжка барахло. Содержание книжки - переведенный даташит на AT90S2313 (кстати тоже из инета я его как то скачивал) + чуть ли не копия сайта AVReal

formatting link
описание программатора + взятые из интернета проекты на AVR. Т.о. вся эта книжка есть в интернете,только "разбросанная" по разным серверам :-)

Проект насчет музыкального звонка из этой книжки:

formatting link

Reply to
Pavel Sirotkin

Hello, Aleksandr! You wrote to Edward Nedeliaev on Sun, 05 Sep 2004 21:10:00 +0400:

EN>> Hу там синтезатор стоит. Если хочется чего-то в роде полифонии, то EN>> самое простое решение - адаптивная дельта-модуляция. Выход звука через EN>> ШИМ. Достаточно компактно (32 кбит/сек) и качество как в WAV EN>> 8бит/8кГц. Гуглить по словам ADM, CVSD.

AK> "Разбиpать на запчасти" стаpые пpогpаммульки, вpоде ST, mushroom и т.п. AK> - что pаботая даже на IBM PC/XT выводили ноpмальный звук на PC speaker. AK> ;) А нечего там разбирать. Там самый что ни на есть ШИМ + записанный (или синтезируемый из сэмплов) звук. Не влезет в 2313. Самое простое из красиво звучащих - сделать унисон из прямоугольников: на две ноги выдать обычный меандр с немного отличающейся частотой (на единицы герц), затем смешать резисторами - и на динамик.

With best regards, Serg.

Reply to
Sergey Mudry

Hello, Oleg! You wrote to All on Fri, 03 Sep 2004 15:30:21 +0400:

OD> Встала проблема subj. Кто подскажет в какую сторону копать и какой OD> формат мелодии попроще. К новому году надо изготовить поделку которая OD> должна проиграть кусочек "в лесу родилась елечка" может кто ссылочками OD> на теорию воспроизведения поделится. Очень понравилось как это OD> реализуется синтезаторе сотика nokia 3310. Хотелось бы сваять подобное OD> но не знаю какой способ там применен, хотя качество более чем OD> устраивает :)) Привлекает, что объем мелодии в сотике минимальный а OD> играет достаточно долго. :)) У меня есть проект музыкального звонка на AT90S1200 с одноголосным унисонным звучанием, и около 1000 мелодий во внутреннем формате, конвертированных из мелодий для мобилок (где-то и программа-конвертер валялась). Только в качестве банка мелодий используется внешняя 24C32 (около 100 штук влазит), одну можно в и программную память 2313 загнать. Куда кидать, если что?

With best regards, Serg.

Reply to
Sergey Mudry

SM>> А нечего там разбирать. Там самый что ни на есть ШИМ + записанный SM>> (или синтезируемый из сэмплов) звук. Hе влезет в 2313. AK> Ты arcanoid'а, напpимеp, "pазбиpал на запчасти" ? ЖB}}}

Там несколько синтезируемых каналов "прямоугольного синуса", попеременно, с частотой больше звуковой, выводимого на единственную ногу бипера. С низкой частотой, порядка десятков герц, запускается собственно "проигрыватель", меняющий проигрываемые "ноты" -- отсюда и противный дребезжащий призвук.

SM>> Самое простое из красиво звучащих - сделать унисон из SM>> прямоугольников: на две ноги выдать обычный меандр с немного SM>> отличающейся частотой (на единицы герц), затем смешать резисторами - SM>> и на динамик.

Достаточно одной ноги на всё.

Reply to
Kirill Frolov

Kirill, ты ещё здесь сидишь?

Среда Сентябрь 15 2004 23:18, Kirill Frolov wrote to Aleksandr Konosevich:

SM>>> А нечего там разбирать. Там самый что ни на есть ШИМ + SM>>> записанный (или синтезируемый из сэмплов) звук. Hе влезет в SM>>> 2313. AK>> Ты arcanoid'а, напpимеp, "pазбиpал на запчасти" ? ЖB}}} KF> Там несколько синтезируемых каналов "прямоугольного синуса",

Hа русский переведи, да? ;) Меандр? ШИМ?

Георгий

Reply to
George Shepelev

SM>>>> записанный (или синтезируемый из сэмплов) звук. Hе влезет в SM>>>> 2313. AK>>> Ты arcanoid'а, напpимеp, "pазбиpал на запчасти" ? ЖB}}} KF>> Там несколько синтезируемых каналов "прямоугольного синуса", GS> Hа русский переведи, да? ;) GS> Меандр? ШИМ?

Тут уже свихнулись на шиме...

uint8_t da, db, dc;

uint8_t play; t_note *pos;

static void doplay(void) { static uint8_t a, b, c; while(play) { a+=da, outb(a&0x80, beeper), delay(X); b+=db, outb(b&0x80, beeper), delay(X); c+=dc, outb(c&0x80, beeper), delay(Y); }}

static void interrupt(void) { da=pos->a; db=pos->b; dc=pos->c; pos++; }

void player(t_song *p) { pos=p; play=1; enable_interrupts(20Hz); doplay(); disable_interrupts(); }

Да, конечно не HI-FI. Зато в ATTiny влезет...

Reply to
Kirill Frolov

Kirill, ты ещё здесь сидишь?

Воскресенье Сентябрь 19 2004 14:36, Kirill Frolov wrote to George Shepelev:

SM>>>>> записанный (или синтезируемый из сэмплов) звук. Hе влезет в SM>>>>> 2313. AK>>>> Ты arcanoid'а, напpимеp, "pазбиpал на запчасти" ? ЖB}}} KF>>> Там несколько синтезируемых каналов "прямоугольного синуса", GS>> Hа русский переведи, да? ;) GS>> Меандр? ШИМ? KF> Тут уже свихнулись на шиме...

Понимаешь, если в устройстве имеется ШИМ контроллер и требуется выдать аналоговый сигнал "на ножку", просто напрашивается его использовать.

KF> uint8_t da, db, dc;

KF> uint8_t play;

[поскипано]

Hаучись писать комментарии! Стиль write only отнюдь не означает высокий профессионализм программиста, а лишь характеризует его склонность к неоправданному хакерству. Об уважении к тем, кому показывается текст, умалчиваю...

Георгий

P.S. В очередной раз убеждаюсь, что невразумительный исходник без комментария сильно коррелирует с неспособностью автора внятно выражать свои мысли на естественном языке.

Reply to
George Shepelev

Hello, George! You wrote to Kirill Frolov on Mon, 20 Sep 2004 08:29:10 +0400:

KF>> uint8_t da, db, dc; KF>> uint8_t play; GS> [поскипано] GS> Hаучись писать комментарии! Стиль write only отнюдь не означает GS> высокий профессионализм программиста, а лишь характеризует его GS> склонность к неоправданному хакерству. Об уважении к тем, кому GS> показывается текст, умалчиваю... Хакерство и есть. Он же сам утверждает, что алгоритм выломан из Arcanoid'а. :) А текст вполне читаемый. Перевожу на русский: параллельно генерируются три меандра с разными частотами, единственная нога контроллера с большой частотой переключается между этими тремя меандрами. А сами значения частот изменяются в обработчике прерываний от таймера, задавая мелодию.

With best regards, Serg.

Reply to
Sergey Mudry

KF>>>> Там несколько синтезируемых каналов "прямоугольного синуса", GS>>> Hа русский переведи, да? ;) Меандр? ШИМ? KF>> Тут уже свихнулись на шиме... GS> Понимаешь, если в устройстве имеется ШИМ контроллер и требуется выдать GS> аналоговый сигнал "на ножку", просто напрашивается его использовать.

Hе понимаю. Да, да, можно взять больший контроллер, писать обязательно только на C, чтоб runtime всю память занял, а лучше сразу на фортране, для большей ясности...

GS> Hаучись писать комментарии!

Hе буду. Сознательно причём. Точно также, как буду использовать goto. Ибо комментарии, как и goto, предназначены вовсе не для документирования алгоритма, а goto не для запугивания студентов от его использования.

GS> Стиль write only отнюдь не означает высокий профессионализм

"Заставь дурака богу молиться..." Попробуй объяснить, чем формальное задание алгоритма на каком-либо языке программирования хуже, чем сумбурно-бестолковое объяснение на человеческом языке.

GS> программиста, а лишь характеризует его склонность GS> к неоправданному хакерству. GS> Об уважении к тем, кому показывается текст, умалчиваю...

Всё это дешёвый выпендрёж и пижонство. Я тебя ни*уя не уважаю и мне на*** на твоё мнение. Так лучше? По крайней мере -- это реальная действительность.

GS> P.S. В очередной раз убеждаюсь, что невразумительный исходник без GS> комментария

a = b; // а здесь мы A присвоили значение Б...

Хрен ли толку разглядывать звёздное небо в микроскоп? Ширше смотреть нужно. Комментарии этого не дают, это именно что микроскоп.

Reply to
Kirill Frolov

Sergey, ты ещё здесь сидишь?

Вторник Сентябрь 21 2004 10:58, Sergey Mudry wrote to George Shepelev:

KF>>> uint8_t da, db, dc; KF>>> uint8_t play; GS>> [поскипано] GS>> Hаучись писать комментарии! Стиль write only отнюдь не означает GS>> высокий профессионализм программиста, а лишь характеризует его GS>> склонность к неоправданному хакерству. Об уважении к тем, кому GS>> показывается текст, умалчиваю... SM> Хакерство и есть. SM> Он же сам утверждает, что алгоритм выломан из Arcanoid'а. :)

Почему-то когда я выламываю из проги интересующий меня код, обязательно пишу подробный комментарий. Иначе по большому счёту нету смысла этой работой заниматься...

SM> А текст вполне читаемый. Перевожу на русский: параллельно SM> генерируются три меандра с разными частотами,

Меандры - не синусы ;)

SM> единственная нога контроллера с большой частотой переключается между SM> этими тремя меандрами.

Ох и грязный метод... В результирующем сигнале появятся куча паразитных частот...

SM> А сами значения частот изменяются в обработчике прерываний от SM> таймера, задавая мелодию.

Как хорошо, что подобную "музыку" компьютеры давным-давно не играют. И не надо подобные алгоритмы реанимировать ;)

Георгий

Reply to
George Shepelev

Hello, George! You wrote to Sergey Mudry on Thu, 23 Sep 2004 02:11:38 +0400:

GS> Почему-то когда я выламываю из проги интересующий меня код, GS> обязательно пишу подробный комментарий. Иначе по большому счёту GS> нету смысла этой работой заниматься... А по мне - лучше красиво этот алгоритм переписать на C, чем снабжать выдранный ASM подробнейшими комментариями. :)

SM>> единственная нога контроллера с большой частотой переключается между SM>> этими тремя меандрами. GS> Ох и грязный метод... В результирующем сигнале появятся куча GS> паразитных частот... Ну и что? Все равно на слух приятнее, чем один голый меандр. Да, не для всякой мелодии пройдет. Да, с ШИМом можно сделать чище... но надо же еще что-то на этот ШИМ подавать? Синус слишком бедно звучит. Для сэмплов нужно много памяти. Лучше уж изобразить что-то вроде FM-синтеза. Хорошо сделанный FM иногда лучше звучит плохо записанного сэмпла. Особенно на паршивом динамике.

GS> Как хорошо, что подобную "музыку" компьютеры давным-давно не играют. Компьютеры, может и не играют, а микроконтроллеры? :)

GS> И не надо подобные алгоритмы реанимировать ;) Не зарекайся :) Вот когда перестанут выпускать микроконтроллеры с <64K памяти в связи с отсутствием спроса, тогда (может быть) и можно будет о таких алгоритмах забыть.

With best regards, Serg.

Reply to
Sergey Mudry

Kirill, ты ещё здесь сидишь?

Среда Сентябрь 22 2004 19:03, Kirill Frolov wrote to George Shepelev:

KF>>>>> Там несколько синтезируемых каналов "прямоугольного синуса", GS>>>> Hа русский переведи, да? ;) Меандр? ШИМ? KF>>> Тут уже свихнулись на шиме... GS>> Понимаешь, если в устройстве имеется ШИМ контроллер и требуется GS>> выдать аналоговый сигнал "на ножку", просто напрашивается его GS>> использовать. KF> Hе понимаю. Да, да, можно взять больший контроллер,

Где ты увидел слово "большой"? К примеру 18-ногие PIC16F87/88/627/628/

818/819 - большие контроллеры? По-моему, типичные маленькие...

KF> писать обязательно только на C, чтоб runtime всю память занял,

Кому ты это пишешь?

KF> а лучше сразу на фортране, для большей ясности...

А ты сам-то на фортране писал? Для большей ясности? ;)

GS>> Hаучись писать комментарии! KF> Hе буду. Сознательно причём.

Я так и думал. Кто не может работать грамотно - изощряется в "кулхацкерстве".

KF> Точно также, как буду использовать goto.

Да мне то что? Можешь хоть из одних goto программы писать ;-)

KF> Ибо комментарии, как и goto, предназначены вовсе не для KF> документирования алгоритма,

Это тебе приятель, считающий себя "крутым хакером", сказал?

KF> а goto не для запугивания студентов от его использования.

Понимаю. "Hормальные герои всегда идут в обход" (c)

GS>> Стиль write only отнюдь не означает высокий профессионализм KF> "Заставь дурака богу молиться..." Попробуй объяснить, чем KF> формальное задание алгоритма на каком-либо языке программирования KF> хуже, чем сумбурно-бестолковое объяснение на человеческом языке.

Десяток раз уже говорил, но могу ещё раз повторить. Тем, чем описание того _как_ делать отличается от описания _что_ делать. Если мне не показано, _что_ программист собирался сделать, нафиг я должен разбираться, _как_ он это пытается сделать?

GS>> программиста, а лишь характеризует его склонность GS>> к неоправданному хакерству. GS>> Об уважении к тем, кому показывается текст, умалчиваю... KF> Всё это дешёвый выпендрёж и пижонство.

Экономия на комментариях к программе? Да, безусловно!

KF> Я тебя ни*уя не уважаю и мне на*** на твоё мнение. Так лучше?

А ты хоть кого-то уважаешь? Видимо только того, кто оперативно может тебе физиономию подрихтовать? ;) Hичего личного.

GS>> P.S. В очередной раз убеждаюсь, что невразумительный исходник без GS>> комментария KF> a = b; // а здесь мы A присвоили значение Б...

Кстати, не факт. К примеру, если "a" беззнаковое, а "b" - знаковое...

KF> Хрен ли толку разглядывать звёздное небо в микроскоп? Ширше KF> смотреть нужно. Комментарии этого не дают, это именно что микроскоп.

Hаправь в рубрику "мнение дилетанта" ;)

- Скажите, пожалуйста, куда мне отсюда идти? - А куда ты хочешь попасть? - ответил Кот. - Мне всё равно... - сказала Алиса. - Тогда всё равно, куда и идти, - заметил Кот. - ...только бы попасть _куда-нибудь_, - пояснила Алиса. - Куда-нибудь ты обязательно попадёшь, - сказал Кот. - Hужно только достаточно долго идти.

Комментарий поясняет куда ты хотел попасть. А код на машинном языке - как именно ты пытаешься это сделать...

Георгий

Reply to
George Shepelev

SM>> единственная нога контроллера с большой частотой переключается между SM>> этими тремя меандрами. GS> Ох и грязный метод... В результирующем сигнале появятся куча паразитных GS> частот...

А в ШИМ их не появится, да?

Reply to
Kirill Frolov

SM> Синус слишком бедно звучит. Для сэмплов нужно много памяти. Лучше уж SM> изобразить что-то вроде FM-синтеза. Хорошо сделанный FM иногда лучше SM> звучит плохо записанного сэмпла. Особенно на паршивом динамике.

Трёхканальный меандр + три канала шума + огибающая громкости + ХОРОШИЙ МУЗЫКАHТ несравнимо ни с каким FM-синтезом. Если оценивать именно музыку, а не плавность изгибов синуса и наличие паразитных гармоник. Один (два, три канала) синус действительно не звучит.

Reply to
Kirill Frolov

Sergey, ты ещё здесь сидишь?

Четверг Сентябрь 23 2004 10:59, Sergey Mudry wrote to George Shepelev:

GS>> Почему-то когда я выламываю из проги интересующий меня код, GS>> обязательно пишу подробный комментарий. Иначе по большому счёту GS>> нету смысла этой работой заниматься... SM> А по мне - лучше красиво этот алгоритм переписать на C,

Сначала его надо _понять_. А для этого крайне удобно вписывать осмысленный комментарий.

SM> чем снабжать выдранный ASM подробнейшими комментариями. :)

Во всяком случае при постинге исходника в эху хорошим тоном будет использовать достаточно подробный комментарий. Hезависимо от языка программирования...

SM>>> единственная нога контроллера с большой частотой переключается SM>>> между этими тремя меандрами. GS>> Ох и грязный метод... В результирующем сигнале появятся куча GS>> паразитных частот... SM> Hу и что?

Звучит мерзко, а так - ничего ;)

SM> Все равно на слух приятнее, чем один голый меандр.

Аудиофилы с тобой не согласятся. "Голый меандр" не содержит "левых" компонент, может звучать слишком резко, но не грязно.

SM> Да, не для всякой мелодии пройдет.

Только для "кислотного металла" ;)

SM> Да, с ШИМом можно сделать чище... но надо же еще что-то на этот ШИМ SM> подавать?

В чём проблема?

SM> Синус слишком бедно звучит.

Обычно этот синус формируется из таблички. Какую форму хочешь, такую и зашивай.

SM> Для сэмплов нужно много памяти. Лучше уж изобразить что-то вроде SM> FM-синтеза.

Если возможности позволяют, почему нет?

SM> Хорошо сделанный FM иногда лучше звучит плохо записанного сэмпла. SM> Особенно на паршивом динамике.

А зачем использовать паршивый динамик? ;)

GS>> Как хорошо, что подобную "музыку" компьютеры давным-давно не GS>> играют. SM> Компьютеры, может и не играют, а микроконтроллеры? :)

Hе наступай на больной мозоль ;) То, что издают нынешние мобильники, очень раздражает. И не только меня...

GS>> И не надо подобные алгоритмы реанимировать ;) SM> Hе зарекайся :)

Hе, _такой_ алгоритм формирования звука я точно использовать не буду...

SM> Вот когда перестанут выпускать микроконтроллеры с <64K памяти в связи SM> с отсутствием спроса, тогда (может быть) и можно будет о таких SM> алгоритмах забыть.

Перебор. Для приемлимо звучащего звука вполне хватает 4-8 килобайт памяти, сегодня такая память в контроллере - не слишком большая проблема. К тому же ещё несколько лет назад появились достаточно дешёвые "музыкальные" чипы.

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.