Basic - вводный курс

ремонт холодильников в балашихе Купить проститутку в Саратове


Музыка в Бейсике: оператор PLAY

Оператор play позволяет составлять музыкальные фрагменты и проигрывать их в различных сочетаниях в ходе выполнения программы. Как и оператор draw, оператор play имеет свой набор команд для определения мелодии. С помощью этих команд вы можете задать темп, октаву, паузы и другие музыкальные характеристики. Команды объединяются в строку и присваиваются строковой переменной. Когда вы захотите услышать мелодию, обратитесь к оператору play с командой

"X"+VARPTR (строковая переменная)


В представленной ниже программе оператор play используется для последовательного проигрывания нот в семи октавах.

Последовательно проигрывает все ноты в 7 октавах scale$ = "CDEFGAB" PLAY "LI6" FOR I = 0 ТО 6
PLAY "0" + STR$(1%)
PLAY "X" + VARPTR$(scale$) NEXT I
А вот еще один пример — всем известная мелодия "Happy birthday to you!".
CLS
PLAY "L8 MF MS 03 GG L4 AG 04 С 03 L2 В"
PLAY "L8 MF MS 03 GG Ы AG 04 D L2 C"
PLAY "L8 MF MS 03 GG L4 04 GE L8 CC 03 L4 В А"
PLAY "04 L8 FF L4 ECD LI C"
END

Все команды оператора play перечислены в табл. 3.4. Испытав их, вы убедитесь, что они предоставляют широкие возможности для "музицирования". Таково еще одно замечательное применение двоичного кода.

Таблица 3.4. Команды оператора PLAY

Команда
Действие
Буква от А до G
Исполнение ноты, обозначенной указанной буквой
Буква от А до G, за которой следует знак #, + или -
Исполнение ноты в соответствии с буквой, где знак # или + означают "диез", а знак — соответствует "бемоль"
Lx
Исполнение последующих нот с интервалом 1/х, где х меняется в диапазоне от 1 до 64
Ox
Играть в октаве х. Третья октава начинается со сред­него "ми" (нота С). Всего имеется семь октав (с 0 по 6), расположенных между "ми" и "ре" (от С до В)
Px
Пауза длительностью 1/х (х от 0 до 64)
Tx
Задание темпа или четвертных нот, исполняемых в минуту (х может меняться от 32 до 255; по умолча­нию равно 120)
Nx
Исполнение ноты х, которая может меняться от 0 до 84. Каждая октава имеет 12 нот, включая диезы и бемоли. 0 означает паузу
MN
Нормаль. Каждая нота звучит 7/8 времени, заданного в команде L
ML
Легато. Каждая нота звучит полный интервал, задан­ный в команде L
MF
Стаккато. Каждая нота звучит 3/4 времени, заданного в команде L
MS
Установка режима непосредственного исполнения. Каждая нота, заданная в операторах PLAY н sound, исполняется только после завершения предыдущей. Исполнение программы приостанавливается до окончания музыки. Этот режим принимается по умолчанию
MB
Установка режима фонового исполнения. Каждая нота, заданная в операторах PLAY и SOUND, сохраня­ется в отдельном буфере и исполняется в процессе работы основной программы
. (точка)
Увеличение продолжительности звучания на 50%

Фоновая музыка — весьма эффективное средство, дополняющее визуальное восприятие работы компьютера. Она успокаивающе действует на нетерпеливого клиента, который вынужден ждать, скажем, окончания выполнения программы службы знакомств.
В очередной программе фоновая музыка делает поздравление из ранее рассмотренного примера более теплым. В операторах play команда mf заменена командой мв (фоновое исполнение). В результате программа выводит на экран имя именинника, не дожидаясь окончания музыки. Музыка продолжается в процессе исполнения цикла for. . .next, во время которого на экране пишется имя крокодила Гены.

' Поздравление с днем рождения!
CLS
PLAY "L8 MB MS 03 GG L4 AG 04 С 03 L2 В"
PLAY "L8 MB MS 03 GG L4 AG 04 D L2 C"
PLAY "L8 MB MS 03 GG L4 04 GE L8 CC 03 L4 В А"
PLAY "04 L8 FF L4 ECD LI C"
FOR I = 1 TO 24
LOCATE I, I
PRINT "КРОКОДИЛ ГЕНА, С ДНЕМ РОЖДЕНИЯ!" NEXT I END

В следующей программе параметр х цикла for...next внутри цикла используется для обозначения длительности звучания ноты G (соль) в третьей октаве.

FOR X = 1 ТО 64
PLAY "L" + STR$(X)
PLAY "03G" NEXT

Поскольку аргумент команды L является знаменателем дроби, обозначающей длительность ноты, с возрастанием х длительность звучания становится все короче. Запустите программу и вы услышите музыку, напоминающую звук скачущего пластмассового шарика.

Назад Начало