Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_лекций_2010_год_информатика.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

7.6.5.8. Звуковые средства языка qbasic

Оператор BEEP

Наиболее простой звуковой оператор, воспроизводящий короткий звуковой сигнал длиной в четверть секунды. Он может быть использован для привлечения внимания пользователя к определенному месту программы, например сигнализируя о вводе неправильного значения или сопровождая вывод сообщения об ошибке.

Пример.

INPUT “Введите число”, Х

IF X<0 THEN BEEP: GOTO 40

S=S+X

40 END

Оператор SOUND

Оператор SOUND позволяет воспроизводить различные звуковые сигналы и их последовательные комбинации. Он содержит два аргумента:

SOUND частота, продолжительность ,

где частота – числовое выражение, определяющее частоту звука в Гц; продолжительность – числовое выражение, определяющее продолжительность звучания.

Параметр частота может иметь любое значение от 37 до 32767 – он определяет число колебаний в секунду и измеряется в Гц. Если значение этого параметра слишком велико (больше 12000 Гц), то производимые колебания не ощущаются человеческим ухом.

Продолжительность звучания измеряется в тиках. Это необычная единица измерения времени. Одна секунда содержит 18.2 тика, значит для получения звука продолжительностью 5 секунд нужно задать этот параметр равным: 18.2 * 5 = 91.

Пример.

SOUND 500, 91

Пять секунд – слишком долгий звук, нежелательно часто им пользоваться. При встрече оператора SOUND QBASIC включает воспроизведение звукового сигнала, продолжает выполнение остальной программы и выключает звук, если встречает другой оператор SOUND с параметром продолжительность, равным нулю.

Пример.

CLS

FOR TIMES% =1 TO 10

‘ пауза

SOUND 30000, 3

LOCATE 10,20

PRINT “ТЕЛЕФОН ЗАНЯТ !”

‘ звучание

NEXT TIMES%

END

Первый оператор SOUND производит звук очень высокой частоты, который продолжается очень короткое время и прерывает, создаваемый вторым оператором SOUND.

Оператор PLAY

Оператор PLAY позволяет записывать краткие музыкальные пьесы в виде текстовых выражений. Оператор PLAY дает возможность проигрывать отдельные ноты, создавать паузы, менять темп. Общая форма оператора:

PLAY текст ,

где текст – текстовое выражение, состоящее из специальных команд, создающих музыку.

Музыкальная клавиатура

Октава состоит из 12 клавиш (7 белых и 5 черных), а вся клавиатура - из 7 октав. PLAY позволяет «играть» на компьютере, имитируя все 84 клавиши.

Каждая нота в операторе PLAY может быть определена двумя способами:

- номером октавы и буквой;

- просто определенной буквой.

В QBASIC октавы нумеруются слева направо. Номера октав изменяются от 0 до 6 (контроктава, большая, малая, первая, вторая, третья и четвертая). По умолчанию устанавливается номер 4. Номера нот изменяются от 1 до 84. Сама нижняя нота (1) называется С октавы 0. Самая высокая нота (84) - В октавы 6.

Существует специальный набор команд, который используется для создания музыки на компьютере.

Таблица 7.6

Команды оператора PLAY

Команда

Действие

Ох

Задание октавы х

>

Увеличить октаву на 1

<

Уменьшить октаву на 1

Nx

Воспроизвести ноту х

Lx

Задание продолжительности последующей ноты

MS

Задание громкости «Стаккато»

MN

Задание громкости «Нормально»

ML

Задание громкости «Легато»

Px

Пауза для определения числа ударов

Tx

Задание музыкального темпа

MF

Воспроизведение музыки в основном режиме

MB

Воспроизведение музыки в фоновом режиме

+ или #

Знак для обозначения диез

-

Знак для обозначения бемоль

.

Увеличение продолжительности звучания на 50%

Пример.

PLAY “CDEFGAB”

Оператор воспроизводит звучание нот четвертой октавы. Чтобы перейти на третью октаву, нужно добавить букву О с номером 3:

PLAY “О3 CDEFGAB”

Продолжительность ноты и пауза

По умолчанию звук проигрывается как целая нота. Если мелодия включает в себя ноты различной длины, то потребуется команда Lx, меняющая продолжительность звучания. Эта команда вызывает звучание ноты продолжительностью 1/х.

Если необходимо изменить продолжительность звучания одной ноты в мотиве, можно просто вставить число после знака ноты. Например, оператор

PLAY “O3 L1 C D E F8 G A B”

воспроизводит ноты C, D, E, G, A, B как целые, а ноты F как одну восьмую.

Пример.

В результате выполнения оператора

PLAY “L8 D B- A G F16 G16 C#”

воспроизводится последовательность нот «ре», «си-бемоль», «ля», «соль», имеющих длительность одна восьмая, затем следует нота «фа» длительностью одна шестнадцатая, далее – нота «соль» длительностью одна шестнадцатая, а последней нота «до-диез» длительностью одна восьмая.

Если после буквы поставить знак точки (.), продолжительность ноты увеличится в полтора раза. Пауза может быть создана с помощью команды Рх, которая подобна команде Lх, например:

PLAY “O3 L2 C D P1 L8 E F G P2 L32 A B”

Переменная х может принимать значения от 1 до 64. При этом 1 создает самую продолжительную паузу, 64 – самую короткую.

Задание темпа

Темп музыкальной пьесы характеризуется итальянскими словами «аллегро», «анданте», «адажио», «ленто» и т.д. Он определяет скорость, с которой проигрывается музыка. Скорость соответствует числу ударов метронома в минуту. Темп музыки задается командой Тх, где х – целое значение для числа ударов метронома. По умолчанию значение переменной х равно 120, что задает средний темп (между аллегретто и аллегро). Значение х может изменяться от 32 до 255. Темпу ленто приблизительно соответствует частота 64, адажио примерно 70, значение около 78 означает анданте.

Режимы звучания: основной и фоновый

У оператора PLAY отсутствует свойство оператора SOUND – воспроизведения звука в фоновом режиме, т.е. при выполнении других операторов программы. При использовании оператора PLAY программа приостанавливается на время исполнения мелодии. Однако, если мотив содержит меньше 32 нот, его можно поместить в память, и тогда программа не будет прерываться на время исполнения музыкального произведения. Выполняемый в фоновом режиме оператор PLAY заносит ноты в буфер (до 32) и вызывает переход к следующему оператору. Ноты последовательно выбираются из буфера и озвучиваются, в то время как программа продолжает выполнение. Для организации фоновой обработки музыки используется команда МВ.

Пример. Фоновая обработка музыки

REM Пример фоновой музыки

SCREEN 1

CLS

REM помещение музыки в буфер

PLAY “MB MsO3 B4A0 F+8G8A4 p64 F+8G8A4 p64 G8F+8E”

PLAY “p32O3 B8B8A4 G32F+8G8A4 G32F+8G8A4 G8F+8E”