Музыка в BASCOM_AVR - В.Н.Рубашка
[
]
12.12.2008, 08:56
Эта программа позволяет использовать в ваших самоделках различные музыкальные фрагменты. Более 100 заложены в программу. Описание нот, их частот, пауз и длительностей. Раскладка нот на клавишах.
Категория: Мои файлы | Добавил: bascom
Просмотров: 8365 | Загрузок: 1790
| Комментарии: 7
Всего комментариев: 6
Порядок вывода комментариев:
По умолчанию
Сначала новые
Сначала старые
1
я енмного о другом хотел вас спросить
я пишу на Си под GCC компилятор, но это не столь важно потому как алгоритм почти одинаковый
смотрите, мы имеем массив где зашифрована наша мелодия, массив содержит
нота-длительность-нота-длительность- и т.д.
допутим мне надо воспроизвести ноту До, зная ее частоту мне несложно вычислить сколько надо тиков таймера Т1, работаю с ATmega8a, чтобы воспроизвести данную ноту
но как быть с длительностью ноты ?
к чему мне ее привязатть ?
вот допустим 1/4 или 1/8 это надо понимать как четвертая или восьмая часть секунды ?
растолкуйте, пожалуйста
1
Длительность целой ноты - 4 секунды. Соответственно 1/4 - одна секунда, 1/8 - 0,5 сек.
1
подскажите пожалуйста, почему для длительности ноты 1/1 вы взяли 2с ?
Цитата
'=============================================================================== ' Условные обозначения записи мелодий, совместимые с телефонами "Siemens C35" '=============================================================================== ' ***** НОТЫ ***** ' ' A - ля ' Ais(#) - ля диез ' H - си ' С - до ' Сis(#) - до диез ' D - ре ' Dis(#) - ре диез ' E - ми ' F - фа ' Fis(#) - фа диез ' G - соль ' Gis(#) - соль диез ' ' ***** ДЛИТЕЛЬНОСТЬ НОТ ***** ' ' (1/1) - 2 сек (целая) ' (1/2) - 1 сек (половинная) ' (1/4) - 0,5 сек (четвертная) ' (1/8) - 0,25 сек (восьмая) ' (1/16) - 0,125 сек (шестнадцатая) ' (1/32) - 0,0625 сек (тридцатьвторая) ' ' ***** ОКТАВЫ ***** ' ' 1 - 1 октава ' 2 - 2 октава ' 3 - 3 октава ' ' ***** ПАУЗЫ ***** ' ' P(1/1) - 2 сек (целая) - Wait 2 ' P(1/2) - 1 сек (половинная) - Wait 1 ' P(1/4) - 0,5 сек (четвертная) - Waitms 500 ' P(1/8) - 0,25 сек (восьмая) - Waitms 250 ' P(1/16) - 0,125 сек (шестнадцатая) - Waitms125 ' P(1/32) - 0,0625 сек (тридцатьвторая) - Waitms 63 ' '=============================================================================== ' ФОРМАТ ФУНКЦИИ "SOUND" '=============================================================================== ' SOUND Speaker , Pulses, Periods ' Speaker - порт для генерации звука ' Periods - частота звука (1-65535) ' Pulses - длительность звука (1-65535) ' ' Periods =Abc[F_crystal / (k * F_nota)] ' Pulses = Abc[(T_period * F_crystal) / (k * Periods)] ' ' F_crystal - тактовая частота контроллера, Гц ' F_nota - частота выбранной ноты, Гц ' k = 12 - количество тактов, за которые формируется один период звука ' T_period - длительность звучания ноты, сек ' Abc - функция округления до целого числа ' '=============================================================================== ' Таблица значений Pulses и Periods для 1-3 октав при частоте кварца 8000000 Гц '=============================================================================== 'Nota|Freqvency|Periods|Pulses1/1|Pulses 1/2|Pulses 1/4|Pulses 1/8|Pulses 1/16| '=============================================================================== ' C1 | 261,63 | 2548 | 523 | 262 | 131 | 65 | 33 | 'Cis1| 277,18 | 2405 | 554 | 277 | 139 | 69 | 35 | ' D1 | 293,66 | 2270 | 587 | 294 | 147 | 73 | 37 | 'Dis1| 311,13 | 2143 | 622 | 311 | 156 | 78 | 39 | ' E1 | 329,63 | 2022 | 659 | 330 | 165 | 82 | 41 | ' F1 | 349,23 | 1909 | 698 | 349 | 175 | 87 | 44 | 'Fis1| 369,99 | 1802 | 740 | 370 | 185 | 92 | 46 | ' G1 | 392,00 | 1701 | 784 | 392 | 196 | 98 | 49 | 'Gis1| 415,30 | 1605 | 831 | 415 | 208 | 104 | 52 | ' A1 | 440,00 | 1515 | 880 | 440 | 220 | 110 | 55 | 'Ais1| 466,16 | 1430 | 932 | 466 | 233 | 117 | 58 | ' H1 | 493,88 | 1350 | 988 | 494 | 247 | 124 | 62 |
1
Я автор, пишите сюда.
1
подскажите почтовый ящик автора, пожалуйста
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]
Статистика
Онлайн всего: 4
Гостей: 4
Пользователей: 0