Вт окт 01, 2013 22:44:01
Ср окт 02, 2013 18:15:02
Чт окт 03, 2013 13:05:49
Чт окт 03, 2013 14:50:38
Чт окт 03, 2013 16:07:45
Чт окт 03, 2013 16:30:23
Чт окт 03, 2013 16:33:05
Пт окт 04, 2013 10:43:31
Пт окт 04, 2013 10:56:30
Пт окт 04, 2013 11:17:09
Пт окт 04, 2013 11:31:24
Пт окт 04, 2013 11:45:43
Сб окт 05, 2013 15:37:59
Ср окт 23, 2013 10:44:36
Ср окт 23, 2013 11:09:48
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;
Ср окт 23, 2013 15:36:51
Ср окт 23, 2013 15:57:21
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};
Ср окт 23, 2013 19:52:00
hax писал(а):Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.
Ср окт 23, 2013 20:23:13
Ничего себе задачка, для людей с очень устойчивой психикой.hax писал(а):Откройте midi файл в каком-нибудь редакторе и перепишите ноты в массив вручную.
Чт окт 24, 2013 00:14:38
Ну да... Там одноголосые мелодии по 20-30 нот, плейер похож на тот, что во втором видео об AVR Batterfly.FreshMan писал(а):и все ?
вот так просто ?
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
};
У меня - 13 бит. Время считается в 1/255 сек. Это позволяет делать дельты до 32 сек. Этого достаточно в любом случае.Dmitry Dubrovenko писал(а):Касаемо самих МИДИ-файлов... Кстати, там вроде, до четырёх байт на дельту, а у Вас, три (могу ошибаться, давно дело было).
У меня attack/sustain/decay/release не используются, вот я о них и не рассказывал.Dmitry Dubrovenko писал(а):Кстати, у Чана как-раз хорошо расписанно, что звук у него разбит на атаку и сустейн, с наложением огибающей.
Использование "своего" формата с меньшим количеством бит на переменные вместо MIDI даёт уменьшение данных мелодии раз в 10. Накладывает ограничение на длину дельты ( до 32 сек ) и точность ( 1/255 сек).Dmitry Dubrovenko писал(а):а вот насколько эффективно работает описанное в статье сжатие, и не накладывает ли оно ограничения на используемые мелодии?