Как сделать аппаратный звуковой сигнал в Mac OS X 10.6

Я просто хочу, чтобы Mac OS X 10.6 делал аппаратный звуковой сигнал, как в open suse и других дистрибутивах. Я пробовал следующие подходы

Terminal - > beep = - bash: beep: команда не найдена

терминал - > сказать звуковой сигнал = голос говорит звуковой сигнал (не аппаратный звуковой сигнал, но удивительный ;))

applescript - > beep = Macintosh bell (я хочу аппаратный звуковой сигнал!)

кто-нибудь знает, как сделать аппаратный звуковой сигнал в bin/bash или applescript?

16 ответов


в macOS нет" аппаратного звукового сигнала".

функциональность, о которой вы думаете, является артефактом очень старого (до 1990-х годов) IBM PC-совместимого оборудования. Прежде чем большинство компьютеров звуковые карты, Большинство машин был небольшой динамик или пьезоизлучатель, подключенный к одному из каналов микросхемы таймера. Это может использоваться для создания простых тонов или звуковых сигналов. Даже после того, как многие компьютеры интегрировали звуковые карты, это оставалось обычным в течение некоторого времени для компьютеров, чтобы направить этот выход на отдельный внутренний динамик. В последнее время многие компьютеры, особенно ноутбуки, интегрировали эту функцию в встроенную звуковую карту.

(Если вам интересно узнать технические подробности о том, как работал интерфейс динамика ПК,здесь больше деталей.)

Это оборудование никогда не существовало в компьютерах Apple. Единственный аудиовыход доступен через звуковую карту, и единственный системный звуковой сигнал в macOS-это звуковой сигнал пользователя.


tput bel работает в большинстве снарядов.

в OS X, эта (и любая другая команда, которая делает колокол гаснет) также получает жетон, если команда выполняется, когда терминал не был на переднем плане:


печати \a не всегда работал на меня (MBA, 10.7.4). Я использую это вместо:

say "beep"

действительно, следующее эффективно и несколько мелодично:

say -v Bells "dong dong dong"

[Update] к сожалению, колокола больше не включены в последнюю версию OS X. попробуйте:

say -v Victoria Do your homework!

используйте следующее, чтобы исследовать голоса:

say -v \?

написать echo ^G в bash. чтобы создать ^G пресс ctrl+v а то ctrl+g.


В тип терминала :

echo -e "\a"

параметр-e сообщает echo обрабатывать экранированные символы. Поскольку \n-символ новой строки, \a-это колокол (то же самое, что Ctrl+G).


это будет петля через все голоса (работает на Yosemite):

say -v '?' | awk '{print }' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done

printf "\a"

если вы посмотрите на man printf, Он дает вам список экранированных символов, включая \a:

\a      Write a <bell> character.

под терминалами OS X выполните команду:osascript -e 'beep'

используя технологию OSA (Open Script Architecture), чтобы сказать AppleScript выполнить команду beep.


воспроизведение произвольного звука оповещения с afplay

Я удивлен, что никто не упомянул afplay: это программа командной строки, которая воспроизводит произвольные звуковые файлы. Это было вокруг с первоначальных выпусков OS X (и NeXTSTEP, если ваша память такая длинная).

например, вы можете запустить это из командной строки или поместить его в скрипт:

$ afplay /System/Library/Sounds/Ping.aiff

вы не ограничены системными звуками; одно из преимуществ использования afplay это то, что вы можете выбрать свой собственный звуковой файл в качестве предупреждения. Например, вы можете скачать один из этих звуковых файлов и выбрать свой любимый.

(дополнительные очки, если вы можете найти запись телетайпа модели 33 bell!)


printf "\a" также работает в терминале и будет воспроизводить установленный звуковой сигнал.


Если вам что-то нужно, это звучит как "важно"

можно использовать

tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s

:)


на MacOS X для получения звука необходимо активировать опцию" звуковое предупреждение " (терминал/настройки).


Если у вас установлен XCODE, вы можете сделать звуковой сигнал/звонок. Я не думал, что смогу сделать printf "\a" характер работы в с.

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

Это один из способов сделать это, но только по мере запуска программы, я считаю.


osascript-e 'скажите приложению" системные события "звуковой сигнал'


Эхо \07, Эхо \Х7, е \7, эхо \с, Выход бел, все работают.