Страница 1 из 2

"Музыкальная шкатулка" на ATmega8

Добавлено: Пт авг 21, 2009 12:53:48
Hudgun
Можно ли проиграть коротинькую мелодия на МК: ну там *.midi например или это невозможно? Делаются же китайские шкатулки, игрушки, зажигалки с музыкой, там явно меньше памяти, чем в МК...

Добавлено: Пт авг 21, 2009 15:29:50
Negor
Китайцы пользуются готовыми мкрухами. У меня одна такая была - играла ХэпиБёздэй. Там всего три вывода - + питания, общий и выход на динамик. Так что на китайцев тут равнятся безполезно. Кста советские шкатулки тоже содержали в себе спец микрухи УМС в которых зашиты одна или несколько мелодий. На Меге можно пойти четырьмя путями.
1. - Таймером генерить ноты. Потом заливаем ноты и МК последовательно их проигрывает. Дёшево быстро и памяти мало жрёт. Переферии и процесорного времени хватит на светомузыку.
2. - Проиграть WAV. Опять нагружаем таймер и заливаем вав файл. Памяти жрёт много но если подобрать хороший файлик да пожать его аккуратно - получится ничего.
3. - Разработать самому или поискать проигрыватель MIDI или подобног под AVR. Сам не встречал.
4. - Воспользоватся диктофоном ISD. Если найдёте - сообщите мне где.

Добавлено: Пт авг 21, 2009 15:52:56
Radan
Посмотри здесь - и теория, и практика.
http://bascom.at.ua/load/1-1-0-1

Добавлено: Пт авг 21, 2009 17:42:58
Synergetik
Radan писал(а):Посмотри здесь - и теория, и практика.
http://bascom.at.ua/load/1-1-0-1
Спасибо, полезный ресурс. Буду модифицировать под Си

Добавлено: Пт авг 21, 2009 18:13:02
Hudgun
Synergetik писал(а):
Radan писал(а):Посмотри здесь - и теория, и практика.
http://bascom.at.ua/load/1-1-0-1
Спасибо, полезный ресурс. Буду модифицировать под Си
выложите потом пожалуйста, я сейчас Bascom-AVR докачаю и на протеусе просимулирую :)

Добавлено: Пт авг 21, 2009 18:45:38
Synergetik
Hudgun писал(а):выложите потом пожалуйста, я сейчас Bascom-AVR докачаю и на протеусе просимулирую :)
Знаете ли, это может занять от нескольких дней до нескольких месяцев в зависимости от моей загруженности и понимания принципа кодирования нот. Для меня это не необходимость, а любопытство и желание проявить себя для себя, а не кого-то там, да и не факт, что у меня получится и не могу предоставлять себя в качестве последней инстанции. Так что...

Добавлено: Пт авг 21, 2009 18:53:34
Hudgun
Synergetik писал(а):
Hudgun писал(а):выложите потом пожалуйста, я сейчас Bascom-AVR докачаю и на протеусе просимулирую :)
Знаете ли, это может занять от нескольких дней до нескольких месяцев в зависимости от моей загруженности и понимания принципа кодирования нот. Для меня это не необходимость, а любопытство и желание проявить себя для себя, а не кого-то там, да и не факт, что у меня получится и не могу предоставлять себя в качестве последней инстанции. Так что...
ну большой срочности нету, для меня это тоже любопытство. если получится не поленитесь выложить :)

Добавлено: Пт авг 21, 2009 19:07:01
VenomXP
Вот посмотрите это: http://avrprog.pbworks.com/AvrSound Все просто вроде.

Добавлено: Пт авг 21, 2009 19:22:35
Hudgun
VenomXP писал(а):Вот посмотрите это: http://avrprog.pbworks.com/AvrSound Все просто вроде.
чет не особо понятно (пероводил гуглом) :))

Добавлено: Пт авг 21, 2009 19:51:22
Hudgun
Вот проект протеуса вместе с прошивкой если кому интересно

Добавлено: Сб авг 22, 2009 21:03:49
Synergetik
Заинтересованным - проект на Си в CodeVisionAVR и Proteus'е.

Особенности следующие:

1. Мелодию можно задавать в виде константной строки: "char mel[]= {H(1/16) Cis3(1/2) P(1/4) G2(1/1) ..."};", как и в проекте на http://bascom.at.ua/load/1-1-0-1. То есть сначала нота (P - тишина), потом возможно диез (бемоль не поддерживается, так что нужно преобразовывать именно в диезы), номер октавы, далее длительность - доля от 2 секунд.

2. Пока не разобрался в причине зависания при воспроизведении некоторых мелодий на Протеусе. Это может быть глюк Протеуса, хотя я склонен думать, что это баг в программе. Так что буду искать.

3. Мелодии в вышеописанном проекте на Bascom не самого лучшего качества (хотя в большом количестве), но для начала пойдёт. Так что буду как-нибудь декомпилировать midiшки, писать свои мелодии или редактировать Bascom'овские. Буду благодарен любой помощи по написанию мелодий в указанной выше кодировке.

Удачи!

Добавлено: Сб авг 22, 2009 21:23:50
VenomXP
MIDI File Conversion



In order to get access to a large list of music and audio, I made a little program to convert arbitrary MIDI files into the byte stream required for the AVR sound.c file.



invent8.mid is the original MIDI file, available from many sites...
По той ссылке что я давал выше, человек написал прогу для декомпила мидишек. Все отлично робит.

Добавлено: Сб авг 22, 2009 23:03:53
Synergetik
VenomXP писал(а):По той ссылке что я давал выше, человек написал прогу для декомпила мидишек. Все отлично робит.
Спасибо, но чувствую, что с этим придётся долго разбираться. Короче, кто хочет мелодию на МК, вот сайт с кучей всякого: http://www.siemens-club.org/music/. Естественно, о полифонии речи не идёт.

Добавлено: Вс авг 23, 2009 17:13:06
dosikus
На AVR полифонии я не видел .
А на пиках пожалуйста : http://www.pic24.ru/doku.php/osa/ref/appendix/quartet .

http://www.microchip.su/showthread.php? ... hlight=osa

Добавлено: Вс авг 23, 2009 20:59:05
Hudgun
Synergetik писал(а):Естественно, о полифонии речи не идёт.
Ресурсов у AVR не хватает или почему?

Добавлено: Вс авг 23, 2009 21:18:48
Synergetik
Hudgun писал(а):
Synergetik писал(а):Естественно, о полифонии речи не идёт.
Ресурсов у AVR не хватает или почему?
Не знаю хватает, или нет, но я себе вообще не представляю, как можно на одну ножку подавать одновременно два сигнала с разными частотами вообще, с электрической точки зрения, а не с той - AVR это или PIC. Мне на данном этапе монофонии пока хватает.

Добавлено: Вс авг 23, 2009 21:31:13
Hudgun
Synergetik писал(а):
Hudgun писал(а):Ресурсов у AVR не хватает или почему?
Не знаю хватает, или нет, но я себе вообще не представляю, как можно на одну ножку подавать одновременно два сигнала с разными частотами вообще, с электрической точки зрения, а не с той - AVR это или PIC. Мне на данном этапе монофонии пока хватает.
а если использовать не одну ножку, а 2 например?

Добавлено: Вс авг 23, 2009 22:01:08
Synergetik
Hudgun писал(а):а если использовать не одну ножку, а 2 например?
В принципе можно попытаться:
1. Для каждой ноги свой диод, чтобы не было влияния
2. Всё равно не уверен, можно ли подавать в один провод сразу два сигнала - если только сделать что-то наподобие стереозвука - два, три или больше динамиков
3. Именно Мега8 имеет один 16-битный и два 8-битных независимых таймера, по которым и работает воспроизведение частоты. Для 8-битных придётся выставлять дополнительно PreScaler'ы, если частота ниже 8000 Гц (то есть для всех основных частот). Так что потенциально три канала.
4. Нужно научиться сочинять многоканальную музыку. И хотя уважаемый VenomXP предлагал вариант, пока я не могу в этом разобраться и не уверен, что это то самое

3-й пункт не проблема, а вот остальные под вопросом.

Добавлено: Вс авг 23, 2009 22:16:26
maglev
да ладно, соединить ножки через резисторы (у atmega48/88/168 таких лапок 6) и всё зазвучит. Либо внешний ЦАП.

Добавлено: Вс авг 23, 2009 23:05:40
dosikus
Вам же дали ссылку , где многоканальный звук реализован на одной лапе слабого пика.