В ПЭВМ есть возможность генерировать с помощью встроенного динамика звуковые сигналы частотой от 37 Гц до 20 Кгц. Из программы на Паскале воспроизводятся только чистые тона без искажений. Сила, или громкость звука не регулируется.
Стандартный звуковой сигнал длительностью 0,25 сек и частотой 800 Гц вызывается символом 7 кодовой таблицы, например:
Writeln (‘Ошибка данных’,Chr(7));
Для управления частотой звука и его продолжительностью в модуле Crt предусмотрены следующие процедуры. Включение звука:
Sound (Freq:word);
Целый аргумент указывает частоту звучания в герцах. Звук будет продолжаться, пока не будет выключен.
Отмена (выключение) звука:
NoSound;
Задержка по времени:
Delay (ms:word);
Целый аргумент указывает длительность в миллисекундах. Это универсальная процедура и может использоваться в самых различных целях. Но она использует встроенную схему таймера с интервалом 18,2 раз в секунду, поэтому для точного вычисления времени эту процедуру использовать нельзя.
Таким образом, стандартный звуковой сигнал — это последовательность процедур, например:
|
|
Sound (800);
Delay (250);
NoSound;
С помощью этих процедур и операторов цикла можно создавать разнообразные звуковые эффекты, например, проиграть гамму:
Program Gamma;
{ Пример проигрывания гаммы }
Uses Crt;
Const
{ Частоты нот гаммы от ДО октавы 1 до ДО октавы 2 }
Freq: Array[1..8] of word=(262,294,330,349,392,440,494,524);
VAR
i:integer;
Begin
Repeat
For i:=1 to 8 do Begin
Sound(Freq[i]); { Включение звука }
Delay(500);
NoSound; { Выключение звука }
end
Until KeyPressed;
end.