Comment faire retentir le bip matériel sous Mac OS X 10.6

174

Je veux juste que Mac OS X 10.6 émette un bip matériel comme dans Open Suse et d'autres distributions. J'ai essayé de suivre des approches

Terminal -> beep = -bash: bip: commande non trouvée

Terminal -> dire bip = la voix émet un bip (pas un bip matériel mais génial;))

applescript -> beep = cloche Macintosh (je veux un bip matériel!)

Quelqu'un sait-il comment émettre un bip matériel dans bin / bash ou applescript?

elhombre
la source
3
@elhombre, qu'est-ce qui vous fait penser que Mac OS X peut même faire une telle chose?
Carl Norum
19
Essayez: dites «bip» si vous ne trouvez rien, le plus proche auquel je pense.
Patrik Björklund
30
@Patrik - +1, sympa. printf "\a"donne le bip du système d'exploitation, si cela aide.
Carl Norum
9
@Carsten: un Mac est un PC. PC = ordinateur personnel. Ce n'est tout simplement pas un PC IBM (compatible).
Paul R
2
Un MAC Intel est un PC compatible IBM
Nathan Garabedian

Réponses:

24

Il n'y a pas de "bip matériel" dans macOS.

La fonctionnalité à laquelle vous pensez est un artefact d'un très ancien matériel compatible IBM PC (avant les années 1990). Avant que la plupart des ordinateurs n'aient des cartes son, la plupart des machines avaient un petit haut-parleur ou un buzzer piézo connecté à l'un des canaux d'une puce de minuterie. Cela peut être utilisé pour générer de simples tonalités ou bips. Même après que de nombreux ordinateurs aient intégré des cartes son, il est resté courant pendant un certain temps pour les ordinateurs d'acheminer cette sortie vers un haut-parleur interne distinct. Plus récemment, de nombreux ordinateurs, en particulier les ordinateurs portables, ont intégré cette fonctionnalité dans la carte son intégrée.

(Si vous êtes curieux de connaître les détails techniques du fonctionnement de l'interface du haut-parleur du PC, vous trouverez plus de détails ici .)

Ce matériel n'a jamais existé dans les ordinateurs Apple. La seule sortie audio disponible se fait via la carte son, et le seul bip système dans macOS est le son d'alerte de l'utilisateur.

duskwuff -inactif-
la source
4
Au bout de 7 ans, la recherche est arrivée à son terme ^^ Merci Dog sur Internet. Mais j'apprécie toujours toutes les façons créatives dont les gens répondent à la question, alors continuez à venir!
elhombre
C'est une anecdote intéressante, mais cela ne répond pas vraiment à la question ...
Ian Dunn
3
@IanDunn Bien sûr que oui - lisez attentivement les premier et dernier paragraphes. La question est de demander quelque chose qui n'existe pas.
duskwuff -inactif-
1
Ah, vous avez raison, je n'ai pas lu assez attentivement la question et les commentaires de l'OP, et j'ai pensé qu'ils voulaient juste le son lui-même, qu'il provienne du logiciel ou du matériel. Ma faute.
Ian Dunn
1
La cloche du terminal est antérieure de près de 100 ans au PC des années 90: en.wikipedia.org/wiki/Bell_character
kwerle
271

tput bel fonctionne dans la plupart des coquilles.

Sous OS X, cette (et toute autre commande qui fait sonner la cloche) vous obtient également un badge si la commande est exécutée alors que Terminal n'était pas au premier plan:

Broofa
la source
35
L'effet secondaire impressionnant (au moins dans le terminal Lion) de faire sonner une cloche dans votre terminal quand il est en arrière-plan est que l'icône sur le document saute et que vous obtenez un indicateur rouge indiquant qu'il y a eu quelque chose de terminé. Essayez ceci: "sleep 5; tput bel" exécutez cette commande puis sortez du terminal, lorsque la cloche se déclenche, vous recevez une alerte. Exactement ce que je cherchais!
BadPirate
Utilisateurs Iterm: cela émet un bip, mais ne crée pas le badge d'alerte :(
Eric Hu
4
@EricHu -iTerm2 prend désormais en charge cela - github.com/gnachman/iTerm2/commit/…
broofa
1
tputest une excellente commande avec de nombreuses options . Cette commande fonctionne également sous Linux.
Drew Noakes le
7
echo -e "\a"fonctionne également sur OS X et est probablement plus portable
wap26
139

L'impression \an'a pas toujours fonctionné pour moi (MBA, 10.7.4). J'utilise plutôt ceci:

say "beep"
Andrei
la source
le seul moyen a fonctionné pour moi (OSX 10.8). Ni echo -e "\ a" ni printf "\ a" ne fonctionnaient.
Valeriy Van
13
Wow - vous pouvez mettre n'importe quoi là-dedans, par exemple: dites "construction terminée"
Pete
1
La meilleure utilisation de celui-ci que je vois dans Little Snitch - lorsque je lance une application en plein écran et que je ne vois pas les avertissements pop-up LS réguliers, c'est saymoi eux (uniquement en plein écran), c'est-à-dire quelle application a été bloquée en essayant de se connecter à un hôte. Vraiment sympa. Il y a quelque temps, j'avais besoin de suivre les modifications sur un site Web pendant une journée, donc au lieu de m'asseoir devant mon écran, j'avais l'habitude sayde me faire savoir ce qui se passait (texte manifestement significatif uniquement - c'étaient des annonces de vente).
Andrei
@RandyHoward C'est vraiment drôle, merci! Voici une liste d'autres options si quelqu'un est intéressé: pastebin.com/raw.php?i=czJ8MVW3
Andrei
7
Haha. Vous pouvez amener les gens à se demander s'ils entendent des choses en mettant deux voix l'une sur l'autre: courir say "Pay attention to me" &et say -v Whisper "I own you" &consécutivement.
Matt
100

En effet, ce qui suit est efficace et quelque peu mélodique:

say -v Bells "dong dong dong"

[Mise à jour] Malheureusement, Bells n'est plus inclus dans le dernier OS X. Essayez:

say -v Victoria Do your homework!

Utilisez ce qui suit pour explorer les voix:

say -v \?
k00ka
la source
7
say -v Daniel harry potter harry potter
Madmartigan
1
Ou tout simplement: say -v Bells "beep".
kenorb
1
La voix n'est pas Beels sur mes macos à jour.
Martin le
Oui, Bells semble avoir été supprimé. Utilisez say -v '?'pour lister toutes les voix. Utilisez say -v '?' | egrep `echo $LANG | sed "s/\..*//"`pour lister les voix de votre langue actuelle.
k00ka le
56

écrire echo ^Gdans le bash. pour créer la ^Gpresse ctrl+vet ensuite ctrl+g.

café
la source
20
/usr/bin/printf "\a"et osascript -e "beep 1"fonctionne aussi assez bien
abe
Quelqu'un peut-il expliquer ce que echo ^Gfait (c'est-à-dire que dit cette commande en termes simples)? Est-ce un caractère spécial qui meens bip à OSX? Y a-t-il d'autres caractères spéciaux associés? @mxhaack @ wongo888
Eric Jones
2
@EricJones ^Gest un "caractère de contrôle" c'est-à-dire un caractère non imprimable qui est / a été utilisé pour provoquer un certain effet comme par exemple le déclenchement de la sonnerie / bip. Regardez cet article de Wikipédia
coffeejunk
30

Cela fera une boucle sur toutes les voix (fonctionne sur 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
la source
1
Hilarant, un tel trésor! : D
idleherb
27

Dans le type de terminal:

echo -e "\ a"

Le paramètre -e indique à echo de traiter les caractères d'échappement. Comme le \ n est le caractère de nouvelle ligne, \ a est celui de la cloche (identique à Ctrl + G).

Zaphod
la source
L'un des avantages de cette approche est qu'elle fonctionne également sous Linux (et d'autres?). Comme mentionné ailleurs, vous pouvez également essayerprintf "\a"
rinogo
1
Pour ceux qui aiment la cloche mais qui sont paresseux sur les citations, ça echo -e \\amarche aussi.
SeldomNeedy
26

Jouez un son d'alerte arbitraire avec afplay

Je suis surpris que personne n'ait mentionné afplay : c'est le programme en ligne de commande qui lit des fichiers audio arbitraires. Cela existe depuis les versions originales d'OS X (et de NeXTSTEP, si votre mémoire est aussi longue).

Par exemple, vous pouvez l'exécuter à partir de la ligne de commande ou le mettre dans un script:

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

Vous n'êtes pas limité aux sons du système; l'un des avantages de l'utilisation afplayest que vous pouvez choisir votre propre fichier son comme alerte. Par exemple, vous pouvez télécharger l' un de ces fichiers audio et choisir votre favori.

(Des points supplémentaires si vous pouvez trouver un enregistrement d'une cloche Teletype Model 33!)

sans peur
la source
La cloche de la machine à écrire est peut-être assez proche.
Andriy Makukha le
13

Sous les terminaux OS X, exécutez la commande: osascript -e 'beep'

Utilisation de la technologie OSA (Open Script Architecture) pour indiquer à AppleScript d'exécuter la commande beep.

Albert
la source
10
printf "\a"

Si vous regardez man printf, cela vous donne une liste de caractères échappés, y compris \a:

\a      Write a <bell> character.
Alex Coplan
la source
7

printf "\a" fonctionne également dans un terminal et jouera le son d'alerte défini.

Oantby
la source
7

Si vous avez besoin de quelque chose, cela semble "important"

vous pouvez utiliser

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
la source
1

sous MacOS X, l'option "avertissement sonore" (Terminal / Préférences) doit être activée pour obtenir un son.

MaxF
la source
1
En fait, ça s'appelle "Audible bell". C'est dans Paramètres / Avancé.
Denis Malinovsky
1

Cela fonctionne pour moi (mac os 10.14.6)

echo "\x07"  
Morgancodes
la source
0

Si vous avez installé XCODE, vous pouvez émettre un bip / une cloche. Je n'ai pas pensé que je pouvais faire fonctionner le printf "\a"personnage en C.

Il existe une manière de faire fonctionner le son pendant que le programme s'exécute, démarrez XCODE, menu déroulant sous XCODE, Préférences, Comportements, cochez la première case LIRE LE SON, choisissez dans la liste ou ajoutez un son.

C'est une façon de faire, mais seulement pendant que le programme s'exécute, je crois.

Stewart Scott
la source
1
Les «comportements» Xcode ne sont exécutés que lorsque les événements correspondants se produisent dans Xcode. Ils ne s'appliquent pas ailleurs dans le système.
duskwuff -inactif-
0

osascript -e 'tell application "System Events" biper '

Noé
la source