double arrow

МУЗЫКАЛЬНЫЕ ВОЗМОЖНОСТИ

В ряд версий Бейсика встроен специальный подъязык, который позволяет программировать музыку. Это делается без труда командой 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. Разработайте компьютерный вариант популярной игры «Угадай мелодию».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: