Мир звуков Спектрума - глава 5.1: Создание эффектов оператором PLAY.

ZX Forum #04
     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, несмотря на  все  свои  достоин-
ства  (которые  принадлежат  скорее  музы-
кальному сопроцессору), имеет и  недостат-
ки. Например, он не позволяет  воспроизво-
дить ноты в режиме легато (слитно), а так-
же очень короткие ноты.