5.1. Создание эффектов на PLAYе
С помощью оператора PLAY можно созда-
вать очень интересные звуковые эффекты.
Причем делается это значительно проще, чем
в случае с BEEPом. Количество возможных
эффектов ограничено только фантазией прог-
раммиста. Чаще всего в них используются
громкостные эффекты, многоголосие и гене-
ратор шума.
Так как количество эффектов в данном
случае неимоверно велико, не буду описы-
вать каждый из них (принципы те же, что и
в главе 2.1), а приведу несколько приме-
ров с необходимыми комментариями.
Пример первый:
10 PLAY "X16384W0O6U9B"
воспроизводит плавно затухающую ноту.
Пример второй:
10 PLAY "O6X1000W3U1BX16384W0 9B"
модификация предыдущего эффекта. Громкость
ноты сначала возрастает от минимальной до
максимальной (мягкая атака), а затем плав-
но затухает.
Пример третий:
10 PLAY "T240W0X3000UO8(B&c&)"
этот эффект практически полностью аналоги-
чен предыдущим, но звучит совсем по-друго-
му.
Пример четвертый:
10 PLAY "O4X16384W3U9B"
здесь используется эффект, который в музы-
ке называется мягкой атакой звука.
В этих четырех эффектах применяется
чистый тон, но Вы можете использовать и
шум, вставив команду M8, или смесь тона с
шумом (команда M9).
Следующий пример такой:
10 LET A$="T240"
20 FOR A=1 TO 8
30 LET A$=A$+"O"+STR$ A+" 1CDEFGAB"
40 NEXT A: PLAY A$
В этом эффекте сначала подготавливает-
ся музыкальная программа, а затем проигры-
вается. Ее можно было бы задать прямо в
операторе PLAY, но тогда это выглядело бы
ужасно (несколько строк однотипного тек-
ста!) Если же воспроизводить ее одновре-
менно с созданием (в цикле), то появятся
нежелательные паузы.
Перед заданием основных данных в пере-
менную A$ заносится команда T240, что поз-
воляет ускорить эффект. Попробуйте кроме
T240 добавить M8 или M9.
Следующий пример:
10 LET A$="T240": LET B$=""
20 FOR A=1 TO 8
30 LET A$=A$+"O"+STR$ A+" 1CDEFGAB"
40 LET B$=B$+"O"+STR$ (9-A)+" 1BAGFEDC"
50 NEXT A: PLAY A$, B$
Этот эффект очень похож на предыдущий.
Но в данном случае используются два голо-
са, частоты которых смещаются в противопо-
ложных направлениях.
Еще один пример:
10 PLAY "O3 1cdefgabC","O5 1cdefgabC",
"O6 1cdefgabC"
Здесь используются все три канала, нас-
троенные на разные частоты, что звучит до-
вольно интересно.
В последнем примере нетрадиционно ис-
пользуется генератор огибающей. С его по-
мощью формируется необычный тембр:
10 PLAY "W4X1UcdefgabCW7X4cdefgabC"
Возможности оператора PLAY не исчерпы-
ваются приведенными эффектами. Вы можете
поэкспериментировать с ним.
И в заключении немного критики. Опера-
тор PLAY, несмотря на все свои достоин-
ства (которые принадлежат скорее музы-
кальному сопроцессору), имеет и недостат-
ки. Например, он не позволяет воспроизво-
дить ноты в режиме легато (слитно), а так-
же очень короткие ноты.