Cómo hacer que el hardware emita un pitido en Mac OS X 10.6

174

Solo quiero que Mac OS X 10.6 emita un pitido de hardware como en suse abierto y otras distribuciones. Traté de seguir enfoques

Terminal -> pitido = -bash: pitido: comando no encontrado

Terminal -> decir bip = la voz habla bip (no es un bip de hardware pero es impresionante;))

AppleScript -> pitido = campana de Macintosh (¡quiero un pitido de hardware!)

¿Alguien sabe cómo hacer sonar el hardware en bin / bash o applecript?

elhombre
fuente
3
@elhombre, ¿qué te hace pensar que Mac OS X puede hacer tal cosa?
Carl Norum
19
Intente: diga "bip" si no encuentra nada, lo más cerca que se me ocurre.
Patrik Björklund
30
@Patrik - +1, bien. printf "\a"emite un pitido del sistema operativo, si eso ayuda.
Carl Norum
9
@Carsten: una Mac es una PC. PC = computadora personal. Simplemente no es una PC IBM (compatible).
Paul R
2
Un MAC basado en Intel es una PC compatible con IBM
Nathan Garabedian

Respuestas:

24

No hay "pitido de hardware" en macOS.

La funcionalidad en la que está pensando es un artefacto de hardware muy antiguo (anterior a la década de 1990) compatible con PC de IBM. Antes de que la mayoría de las computadoras tuvieran tarjetas de sonido, la mayoría de las máquinas tenían un pequeño altavoz o zumbador piezoeléctrico conectado a uno de los canales de un chip temporizador. Esto podría usarse para generar tonos simples o pitidos. Incluso después de que muchas computadoras integraran tarjetas de sonido, siguió siendo común durante bastante tiempo que las computadoras enrutaran esta salida a un altavoz interno separado. Más recientemente, muchas computadoras, especialmente las portátiles, han integrado esta funcionalidad en la tarjeta de sonido integrada.

(Si tiene curiosidad sobre los detalles técnicos de cómo funciona la interfaz de altavoz de la PC, aquí encontrará más detalles ).

Este hardware nunca ha existido en las computadoras Apple. La única salida de audio disponible es a través de la tarjeta de sonido, y el único pitido del sistema en macOS es el sonido de alerta del usuario.

duskwuff -inactive-
fuente
44
Después de 7 años, la búsqueda llegó a su fin ^^ Gracias Dog en Internet. Pero todavía disfruto de todas las formas creativas en que las personas responden la pregunta, ¡así que sigan viniendo!
elhombre
Esa es una curiosidad interesante, pero en realidad no responde la pregunta ...
Ian Dunn
3
@IanDunn Claro que sí, lea el primer y el último párrafo detenidamente. La pregunta es pedir algo que no existe.
duskwuff -inactive-
1
Ah, tienes razón, no leí la pregunta y los comentarios del OP lo suficientemente cerca, y pensé que solo querían el sonido en sí, independientemente de si venía a través de software o hardware. Culpa mía.
Ian Dunn
1
La campana de la terminal es anterior a la PC de los años 90 por casi 100 años: en.wikipedia.org/wiki/Bell_character
kwerle
271

tput bel Funciona en la mayoría de los depósitos.

En OS X, este (y cualquier otro comando que haga sonar la campana) también le da una insignia si el comando se ejecuta cuando Terminal no estaba en primer plano:

broofa
fuente
35
El efecto secundario impresionante (al menos en la terminal Lion) de que suene una campana en su terminal cuando está en segundo plano es que el ícono en el documento salta, y obtiene un indicador rojo que dice que se ha completado algo. Pruebe esto: "sleep 5; tput bel" ejecute ese comando y luego salga de la terminal, cuando suena la campana, recibe una alerta. ¡Justo lo que estaba buscando!
BadPirate
Usuarios de Iterm: esto emite un pitido, pero no crea la insignia de alerta :(
Eric Hu
44
@EricHu -iTerm2 ahora es compatible con esto - github.com/gnachman/iTerm2/commit/…
broofa
1
tputEs un gran comando con muchas opciones . Este comando también funciona en Linux.
Drew Noakes
77
echo -e "\a"también funciona en OS X y probablemente sea más portátil
wap26
139

La impresión \ano siempre funcionó para mí (MBA, 10.7.4). Yo uso esto en su lugar:

say "beep"
Andrei
fuente
la única forma que funcionó para mí (OSX 10.8). Ni echo -e "\ a" ni printf "\ a" no funcionaron.
Valeriy Van
13
Wow - puedes poner cualquier cosa allí, por ejemplo: decir "construcción completada"
Pete
1
El mejor uso de él lo veo en Little Snitch : cuando ejecuto una aplicación de pantalla completa y no veo advertencias emergentes de LS, saysoy yo (solo en pantalla completa), es decir, qué aplicación se ha bloqueado al intentar conectarse a algún host. Muy agradable. Hace algún tiempo necesitaba rastrear los cambios en un sitio web durante un día, así que en lugar de sentarme frente a mi pantalla, solía saydecirme lo que estaba sucediendo (obviamente solo texto significativo, esos eran anuncios de venta).
Andrei
@RandyHoward Esta es realmente divertida, ¡gracias! Aquí hay una lista de otras opciones si alguien está interesado: pastebin.com/raw.php?i=czJ8MVW3
Andrei
77
Jaja. Puede hacer que las personas se pregunten si están escuchando cosas al poner dos voces una encima de la otra: Ejecutar say "Pay attention to me" &y say -v Whisper "I own you" &consecutivamente.
Matt
100

De hecho, lo siguiente es efectivo y algo melódico:

say -v Bells "dong dong dong"

[Actualización] Desafortunadamente, Bells ya no está incluido en el último OS X. Pruebe:

say -v Victoria Do your homework!

Use lo siguiente para explorar voces:

say -v \?
k00ka
fuente
77
decir -v Daniel harry potter harry potter
Madmartigan
1
O simplemente: say -v Bells "beep".
kenorb
1
No es la voz de Beels en mis macos actualizados.
Martin
Sí, Bells parece haber sido eliminado. Use say -v '?'para enumerar todas las voces. Use say -v '?' | egrep `echo $LANG | sed "s/\..*//"`para enumerar voces para su idioma actual.
k00ka
56

escribe echo ^Gen la fiesta. para crear la ^Gprensa ctrl+vy luego ctrl+g.

coffeejunk
fuente
20
/usr/bin/printf "\a"y osascript -e "beep 1"también el trabajo lo suficientemente bien
abe
¿Alguien puede explicar lo que echo ^Gestá haciendo (es decir, qué dice este comando en términos simples)? ¿Es este un personaje especial que le emite un pitido a OSX? ¿Hay otros caracteres especiales relacionados? @mxhaack @ wongo888
Eric Jones
2
@EricJones ^Ges un "carácter de control", es decir, un carácter no imprimible que se utilizó / se usó para causar un cierto efecto, como por ejemplo, activar la campana / pitido. Tener vistazo a este artículo de Wikipedia
coffeejunk
30

Esto recorrerá todas las voces (funciona en Yosemite):

say -v '?' | awk '{print $1}' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done
Jason Ryan Taylor
fuente
1
Hilarante, ¡qué tesoro! : D
idleherb
27

En el tipo de terminal:

echo -e "\ a"

El parámetro -e le dice a echo que procese los caracteres escapados. Como \ n es el nuevo carácter de línea, \ a es la campana (igual que Ctrl + G).

Zaphod
fuente
Una ventaja de este enfoque es que también funciona en Linux (¿y otros?). Como se mencionó en otra parte, también puede intentarloprintf "\a"
rinogo
1
Para aquellos que aman la campana pero son flojos con las citas, echo -e \\atambién funciona.
SeldomNeedy
26

Reproduce un sonido de alerta arbitrario con afplay

Me sorprende que nadie haya mencionado afplay: ese es el programa de línea de comandos que reproduce archivos de sonido arbitrarios. Ha existido desde los lanzamientos originales de OS X (y NeXTSTEP, si su memoria es tan larga).

Por ejemplo, puede ejecutar esto desde la línea de comandos o ponerlo en un script:

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

No estás limitado a los sonidos del sistema; Una ventaja de usar afplayes que puede elegir su propio archivo de sonido como alerta. Por ejemplo, puede descargar uno de estos archivos de sonido y elegir su favorito.

(¡Puntos extra si puede encontrar una grabación de un timbre de Teletype Model 33!)

temerario
fuente
La campana de la máquina de escribir podría estar lo suficientemente cerca.
Andriy Makukha
13

En terminales OS X, ejecute el comando: osascript -e 'beep'

Usando la tecnología OSA (Open Script Architecture) para decirle a AppleScript que ejecute el comando beep.

Albert
fuente
10
printf "\a"

Si observa man printf, le proporciona una lista de caracteres escapados, que incluyen \a:

\a      Write a <bell> character.
Alex Coplan
fuente
7

printf "\a" también funciona en una terminal y reproducirá el sonido de alerta establecido.

Oantby
fuente
7

Si necesitas algo, eso suena como "importante"

puedes usar

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

:)

Nedudi
fuente
1

en MacOS X, la opción de "advertencia de sonido" (Terminal / Preferencias) debe activarse para obtener un sonido.

MaxF
fuente
1
En realidad se llama "campana audible". Está en Configuración / Avanzado.
Denis Malinovsky
1

Esto funciona para mí (mac os 10.14.6)

echo "\x07"  
Morgangandes
fuente
0

Si tiene instalado XCODE, puede hacer un pitido / campana. No me he imaginado que puedo hacer que el printf "\a"personaje funcione en C.

Hay una manera de hacer que el tono funcione mientras se ejecuta el programa, iniciar XCODE, desplegar el menú en XCODE, Preferencias, Comportamientos, marcar la primera casilla REPRODUCIR SONIDO, elegir de la lista o agregar un sonido.

Esa es una forma de hacerlo, pero solo mientras el programa se ejecuta, creo.

Stewart Scott
fuente
1
Los "comportamientos" de Xcode solo se ejecutan cuando los eventos correspondientes ocurren en Xcode. No se aplican en ninguna otra parte del sistema.
duskwuff -inactive-
0

osascript -e 'tell application "System Events" pitar

Noé
fuente