Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить

Re: MIDI плейер для AVR

Чт окт 24, 2013 07:58:02

hax писал(а):плейер похож на тот, что во втором видео об AVR Batterfly.

о да......! именно такую "музыку" я хочу воспроизводить :))
hax писал(а):Преимущество моего плейера в том, что с нотами не нужно разбираться, почему вы не возьмёте его?

простите за невежество, но я обеими руками за, только вот я не совсем понимаю как с помощью вашего плейера сформировать массив снотами который в последствии я бы мог вставить в свой проэкт, приведенный выше, растолкуйте пожалуйста :oops:

Re: MIDI плейер для AVR

Чт окт 24, 2013 12:22:43

Моё ПО для PC формирует массив нот для моего плейера на AVR, реализация которого находится в файле Common\hxMidiPlayer.c.

Плейер, который вы показали, этот массив не поймёт. То есть прямой ответ на вопрос: "как с помощью вашего плейера сформировать массив с нотами который в последствии я бы мог вставить в свой проэкт, приведенный выше" - никак, это невозможно. Если вы хотите использовать моё ПО для PC, то нужно использовать мой плейер на AVR.

В начале статьи в разделе "Что позволяет ПО" описано, как подключить мои исходники к имеющемуся проекту, а в каталоге ATMega8Example есть пример уже настроенного проекта.

Re: MIDI плейер для AVR

Чт окт 24, 2013 16:27:49

кстати попутный вопрос: почему вы зяли за основу MIDI файли а не WAV ?

Re: MIDI плейер для AVR

Чт окт 24, 2013 16:57:48

Потому что WAV файл содержит звук, грубо говоря - звук, записанный на диктофон. Для хранения требуется много памяти, например - 8КБ/сек.

Midi файл содержит ноты мелодии. Одна нота занимает, скажем, 3 байта. Мелодия типа Кузнечик из 50 нот займет 150 байт.
Задача плейера - сыграть мелодию по нотам.

Учим ноты: http://www.youtube.com/watch?v=NXeABPruRDE

И дальше:

Re: MIDI плейер для AVR

Чт окт 24, 2013 18:42:51

Забыл упомянуть, что вручную я ноты списывал не с МИДИ-файла (этого и врагу не пожелаешь), а открывал его (файл) в специализированной программе (Кейкволк-Сонар), и уже оттуда переписывал ноты.

FreshMan писал(а):как с помощью вашего плейера сформировать массив снотами который в последствии я бы мог вставить в свой проэкт
Можете попробовать с помощью моей программы.
Выберите выходным форматом *.asm, и он Вам выдаст текстовой файл в чановском формате.
Это уже будет практически то, что вам надо (про формат - в Хелпе программы).

Re: MIDI плейер для AVR

Чт окт 24, 2013 20:21:30

Dmitry Dubrovenko писал(а):Это уже будет практически то, что вам надо

а в чем будет заключатся непрактически ?

Re: MIDI плейер для AVR

Пт окт 25, 2013 17:25:38

FreshMan писал(а):а в чем будет заключатся непрактически ?
Как говорится: "Найдите десять отличий". :)
Код:
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};
Спойлер
Код:
;Woman in Love
;(C)1991 Roland Corporation

   .db 101, 1, Dis2|en, 146, 1, B4, Dis4, Dis3|en, 190, 1, Cis4, Gis3, Cis3|en, 235, 1, B4
   .db Fis3, B3|en, 24, 2, B4, Dis4, Dis3|en, 68, 2, Cis4, Gis3, Cis3|en, 113, 2, Fis3, B4
   .db B3|en, 158, 2, Gis3, Dis3, Gis2|en, 202, 2, B4, B3, Fis3|en, 247, 2, Gis3, Dis3, Gis2|en
   .db 36, 3, Fis3, Cis3, Fis2|en, 80, 3, Gis2, Gis3, Dis3|en, 125, 3, B4, Fis3, B3|en, 170
   .db 3, Gis3, Gis2, Dis3|en, 214, 3, Fis3, Fis2, Cis3|en, 3, 4, F2, B3, F3, H3|en, 47
   .db 4, Fis2, Cis3, Fis3|en, 92, 4, Gis3, Gis2, Dis3|en, 137, 4, B3, B4, Fis3|en, 181, 4
   .db Fis2, Fis3, Dis3|en, 116, 6, Cis3|en, 205, 6, Dis2|en, 38, 7, Dis4, B4, Dis3|en, 83, 7
   .db Cis4, Cis3, Gis3|en, 128, 7, B4, B3, Fis3|en, 172, 7, B4, Dis4, Dis3|en, 217, 7, Cis4
   .db Cis3, Gis3|en, 6, 8, Dis4, B4, Dis3|en, 50, 8, Cis4, Cis3, Gis3|en, 95, 8, B3, Fis3
   .db B4|en, 140, 8, Gis3, Cis4, Cis3|en, 184, 8, Fis3, B4, B3|en, 229, 8, Gis3, Cis4, Cis3|en
   .db 17, 9, B4, Dis3, B3|en, 62, 9, Cis3, Gis2, Gis3|en, 107, 9, Fis2, Cis3, Fis3|en, 151
   .db 9, Gis3, Gis2, H3|en, 196, 9, Dis3, B4, B3|en, 241, 9, Cis4, Gis3, Cis3|en, 29, 10
   .db Dis3, B3, B4|en, 74, 10, Gis3, Cis3, Gis2|en, 119, 10, Fis3, Fis2, B3|en, 163, 10, Dis3
   .db Dis2|en, 208, 10, H3, Fis3, Fis2|en, 86, 11, B4, B3|en, 130, 11, Cis4, Dis3, B3, B4|en
   .db 142, 12, Dis3|en, 187, 12, B3|en, 232, 12, B3|en, 20, 13, B3, Dis3|en, 65, 13, Gis2
   .db Gis2|en, 110, 13, Fis2|en, 154, 13, F2|en, 199, 13, Dis2, Gis2|en, 243, 13, Dis3|en, 121, 14
   .db Fis2, Dis3|en, 166, 14, F2, Gis2|en, 255, 14, Cis2|en, 44, 15, B2, Gis2|en, 89, 15, H3|en
   .db 223, 15, Dis2|en, 11, 16, Cis2, Cis3|en, 56, 16, Dis2|en, 100, 16, Cis2, Cis3|en, 145, 16
   .db B2|en, 190, 16, Fis2|en, 157, 17, Fis2|en, 246, 17, Fis2|en, 35, 18, Cis3|en, 80, 18, E2|en
   .db 124, 18, E2|en, 169, 18, E2, Cis3|en, 213, 18, E2, Gis2|en, 2, 19, Gis2|en, 47, 19
   .db Fis2, Cis3|en, 91, 19, Dis2|en, 136, 19, H3|en, 36, 20, Dis2|en, 59, 20, Dis2, H3|en, 103
   .db 20, F2, Dis3|en, 193, 20, Fis2, Gis2|en, 26, 21, Fis2|en, 70, 21, Fis2|en, 115, 21, Fis2
   .db Gis2|en, 160, 21, Fis2, Dis3|en, 204, 21, B3|en, 249, 21, Gis2, Gis2|en, 38, 22, F2|en, 82
   .db 22, B3|en, 72, 23, B3|en, 94, 23, F3|en, 139, 23, B3|en, 183, 23, Dis3|en, 228, 23
   .db B3|en, 17, 24, B3|en, 61, 24, B3, Dis3|en, 106, 24, Gis2, Gis2|en, 151, 24, Fis2|en, 195
   .db 24, F2|en, 240, 24, Dis2, Gis2|en, 29, 25, Dis3|en, 163, 25, Fis2, Dis3|en, 207, 25, F2
   .db Gis2|en, 40, 26, Cis2|en, 85, 26, B2, Gis2|en, 130, 26, H3|en, 8, 27, Dis2|en, 52, 27
   .db Cis2, Cis3|en, 97, 27, Dis2|en, 142, 27, Cis2, Cis3|en, 186, 27, B2|en, 231, 27, Fis2|en, 198
   .db 28, Fis2|en, 31, 29, Fis2|en, 76, 29, Cis3|en, 121, 29, Gis2|en, 165, 29, Gis2|en, 210, 29
   .db Gis2, Cis3|en, 255, 29, Gis2, Gis2|en, 43, 30, B3, Cis3|en, 88, 30, H3|en, 133, 30, B3
   .db Cis3|en, 177, 30, Fis2|en, 199, 30, Gis2|en, 222, 30, Fis2|en, 55, 31, Fis2, Fis2|en, 100, 31
   .db Gis2, H3|en, 144, 31, B3|en, 189, 31, H3|en, 234, 31, B3, H3|en, 22, 32, Fis2|en, 45
   .db 32, Gis2|en, 67, 32, Fis2|en, 156, 32, Fis2, Fis2|en, 201, 32, Gis2, H3|en, 246, 32, B3|en
   .db 34, 33, H3|en, 79, 33, B3, H3|en, 123, 33, B3|en, 135, 34, B3|en, 158, 34, F2|en
   .db 180, 34, F2|en, 225, 34, Dis2|en, 13, 35, Dis2|en, 58, 35, Dis2|en, 103, 35, Dis2, Dis2|en
   .db 147, 35, D2, B3|en, 192, 35, Dis2|en, 214, 35, B3|en, 236, 35, F2|en, 25, 36, Fis2
   .db B3|en, 70, 36, Dis3|en, 114, 36, Dis3|en, 204, 36, Fis2, Dis3|en, 248, 36, F2, B3|en, 37
   .db 37, Fis2|en, 82, 37, F2|en, 126, 37, Dis2, B3|en, 171, 37, Dis3|en, 216, 37, Fis2, Dis3|en
   .db 4, 38, Fis2|en, 49, 38, Fis2, Dis3|en, 93, 38, F2, B3|en, 138, 38, Fis2|en, 183, 38
   .db Gis2|en, 227, 38, B3, B3|en, 61, 39, Dis3|en, 150, 39, B3, Dis3|en, 195, 39, Gis2, B3|en
   .db 239, 39, B3|en, 28, 40, H3, B3|en, 73, 40, B3, B3|en, 117, 40, Dis3|en, 162, 40
   .db Dis3|en, 236, 40, Gis2|en, 251, 40, B3|en, 10, 41, B3|en, 17, 41, H3|en, 40, 41, Cis3
   .db Cis3|en, 174, 41, Cis3|en, 218, 41, Cis3|en, 7, 42, Cis3|en, 81, 42, H3|en, 96, 42, Cis3|en
   .db 111, 42, B3|en, 141, 42, H3, Gis2|en, 19, 43, Gis2|en, 63, 43, Dis3|en, 153, 43, Gis2|en
   .db 242, 43, H3, Gis3|en, 31, 44, Dis3|en, 46, 44, B3|en, 105, 44, Gis2|en, 120, 44, Dis3|en
   .db 165, 44, H3, Gis2|en, 209, 44, Dis3|en, 224, 44, B3|en, 28, 45, Gis2|en, 43, 45, Gis2|en
   .db 87, 45, B3, Fis2|en, 54, 46, Fis2|en, 144, 46, Fis2|en, 188, 46, Gis2, Dis2|en, 211, 46
   .db B3|en, 233, 46, H3, Dis4, B4, Dis3|en, 22, 47, B3, Cis4, Cis3, Gis3|en, 66, 47, B4
   .db B3, Fis3|en, 111, 47, B4, Dis4, Dis3|en, 156, 47, Cis4, Cis3, Gis3|en, 200, 47, Dis4, B4
   .db Dis3|en, 245, 47, Cis4, Cis3, Gis3, B3|en, 33, 48, B3, Fis3, B4, Dis3|en, 78, 48, Gis3
   .db Cis4, Cis3|en, 123, 48, Fis3, B4, B3|en, 167, 48, Gis3, Cis4, Cis3|en, 212, 48, B4, Dis3
   .db B3|en, 1, 49, Cis3, Gis2, Gis3|en, 45, 49, Fis2, Cis3, Fis3|en, 90, 49, Gis3, Gis2, H3|en
   .db 135, 49, Dis3, B4, B3|en, 179, 49, Cis4, Gis3, Cis3|en, 224, 49, Dis3, B3, B4|en, 13
   .db 50, Gis3, Cis3, Gis2|en, 57, 50, Fis3, Fis2, B3|en, 102, 50, Dis3, Dis2|en, 146, 50, H3
   .db Fis3, Fis2|en, 191, 50, H3|en, 236, 50, H3|en, 24, 51, B4, B3|en, 69, 51, Cis4, Dis3
   .db B3, B4|en, 81, 52, Dis3|en, 126, 52, B3|en, 170, 52, B3|en, 215, 52, B3, Dis3|en, 3
   .db 53, Gis2, Gis2|en, 48, 53, Fis2|en, 93, 53, F2|en, 137, 53, Dis2, Gis2|en, 182, 53, Dis3|en
   .db 60, 54, Fis2, Dis3|en, 105, 54, F2, Gis2|en, 194, 54, Cis2|en, 239, 54, B2, Gis2|en, 27
   .db 55, H3|en, 161, 55, Dis2|en, 183, 55, Dis2|en, 206, 55, Cis2, Cis3|en, 250, 55, Dis2|en, 39
   .db 56, Cis2, Cis3|en, 84, 56, B2|en, 128, 56, Fis2|en, 96, 57, Fis2|en, 185, 57, Fis2|en, 229
   .db 57, Cis3|en, 18, 58, E2|en, 63, 58, E2|en, 107, 58, E2, Cis3|en, 152, 58, E2, Gis2|en
   .db 197, 58, Gis2|en, 241, 58, Fis2, Cis3|en, 30, 59, Dis2|en, 75, 59, H3|en, 235, 59, Dis2|en
   .db 253, 59, Dis2, H3|en, 42, 60, F2, Dis3|en, 131, 60, Fis2, Gis2|en, 220, 60, Fis2|en, 9
   .db 61, Fis2|en, 54, 61, Fis2, Gis2|en, 98, 61, Fis2, Dis3|en, 143, 61, B3|en, 188, 61, Gis2
   .db Gis2|en, 232, 61, F2|en, 21, 62, B3|en, 10, 63, B3|en, 33, 63, F3|en, 77, 63, B3|en
   .db 122, 63, Dis3|en, 167, 63, B3|en, 211, 63, B3|en, 0, 64, B3, Dis3|en, 45, 64, Gis2
   .db Gis2|en, 89, 64, Fis2|en, 134, 64, F2|en, 179, 64, Dis2, Gis2|en, 223, 64, Dis3|en, 101, 65
   .db Fis2, Dis3|en, 146, 65, F2, Gis2|en, 235, 65, Cis2|en, 24, 66, B2, Gis2|en, 68, 66, H3|en
   .db 202, 66, Dis2|en, 247, 66, Cis2, Cis3|en, 36, 67, Dis2|en, 80, 67, Cis2, Cis3|en, 125, 67
   .db B2|en, 169, 67, Fis2|en, 137, 68, Fis2|en, 226, 68, Fis2|en, 15, 69, Cis3|en, 59, 69, Gis2|en
   .db 104, 69, Gis2|en, 149, 69, Gis2, Cis3|en, 193, 69, Gis2, Gis2|en, 238, 69, B3, Cis3|en, 26
   .db 70, H3|en, 71, 70, B3, Cis3|en, 116, 70, Fis2|en, 138, 70, Gis2|en, 160, 70, Fis2|en, 250
   .db 70, Fis2, Fis2|en, 38, 71, Gis2, H3|en, 83, 71, B3|en, 128, 71, H3|en, 172, 71, B3
   .db H3|en, 217, 71, Fis2|en, 239, 71, Gis2|en, 6, 72, Fis2|en, 95, 72, Fis2, Fis2|en, 139, 72
   .db Gis2, H3|en, 184, 72, B3|en, 229, 72, H3|en, 17, 73, B3, H3|en, 62, 73, B3|en, 74
   .db 74, B3|en, 96, 74, F2|en, 119, 74, F2|en, 163, 74, Dis2|en, 208, 74, Dis2|en, 252, 74
   .db Dis2|en, 41, 75, Dis2, Dis2|en, 86, 75, D2, B3|en, 130, 75, Dis2|en, 153, 75, B3|en, 175
   .db 75, F2|en, 220, 75, Fis2, B3|en, 8, 76, Dis3|en, 53, 76, Dis3|en, 142, 76, Fis2, Dis3|en
   .db 187, 76, F2, B3|en, 232, 76, Fis2|en, 20, 77, F2|en, 65, 77, Dis2, B3|en, 109, 77
   .db Dis3|en, 154, 77, Fis2, Dis3|en, 199, 77, Fis2|en, 243, 77, Fis2, Dis3|en, 32, 78, F2, B3|en
   .db 77, 78, Fis2|en, 121, 78, Gis2|en, 166, 78, B3, B3|en, 255, 78, Dis3|en, 89, 79, B3
   .db Dis3|en, 133, 79, Gis2, B3|en, 178, 79, B3|en, 222, 79, H3, B3|en, 11, 80, B3, B3|en
   .db 56, 80, Dis3|en, 100, 80, Dis3|en, 175, 80, Gis2|en, 190, 80, B3|en, 205, 80, B3|en, 212
   .db 80, H3|en, 234, 80, Cis3, Cis3|en, 112, 81, Cis3|en, 157, 81, Cis3|en, 202, 81, Cis3|en, 20
   .db 82, H3|en, 35, 82, Cis3|en, 50, 82, B3|en, 79, 82, H3, Gis2|en, 213, 82, Gis2|en, 2
   .db 83, Dis3|en, 91, 83, Gis2|en, 181, 83, H3, Gis3|en, 225, 83, Dis3|en, 240, 83, B3|en, 44
   .db 84, Gis2|en, 59, 84, Dis3|en, 103, 84, H3, Gis2|en, 148, 84, Dis3|en, 163, 84, B3|en, 222
   .db 84, Gis2|en, 237, 84, Gis2|en, 26, 85, B3, Fis2|en, 249, 85, Fis2|en, 82, 86, Fis2|en, 127
   .db 86, Gis2, Dis2|en, 149, 86, B3|en, 172, 86, H3, B4, Dis4, Dis3|en, 216, 86, B3, Cis4
   .db Gis3, Cis3|en, 5, 87, B4, Fis3, B3|en, 49, 87, B4, Dis4, Dis3|en, 94, 87, Cis4, Gis3
   .db Cis3|en, 139, 87, Fis3, B4, B3|en, 183, 87, Gis3, Dis3, Gis2, B3|en, 228, 87, B4, B3
   .db Fis3, Dis2|en, 17, 88, Gis3, Dis3, Gis2|en, 61, 88, Fis3, Cis3, Fis2|en, 106, 88, Gis2, Gis3
   .db Dis3|en, 151, 88, B4, Fis3, B3|en, 195, 88, Gis3, Gis2, Dis3|en, 240, 88, Fis3, Fis2, Cis3|en
   .db 29, 89, Fis3, H3, Fis2, H3|en, 118, 89, A4, A3, H3|en, 162, 89, A4, A3, H3|en
   .db 207, 89, Dis4, A4, Dis3|en, 252, 89, Dis4, A4, Dis3, H3|en, 174, 90, Dis4, A4, Dis3|en
   .db 97, 91, E3|en, 142, 91, H3, E3|en, 186, 91, H3|en, 231, 91, H3, E3|en, 19, 92
   .db A3, H3|en, 64, 92, G2|en, 86, 92, H3|en, 109, 92, A3, H3|en, 153, 92, H3, H3|en
   .db 198, 92, E3|en, 243, 92, E2|en, 76, 93, H3, E2|en, 121, 93, A3, H3|en, 165, 93
   .db H3|en, 188, 93, H3|en, 210, 93, A3, H3|en, 255, 93, G2, H3|en, 43, 94, E3|en, 88
   .db 94, G2, E3|en, 177, 94, G2, E3|en, 222, 94, A3, H3|en, 10, 95, G2|en, 33, 95
   .db H3|en, 55, 95, A3, H3|en, 100, 95, H3, H3|en, 144, 95, E3|en, 189, 95, E2|en, 22
   .db 96, H3, E3|en, 67, 96, A3, H3|en, 112, 96, H3|en, 134, 96, H3|en, 156, 96, C3
   .db H3|en, 201, 96, H3, H3|en, 245, 96, E3|en, 34, 97, E3|en, 123, 97, A3, H3|en, 146
   .db 97, H3, C3|en, 168, 97, D3, D3|en, 135, 98, D3|en, 210, 98, C3|en, 225, 98, D3|en
   .db 239, 98, H3|en, 13, 99, C3, A3|en, 147, 99, A3|en, 192, 99, E3|en, 25, 100, A4|en
   .db 114, 100, C3|en, 159, 100, E3|en, 174, 100, H3|en, 233, 100, A3|en, 248, 100, A3|en, 37
   .db 101, C3, A4|en, 82, 101, E3|en, 96, 101, H3|en, 156, 101, A3|en, 171, 101, A3|en, 215
   .db 101, H3, H3|en, 4, 102, H3|en, 93, 102, H3|en, 183, 102, H3|en, 227, 102, H3|en, 250
   .db 102, Fis2|en, 16, 103, H3|en, 61, 103, E3|en, 105, 103, G2, E3|en, 150, 103, G2|en, 195
   .db 103, G2, E3|en, 239, 103, Fis2, H3|en, 28, 104, G2|en, 50, 104, H3|en, 72, 104, A3
   .db H3|en, 117, 104, G2, H3|en, 162, 104, E3|en, 206, 104, E2|en, 40, 105, H3, E3|en, 84
   .db 105, A3, H3|en, 129, 105, H3|en, 151, 105, H3|en, 174, 105, A3, H3|en, 218, 105, G2
   .db H3|en, 7, 106, E3|en, 52, 106, G2, E3|en, 96, 106, G2|en, 141, 106, G2, E3|en, 185
   .db 106, Fis2, H3|en, 230, 106, G2|en, 252, 106, H3|en, 19, 107, A3, H3|en, 63, 107, H3
   .db H3|en, 108, 107, E3|en, 153, 107, E2|en, 242, 107, H3, E2|en, 31, 108, A3, H3|en, 75
   .db 108, H3|en, 120, 108, C3, H3|en, 165, 108, H3|en, 209, 108, E3|en, 254, 108, E3|en, 72
   .db 109, A3|en, 87, 109, H3|en, 102, 109, H3|en, 109, 109, C3|en, 132, 109, D3, D3|en, 10
   .db 110, D3|en, 99, 110, D3|en, 173, 110, C3|en, 188, 110, D3|en, 203, 110, H3|en, 233, 110
   .db C3, A3|en, 200, 111, E3|en, 33, 112, E3|en, 78, 112, C3, A4|en, 138, 112, H3|en, 197
   .db 112, A3|en, 212, 112, A4|en, 1, 113, C3, E3|en, 60, 113, H3|en, 90, 113, A3|en, 120
   .db 113, A3|en, 179, 113, H3, H3|en, 57, 114, H3|en, 146, 114, H3|en, 236, 114, H3|en, 26
   .db 115, EoS|en

;Create by programm "ConTiny45" ver 1.2  (www.dubrovenko.ru)

Re: MIDI плейер для AVR

Пт окт 25, 2013 20:35:35

Dmitry Dubrovenko писал(а):Как говорится: "Найдите десять отличий".

наверное миссия невыполнима :))
спрошу лишь одно: в вашем массиве присутствует такая закономерность как нота-пауза-нота-пауза-..... ?
если да ......, тогда я щастлив :))
hax, мне вот непонятен такой момент: в вашем проэкте воспроизводятся MIDI мелодии, в моем тоже так почему же с помощью вашего ПО я не могу создать массив который будет играть в моем проэкте ?
извиняюсь за настырность :)

Re: MIDI плейер для AVR

Пт окт 25, 2013 21:52:18

FreshMan писал(а):hax, мне вот непонятен такой момент: в вашем проэкте воспроизводятся MIDI мелодии, в моем тоже так почему же с помощью вашего ПО я не могу создать массив который будет играть в моем проэкте ?
Потому что и мой плейер, и плейер в вашем проекте по сути играют не midi файл, а "свой" формат. У меня этот формат один, в вашем проекте он другой.

Re: MIDI плейер для AVR

Сб окт 26, 2013 10:59:31

почему с статье прикреплено 2 папки ?
Изображение
посмотрел....., на глаз там содержимое одинаковое

Re: MIDI плейер для AVR

Сб окт 26, 2013 17:04:23

Это rar архив, разбитый на две части. Сайт не поддерживает загрузку файлов >2Мб. Когда вы открываете второй файл, Winrar сам находит первую часть.

Re: MIDI плейер для AVR

Сб окт 26, 2013 19:48:06

FreshMan писал(а):наверное миссия невыполнима
А если внимательней посмотреть?
Не ужель не видно, что идёт двухбайтный (младший байт впереди) отсчёт таймера, затем ноты, затем знак окончания отсчёта, и всё по-новой.
P.S.: И не мой это формат, а чановский. :)))

Re: MIDI плейер для AVR

Сб окт 26, 2013 20:18:31

Мне очень понравилась статья о MIDI плеере (http://radiokot.ru/konkurs/77/) и хочу попробовать повторить поделку. Открывал проекты автора - hex файл просто постоянно выдает шум через шим(прям в рифму :)) ); CodeVisionAvr при попытке Build All (после открытия проекта-примера на attiny2313) выдает ошибки и предупреждения, как ни крути...было даже такое, что кодвижин выдавал ошибку, мол исходный код слишком велик и нужно купить полную версию (даже если мелодия длиться несколько миллисекунд (но при этом предупреждения все равно выскакивали))...Автор, помоги, пожалуйста, написать исходник на си, в который уже все подключено все файлы, выбран способ вывода звука через ШИМ и прочее...чтобы осталось скопировать те melody.c и hxMidiPlayer_config.h, нажать на BUILD ALL и получить hex файл, загрузив который в attiny2313 с кварцом 20мГц, мк начнет воспроизводить мелодию через ШИМ (PORTB.3).

Re: MIDI плейер для AVR

Вс окт 27, 2013 00:31:50

Все проекты в статье - для CodeVision AVR 2.05.0 Professional (поищите в Google). Я только сейчас заметил, что вышла версия 3.

AtTiny2313Example - настроенный проект для ATTiny2313. Вывод на PORTB.3. В 2.05.0 компилируется без ошибок - проверено. Предупреждения игнорируйте.
Фьюзы нужно выставить на внешний кварц 20 МГц. AtTiny2313Example\Exe\attiny2313example.hex из архива должен работать - проверьте фьюзы.

Re: MIDI плейер для AVR

Вс окт 27, 2013 10:32:00

hax, к вам покорнейшая просьба: пожалуйста, сделайте ваше творение более универсальным, подправте его для GCC.

Re: MIDI плейер для AVR

Вс окт 27, 2013 10:40:18

Насчет фьюзов даже не знаю...у меня ничего не запрограммировано кроме некоторых CSKEL, согласно которым, мк работает от внешнего кварца. И о программе..я б наверное не писал бы вам, если б сам не перепробовал много вариантов: я устанавливал, наверное, штук 6-7. Даже находил одну из самых-самых давних версий, но все равно, и там есть ограничения по исходному коду.. Буду о-о-очень благодарен, если под кинете ссылку на програмку, и укажите, какие именно фьюзы нужно установить в тиньке. Заранее спасибо!! :))

Re: MIDI плейер для AVR

Вс окт 27, 2013 11:18:56

Программу уже нашёл, установил, пример компилируется (занимает 96 процентов памяти), несколько секунд другой песни, и с низким качеством тоже уже получилось воспроизвести 8),..жаль, флеш памяти маловато..появился новый вопрос: как увеличить темп мелодии, не меняя кварц? На компе, в программе все быстро, динамично, записываю в мк, соотношения между паузами и тонами норм, но вот весь темп музыки медленный + тона чуть искажаются

Re: MIDI плейер для AVR

Вс окт 27, 2013 18:47:23

Если тона искажаются, значит контроллер не успевает обрабатывать каналы. Нужно снизить частоту синтеза/уменьшить количество каналов/увеличить частоту кварца. BTW Tiny легко заработает на 24-27MHz.

Re: MIDI плейер для AVR

Вт окт 29, 2013 17:52:46

замечательная статья, я вероятно повторю, и попробую сделать "пианино",.... но, ещё эта статья окончательно убедила меня переходить на STM32, этот проект на STM32 будет с более качественным звуком и.т.д. и Разгонять (как автору) чип не надо. :)) да и цена 32 разрядного процессора равна 8 разрядному, сейчас в магазине 75р. (STM32F103R)
Вообщем, спасибо автору за сорцы, буду переделывать под STM.
И ещё, пожелание, Коментарии в программе желательно бы на русском, не у всех английский родной язык.

Re: MIDI плейер для AVR

Вт дек 24, 2013 10:44:29

Собрал на макетке пока.
То ли ошибка то ли - фиг знает, Но ногу PWM на 8 меге надо было притянуть к VCC, тогда заработало.

А так плеер класный.

Жаль что только миди поддерживает/ Вот бы еще была "эмуляция" AY-3-89хх http://bulba.untergrund.net/elect.htm
Было бы вообще шикааарно!



Еще проблема. Громкость очень маленькая. Собрал на двух транзисторах. Более менее нормально слышно только когда мелодию делаю в Square wave, но в этом режиме она не красиво звучит.
питание 5 вольт
Ответить