Например TDA7294

Форум РадиоКот • Просмотр темы - MIDI плейер для AVR
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт апр 19, 2024 12:58:40

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 116 ]  1, , , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: MIDI плейер для AVR
СообщениеДобавлено: Вт окт 01, 2013 22:44:01 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 12
Обсуждение статьи "MIDI плейер для AVR"

http://radiokot.ru/circuit/digital/game/51/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 02, 2013 18:15:02 
Первый раз сказал Мяу!

Карма: 4
Рейтинг сообщений: 8
Зарегистрирован: Вс дек 30, 2012 17:01:53
Сообщений: 35
Рейтинг сообщения: 2
Спасибо за статью!
Для меня были очень полезными разборы теоретических основ и примеров кода. Теперь руки чешутся забацать такую же шкатулку.
Жаль, что многие недооценили Вашу статью...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 03, 2013 13:05:49 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 64
Зарегистрирован: Вс ноя 04, 2012 20:20:13
Сообщений: 573
Откуда: Рязань
Рейтинг сообщения: 0
Присоединяюсь к благодарностям :)

_________________
Выше нос! жизнь прекрасна! :))


Последний раз редактировалось EDSedov Пт окт 04, 2013 10:46:11, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 03, 2013 14:50:38 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
>хотел спросить на счет фьюзов ,как их правильно выставить в "понипрог"?

Для ATTiny85 все фъюзы должны быть в "1", то есть НЕ запрограммированы, то есть в PonyProg и Codevision AVR снять все галочки.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 03, 2013 16:07:45 
Сверлит текстолит когтями
Аватар пользователя

Карма: 31
Рейтинг сообщений: 523
Зарегистрирован: Чт дек 27, 2012 15:38:20
Сообщений: 1214
Откуда: Казахстан, Алма-Ата
Рейтинг сообщения: 0
Вы так зря шутите, начинающий народ сейчас SPIEN отключит и много доброго вам скажет :)))

_________________
Радиофил-затейник.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 03, 2013 16:30:23 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
MadOrc писал(а):
Вы так зря шутите, начинающий народ сейчас SPIEN отключит и много доброго вам скажет :)))

По даташиту "This fuse is not accessible in SPI programming mode."
CVAvr его не показывает. Специально расчехлил x86 десктоп, потому что PonyProg на x64 не устанавливается - там этот бит загреен.
Изображение
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 03, 2013 16:33:05 
Сверлит текстолит когтями
Аватар пользователя

Карма: 31
Рейтинг сообщений: 523
Зарегистрирован: Чт дек 27, 2012 15:38:20
Сообщений: 1214
Откуда: Казахстан, Алма-Ата
Рейтинг сообщения: 0
Тогда прошу прощения, сто лет пони не юзал, у меня в sinaprog оно доступно :oops:

_________________
Радиофил-затейник.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 10:43:31 
Открыл глаза

Зарегистрирован: Пн янв 24, 2011 14:54:56
Сообщений: 63
Рейтинг сообщения: 0
Прежде всего, присоединяюсь к благодарностям !Если бы в номинации был радел "измерительные приборы" , то данная статья заняла бы совсем другое место , но это мое личное мнение , да и затрагивать это здесь наверное не к чему , ведь в этой теме надо обсуждать статью Midi player для AVR , а мнения пускай останутся у каждого свое , свое я уже сказал :) Есть огромное желание сделать маленький подарок , и повод как раз есть , праздники не за горами :)) И конечно же есть пару вопросов , ATTiny85 нашел , только они есть в smd , а хотелось бы в dip.Хочу спросить , для шкатулки и воспроизведении одной мелодии (Yiruma - River Flows in You) однозначно нужна ATTiny85 , или можно что нибудь еще , например ATTiny15 , просто они у меня еть :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 10:56:30 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
ATTiny15 - 1Кб flash - слишком мало. При выборе микроконтроллера играет роль только размер flash. Плейер 4 канала, sine+envelope, компрессия - ~1.7Кб, RiverFlows in you - ~1.5Кб, итого минимум 4Кб. Например, можно ATMega48, ATTiny44.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 11:17:09 
Открыл глаза

Зарегистрирован: Пн янв 24, 2011 14:54:56
Сообщений: 63
Рейтинг сообщения: 0
Понятно . Тогда ATmega48PA-AU подойдет ? Как никак дешевле в 2 раза :))


Вложения:
ATmega48PA-AU.png [38.51 KiB]
Скачиваний: 1026
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 11:31:24 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
Подойдёт.
Только учтите, что из-за 10 грн разницы вам придётся самостоятельно настраивать и компилировать проект, и разводить печатку, а для ATTiny85 это всё уже сделано.
http://radiomarket.lg.ua/advanced_searc ... 100&y=-127
http://imrad.com.ua/catalog_search?comm ... =%E2%9C%93


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 11:45:43 
Открыл глаза

Зарегистрирован: Пн янв 24, 2011 14:54:56
Сообщений: 63
Рейтинг сообщения: 0
Тогда конечно на ATTiny85 , я наверное как- то не так вбивал в поиск ATTiny85 ,т.к. был ответ " К сожалению, ничего не найдено" .Ну теперь вроде все понятно ,будем собирать :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Сб окт 05, 2013 15:37:59 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 42
Рейтинг сообщений: 161
Зарегистрирован: Вт июл 27, 2010 11:31:59
Сообщений: 2204
Откуда: Кххх
Рейтинг сообщения: 0
Спаял платку для шкатулки на tiny85. Сразу не завелось, при прошивке пищит, а звука нет.
Оказалось что выполнил дословно инструкцию автора "Фъюзы выставляем для работы от внешнего кварцевого резонатора, остальное не важно."
Важно - у камня по умолчанию включен делитель на 8!
Итого:
AVREAL32.EXE -as -p1 +TINY85 -fcksel=E,fckdiv=1 -e -w -v MusicBox.hex
Статья очень даже очень. Благодарность автору. :beer: он научил котов мило мурлыкать.
Моя платка, кварц - трухольный.
Изображение
И еще - у меня лекарство не подействовало, пришлось перерисовать печатку.


Вложения:
Комментарий к файлу: печатки под утюг, может кому надо
midi-all.pdf [59.33 KiB]
Скачиваний: 606
Комментарий к файлу: как танк после боя, платка вся в копоти.
midi.jpg [87.62 KiB]
Скачиваний: 1112
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 10:44:36 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
вопрос к автору, я вот пытаюсь собрать простой проигрыватель 8 битных мелодия для часиков
как переводить ноты определонной мелодии в массив чисел которые потом будут подставляться в регистр сравнения Т1 ?

_________________
Tell Me The Truth


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 11:09:48 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
1. Нужно сгенерить код мелодии без компрессии.

2. Выборка очередного события:
Код:
    delta = s_playerState.m_pMelody->m_delta;
    noteNumber = s_playerState.m_pMelody->m_noteNumber;
    s_playerState.m_pMelody++;
   
    channelIndex = delta & 0x7;
    delta >>= 3;
   
    if ( delta == 0 )
    {
         //конец мелодии
        return;
    }
   
    channelIndex |= ( noteNumber >> (7 - 3 ) ) & 8;
   
    noteNumber &= 0x7f;


получили:
delta - сколько подождать 1/255 сек перед тем, как обрабатывать это событие
channelIndex - номер канала
noteIndex - номер ноты (или ноль - выключить ).

Номер ноты соответствует частоте:
http://subsynth.sourceforge.net/midinote2freq.html

Из частоты вычисляется делитель для таймера = частота_таймера / частота ноты


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 15:36:51 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
hax, у меня имеется рабочий проэкт (прилагаю) воспроизведения элементарных мелодий, проблемма состоит в том что я не могу осмыслить как переводить ноты мелодии в массив цифр :dont_know:
помогите пожалуйста :)


Вложения:
sound.c [5.62 KiB]
Скачиваний: 576

_________________
Tell Me The Truth
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 15:57:21 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
Мой midi player тут ничем не поможет.

Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.
Так и было сделано для мелодий, которые в вашем исходнике.

Код:
int kuznechik[] PROGMEM={130.000,P,N16,A2,N8,E2,N8,A2,N8,E2,N8,A2,N8,G2d,N8,G2,N8,P,N8,G2d,N8,E2,N8,G2d,N8,E2,N8,G2d,N8,A2,N8,End};


Там в массиве темп,
имя ноты_октава ( A3,B2,C4, .... )
http://help.secondnetworks.net/gfx/NotesHelp.gif

длительность (N8, N16 == 1/8, 1/16)
http://www.guitarsite.de/pics/notedur.gif


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 19:52:00 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
hax писал(а):
Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.

и все ? :shock:
вот так просто ? :shock:

_________________
Tell Me The Truth


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Ср окт 23, 2013 20:23:13 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2329
Откуда: Санкт-Ленинград
Рейтинг сообщения: 4
hax писал(а):
Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.
Ничего себе задачка, для людей с очень устойчивой психикой. :)
Но о всём по порядку.
Автор, безусловно, проделал большую и кропотливую работу, за что ему респект и уважуха. :beer:
Однако, как мне кажется, больно уж огромный диапазон материала, для такой маленькой статьи.
То, что не упоминается про другие строи, кроме равномерно темперированного, это - мелочи, но вот про основные разновидности синтеза, и фазы сэмпла, всё-таки, сказать следовало. И честно говоря, я бы не стал относить тон-генераторы меандра к синтезаторам.
В 8-битном сэмпле, без знака, нет значения 00h (иначе сэмпл будет несимметричным). Собственно, в представленной таблице его и нет. И вообще, странноватая какая-то таблица. Если там и синус, то очень "хилый". Или это специально?
При разговоре о МИДИ, я бы всё-таки употреблял терминологию, согласно протокола МИДИ.
Касаемо самих МИДИ-файлов, там такая жуть, что выудить оттуда что-нибудь вручную, по-моему просто нереально. Кстати, там вроде, до четырёх байт на дельту, а у Вас, три (могу ошибаться, давно дело было).
Я когда усовершенствовал синтезатор Чана, тоже помаялся с ручным написанием в родном формате, а потом плюнул, и тоже программку-конвертер написАл.
Кстати, у Чана как-раз хорошо расписанно, что звук у него разбит на атаку и сустейн, с наложением огибающей. В общем, после экспериментов с меандрами, мне звук очень понравился, и я его, доработав, использовал в музыкальной шкатулке. Деталей минимум. Я даже включение сделал размыканием, что позволило отказаться от специализированных микровыключателей, и использовать простые токопроводящие контактные площадки. Так что габариты определяются аккумулятором и динамической головкой.
Это я плавно перешёл к практическому использованию.
В статье правильно сказано, что полноценного синтезатора из неё не получить, поэтому лично я тоже, в дальнейшем ушёл от этих попыток. Но можно развивать тему, например, речевого информатора. Однако, это уже для другой статьи.

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

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Чт окт 24, 2013 00:14:38 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 28
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
FreshMan писал(а):
и все ? :shock:
вот так просто ? :shock:
Ну да... Там одноголосые мелодии по 20-30 нот, плейер похож на тот, что во втором видео об AVR Batterfly.
По сути вам нужны ноты мелодии, вот такие:
http://blflute.com/wp-content/uploads/2013/05/03.jpg
Просто переписываете ноты одну за одной в массив.
Преимущество моего плейера в том, что с нотами не нужно разбираться, почему вы не возьмёте его?

Dmitry Dubrovenko писал(а):
В 8-битном сэмпле, без знака, нет значения 00h (иначе сэмпл будет несимметричным). Собственно, в представленной таблице его и нет. И вообще, странноватая какая-то таблица. Если там и синус, то очень "хилый". Или это специально?
Код:
static const flash uint8_t s_sineTable[ 64 ] = {
        0x80, 0x82, 0x84, 0x86, 0x88, 0x8A, 0x8C, 0x8D, 0x8F, 0x90, 0x91, 0x93, 0x93, 0x94, 0x95, 0x95,
        0x95, 0x95, 0x95, 0x94, 0x93, 0x93, 0x91, 0x90, 0x8F, 0x8D, 0x8C, 0x8A, 0x88, 0x86, 0x84, 0x82,
        0x80, 0x7E, 0x7C, 0x7A, 0x78, 0x76, 0x74, 0x73, 0x71, 0x70, 0x6F, 0x6D, 0x6D, 0x6C, 0x6B, 0x6B,
        0x6B, 0x6B, 0x6B, 0x6C, 0x6D, 0x6D, 0x6F, 0x70, 0x71, 0x73, 0x74, 0x76, 0x78, 0x7A, 0x7C, 0x7E
    };
По ошибке вставил в статью синус с амплитудой 0x16 ( отскейлен для 6 каналов ). Исправлю.

Dmitry Dubrovenko писал(а):
Касаемо самих МИДИ-файлов... Кстати, там вроде, до четырёх байт на дельту, а у Вас, три (могу ошибаться, давно дело было).
У меня - 13 бит. Время считается в 1/255 сек. Это позволяет делать дельты до 32 сек. Этого достаточно в любом случае.
По сути, получаемый исходник для AVR не является Midi плейером - он играет "свой" формат, оптимизированный под минимальный размер данных и кода.

Dmitry Dubrovenko писал(а):
Кстати, у Чана как-раз хорошо расписанно, что звук у него разбит на атаку и сустейн, с наложением огибающей.
У меня attack/sustain/decay/release не используются, вот я о них и не рассказывал.
Если кому интересно - bsvi рассказывает:http://www.youtube.com/watch?v=eWXMaQ6ZpRc

Dmitry Dubrovenko писал(а):
а вот насколько эффективно работает описанное в статье сжатие, и не накладывает ли оно ограничения на используемые мелодии?
Использование "своего" формата с меньшим количеством бит на переменные вместо MIDI даёт уменьшение данных мелодии раз в 10. Накладывает ограничение на длину дельты ( до 32 сек ) и точность ( 1/255 сек).
Сжатие c частотным анализом дает дополнительное уменьшение раза в 2, никаких ограничений не накладывает т.к. алгоритм сжимает байтовый поток и о природе данных не знает. Грубо говоря, это сильно упрощённый zip.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 116 ]  1, , , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: MrNikolay и гости: 35


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y