МУЗЫКАЛЬНЫЕ ВОЗМОЖНОСТИ
В ряд версий Бейсика встроен специальный подъязык, который позволяет программировать музыку. Это делается без труда командой PLAY. В команде указывается строковое выражение, составленное из символов, кодирующих ноты.
Общий формат команды PLAY таков:
PLAY AS, B$, CS,
где AS, BS, CS - строки символов, число которых не превышает числа параллельных звуковых каналов в системе. Каждый символ - команда специального языка, задающая ноту, длительность и громкость звучания, другие параметры. Следующие латинские буквы соответствуют основным нотам:
с - «до»,
d - «ре»,
е - «ми»,
f - «фа»,
g - «соль»,
а - «ля»,
b - «си»
Например,команда
PLAY "cdefgab"
осуществляет музыкальное исполнение гаммы (до-ре-ми-фа-соль-ля-си) четвертой октавы с длительностью 1/4 ноты (устанавливаемой, при отсутствии явных указаний, «по умолчанию»).
Нота может звучать на полтона выше (бемоль - знак «минус») или ниже (диез -знак «плюс», либо #). Высота звучания нотьГопределяется октавой. Октава кодируется символом с номером On. помещаемым перед нотой или группой последующих нот. Принято кодировать октавы по порядку с единицы в соответствии с фортепианным рядом, первая октава (01) - контроктава, вторая октава (02) - большая октава, третья октава (03) - малая октава, четвертая октава (04) - первая октава, пятая октава (05) - вторая октава и т.д. Например, команда
PLAY "оЗ а а а"
проигрывает три ноты ля-ля-ля в малой октаве.
Длительность звучания ноты измеряется в специальных единицах - одна целая нота (произнесите четко «раз-и. два-и, три-и, четыре-и», тогда время, затраченное на эту фразу, приблизительно соответствует длительности одной ноты). Выделяют длительность в полноты (1/2 ноты), четверть, одну восьмую, одну шестнадцатую и т.д. - вплоть до одна шестьдесят четвертая. Длительность звучания в программе устанавливают командой Ln (n = 1, 2, ... 64), включаемой в символьную последовательность, либо непосредственно в самих командах установки нот. Например,
PLAY"C8D2L16fbe"
означает звучание ноты «до» длительностью в одну восьмую ноты, «ре» - в одну вторую, а ноты фа-си-ми звучат длительностью в одн\ шестнадцатую ноты. Аналогичную размерность имеет пауза, обозначаемая Rn или Рп.
Уровень громкости может быть установлен командой Vn, предшествующей ноте (n = 0, 1,... 15); по умолчанию n = 8 - «средняя» громкость.
Ниже приведен пример кодирования музыкального произведения.
Программа 59
*********** рпезы Шумана **************
10 DATA c8, f2f8, e8, f8, a8, o5c8, f8f2
20 DATA e8, d8, c8, f8, o4g8, a8, b-8, o5d8, o4f8, g8,a8
30 DATA o5c8, o4g2, c4, f2f8, e8, f8, a8, o5c8, a8a4a8
40 DATA g8, f8, d8, c8, f8, o4, g8, a8. b-8, o5, d8, o4, g8, a8, b-8
50 DATA o5d8, o4-d8, e8, f2
60 FOR i = 1 TO 46
70 READ f$
80 PLAY f$
90 NEXT i
Использование функции считывания п символов нажатых клавиш INPUTS(n) позволяет использовать клавиатуру как музыкальный инструмент.
Программа 60
5 ******* компьютер - простейший музыкальный инструмент *******
10 f$ = INPUT$(1)
20 PLAY f$
30 GOTO 10
Контрольные вопросы и задания
1. Составьте программу, исполняющую первые такты полонеза Огинского.
2. Разработайте компьютерный вариант популярной игры «Угадай мелодию».
Дата добавления: 2015-10-13; просмотров: 643;