Beep

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Beep (/biːp/, англ.  — гудок, сигнал) — простой однотонный звук, выводимый через встроенный динамик персонального компьютера.

Также «beep» называются различные функции и программы, связанные с этим звуком.

Функция Windows API[править | править вики-текст]

Beep — функция Windows API, предназначенная для воспроизведения простых однотонных звуков через встроенный динамик с заданной частотой и продолжительностью. Существует в операционных системах семейства Microsoft Windows и ReactOS. Входит в состав ядра системы (Kernel32.dll в 32-хразрядных версиях Windows и ReactOS).[1][2]

В более общем смысле beep (бип) — любой короткий звуковой сигнал, издаваемый любым электронным устройством, часто единственная наглядная возможность получить какую-либо информацию от устройства.

Применение[править | править вики-текст]

Функция Beep выполняется синхронно, то есть возвращает управление лишь после завершения воспроизведения звука. Она имеет два параметра:

  • dwFrec — частота звука в герцах, допустимый диапазон — от 37 до 32 767 Гц;
  • dwDuration — продолжительность звука в миллисекундах;

и возвращает значение типа BOOL (ненулевое при успешном выполнении).

Минимальное допустимое значение частоты звука 37 Гц предотвращает возможность случайного или преднамеренного воспроизведения инфразвука, который может представлять опасность для здоровья человека.

В Windows XP SP3+ для воспроизведения используется устройство, использующее при прослушивании музыки. Если функция Beep воспроизводит звук через PC-speaker, стандартные средства регулировки громкости не окажут на неё влияния. Вместо этого для отключения звука можно использовать команды:

net stop beep
sc config beep start= disabled

Реализация Beep в Windows NT и ReactOS использует файл-устройство «\Device\Beep\». Поэтому прерывание работы потока во время её выполнения может привести к тому, что дескриптор устройства останется незакрытым.[3]

История[править | править вики-текст]

Впервые появилась ещё в 16-разрядных версиях Windows. В ОС Windows 95/98/Me функция Beep была реализована ограниченно: значения обоих параметров игнорируются. При наличии звуковой карты воспроизводится стандартный системный звук, а при её отсутствии — звук с некоторыми стандартными параметрами через встроенный динамик.

В ReactOS функция Beep появилась 10 марта 1999 года.[4] Контроль значений параметров, наряду с рядом других исправлений, добавлен 27 октября 2005 года.[5]

Пример использования[править | править вики-текст]

Пример синкопы

Пример использования функции Beep 

Ниже приведён исходный текст программы на языке Си, которая воспроизводит мелодию — пример синкопы.

#include <windows.h>
 
int WINAPI
WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
  Beep(294, 1000/8);
  Beep(440, 1000/4);
  Beep(262*2, 1000/4);
  Beep(330*2, 1000/4);
  Beep(415, 1000/8);
  Beep(440, 1000);
 
  return 0;
}

См. также[править | править вики-текст]

Примечания[править | править вики-текст]