Например TDA7294

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



Текущее время: Пн май 17, 2021 19:18:32

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


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



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

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 8
Обсуждение статьи "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
Спасибо за статью!
Для меня были очень полезными разборы теоретических основ и примеров кода. Теперь руки чешутся забацать такую же шкатулку.
Жаль, что многие недооценили Вашу статью...


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Не в сети
 Заголовок сообщения: 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
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 25, 2011 17:39:42
Сообщений: 160
Откуда: Киев
Рейтинг сообщения: 0
>хотел спросить на счет фьюзов ,как их правильно выставить в "понипрог"?

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


Вернуться наверх
 
Барьерные силовые клеммы от Degson – расширение складского ассортимента Компэл

Обновленная линейка барьерных клеммных блоков Degson, поступивших на склад Компэл, содержит широкий ряд клемм, подходящих для соединения проводников различного сечения (от 22AWG до 10AWG). Барьерные клеммные колодки сочетают в себе удобство, простоту и надежность соединения. Это достигается за счет ответственного производства и использования высококачественных материалов. Винтовые клеммные блоки барьерного типа Degson предназначены в первую очередь для коммутации в сильноточных цепях, например, в распределительных и измерительных системах.

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

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

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


Вернуться наверх
 
Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

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

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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
Рейтинг сообщений: 503
Зарегистрирован: Чт дек 27, 2012 15:38:20
Сообщений: 1205
Откуда: Казахстан, Алма-Ата
Рейтинг сообщения: 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
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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]
Скачиваний: 902
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: MIDI плейер для AVR
СообщениеДобавлено: Пт окт 04, 2013 11:31:24 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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
Сообщений: 2168
Откуда: Кххх
Рейтинг сообщения: 0
Спаял платку для шкатулки на tiny85. Сразу не завелось, при прошивке пищит, а звука нет.
Оказалось что выполнил дословно инструкцию автора "Фъюзы выставляем для работы от внешнего кварцевого резонатора, остальное не важно."
Важно - у камня по умолчанию включен делитель на 8!
Итого:
AVREAL32.EXE -as -p1 +TINY85 -fcksel=E,fckdiv=1 -e -w -v MusicBox.hex
Статья очень даже очень. Благодарность автору. :beer: он научил котов мило мурлыкать.
Моя платка, кварц - трухольный.
Изображение
И еще - у меня лекарство не подействовало, пришлось перерисовать печатку.


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

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

_________________
Tell Me The Truth.


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

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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
Рейтинг сообщений: 31
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6223
Откуда: Ukraine, Mariupol
Рейтинг сообщения: 0
hax, у меня имеется рабочий проэкт (прилагаю) воспроизведения элементарных мелодий, проблемма состоит в том что я не могу осмыслить как переводить ноты мелодии в массив цифр :dont_know:
помогите пожалуйста :)


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

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

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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
Рейтинг сообщений: 31
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6223
Откуда: Ukraine, Mariupol
Рейтинг сообщения: 0
hax писал(а):
Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.

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

_________________
Tell Me The Truth.


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

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

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

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


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

Карма: 6
Рейтинг сообщений: 24
Зарегистрирован: Вт окт 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.


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

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


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

Сейчас этот форум просматривают: Google [Bot], Mizetsky и гости: 23


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

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


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