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?


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.


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:


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"

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 \?

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.


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

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).


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!)



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.


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.

7

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


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

:)


1

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


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


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.


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 '

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.