Come emettere un segnale acustico hardware in Mac OS X 10.6


174

Voglio solo che Mac OS X 10.6 emetta un segnale acustico hardware come in open suse e altre distribuzioni. Ho provato a seguire gli approcci

Terminale -> beep = -bash: beep: comando non trovato

Terminale -> dire bip = la voce emette un bip (non un bip hardware ma fantastico;))

applescript -> beep = Campana Macintosh (Voglio un segnale acustico Hardware!)

Qualcuno sa come emettere un bip hardware in bin / bash o applecript?


3
@elhombre, cosa ti fa pensare che Mac OS X possa persino fare una cosa del genere?
Carl Norum,

19
Prova: pronuncia "bip" se non trovi nulla, il più vicino a cui riesco a pensare.
Patrik Björklund,

30
@Patrik - +1, bello. printf "\a"emette un segnale acustico del sistema operativo, se ciò aiuta.
Carl Norum,

9
@Carsten: un Mac è un PC. PC = Personal Computer. Non è solo un PC IBM (compatibile).
Paul R,

2
Un MAC basato su Intel è un PC compatibile IBM
Nathan Garabedian

Risposte:


24

Non esiste un "segnale acustico hardware" in macOS.

La funzionalità a cui stai pensando è un artefatto di hardware IBM molto vecchio (pre-1990) compatibile con PC. Prima che la maggior parte dei computer avesse schede audio, la maggior parte delle macchine aveva un piccolo altoparlante o un cicalino piezoelettrico collegato a uno dei canali di un chip timer. Questo potrebbe essere usato per generare toni o bip semplici. Anche dopo che molti computer hanno integrato le schede audio, è rimasto abbastanza per un po 'di tempo che i computer indirizzassero questa uscita a un altoparlante interno separato. Più recentemente, molti computer, in particolare i laptop, hanno integrato questa funzionalità nella scheda audio integrata.

(Se sei curioso di conoscere i dettagli tecnici su come ha funzionato l'interfaccia dell'altoparlante del PC, ci sono maggiori dettagli qui .)

Questo hardware non è mai esistito nei computer Apple. L'unica uscita audio disponibile è tramite la scheda audio e l'unico segnale acustico di sistema in macOS è il suono di avviso dell'utente.


4
Dopo 7 anni, la ricerca è terminata ^^ Grazie Cane su Internet. Ma mi piacciono ancora tutti i modi creativi in ​​cui le persone rispondono alla domanda, quindi continua a venire!
elhombre,

Questa è una curiosità interessante, ma in realtà non risponde alla domanda ...
Ian Dunn,

3
@IanDunn Certo, leggi attentamente il primo e l'ultimo paragrafo. La domanda è chiedere qualcosa che non esiste.
duskwuff -inattivo-

1
Ah, hai ragione, non ho letto abbastanza attentamente la domanda e i commenti dell'OP, e ho pensato che volessero solo il suono stesso, indipendentemente dal fatto che venisse via software o hardware. Colpa mia.
Ian Dunn,

1
La campana terminale precede il PC degli anni '90 di quasi 100 anni: en.wikipedia.org/wiki/Bell_character
kwerle,

271

tput bel funziona nella maggior parte delle conchiglie.

In OS X, questo (e qualsiasi altro comando che fa suonare la campana) ti dà anche un badge se il comando viene eseguito quando Terminal non era in primo piano:


35
Incredibile effetto collaterale (almeno nel terminale Lion) di far suonare una campana nel tuo terminale quando è in background è che l'icona sul documento salta e ottieni un indicatore rosso che dice che c'è stato qualcosa di completato. Prova questo: "sleep 5; tput bel" esegui quel comando e poi esci dal terminale, quando la campana suona, ricevi un avviso. Proprio quello che stavo cercando!
BadPirate

Utenti Iterm: emette un segnale acustico, ma non crea il badge di avviso :(
Eric Hu

4
@EricHu -iTerm2 ora supporta questo - github.com/gnachman/iTerm2/commit/…
broofa

1
tputè un ottimo comando con molte opzioni . Questo comando funziona anche su Linux.
Drew Noakes,

7
echo -e "\a"funziona anche su OS X ed è probabilmente più portatile
wap26

139

La stampa \anon ha sempre funzionato per me (MBA, 10.7.4). Lo uso invece:

say "beep"

l'unico modo ha funzionato per me (OSX 10.8). Né echo -e "\ a" né printf "\ a" non hanno funzionato.
Valeriy Van,

13
Caspita: puoi inserire qualsiasi cosa, ad esempio: dì "build completata"
Pete,

1
Il miglior utilizzo che vedo in Little Snitch - quando eseguo un'app a schermo intero e non vedo i normali avvisi popup LS, saysono loro (solo quando a schermo intero), ovvero quale app è stata bloccata nel tentativo di connettersi ad un host. Veramente bello. Qualche tempo fa avevo bisogno di tenere traccia delle modifiche su un sito Web durante il giorno, quindi invece di sedermi davanti al mio schermo, ero solito sayfarmi sapere cosa stava succedendo (ovviamente solo testo significativo - quelli erano annunci di vendita).
Andrei,

@RandyHoward Questo è davvero divertente, grazie! Ecco un elenco di altre opzioni se qualcuno è interessato: pastebin.com/raw.php?i=czJ8MVW3
Andrei

7
Haha. Puoi far domandare alle persone se stanno ascoltando le cose mettendo due voci una sopra l'altra: corri say "Pay attention to me" &e say -v Whisper "I own you" &consecutivamente.
Matt

100

In effetti, quanto segue è efficace e piuttosto melodico:

say -v Bells "dong dong dong"

[Aggiornamento] Purtroppo Bells non è più incluso nell'ultimo OS X. Prova:

say -v Victoria Do your homework!

Utilizzare quanto segue per esplorare le voci:

say -v \?

7
dì -v Daniel harry potter harry potter
Madmartigan il

1
O semplicemente: say -v Bells "beep".
Kenorb,

1
La voce non è Beels sui miei macos aggiornati.
Martin,

Sì, sembra che Bells sia stato rimosso. Utilizzare say -v '?'per elencare tutte le voci. Utilizzare say -v '?' | egrep `echo $LANG | sed "s/\..*//"`per elencare le voci per la lingua corrente.
k00ka,

56

scrivi echo ^Gnella bash. per creare la ^Gstampa ctrl+ve quindi ctrl+g.


20
/usr/bin/printf "\a"e osascript -e "beep 1"anche funzionare abbastanza bene
Abe

qualcuno può spiegare cosa echo ^Gsta facendo (cioè cosa dice questo comando in parole povere)? È un personaggio speciale che suona in bip all'OSX? Ci sono altri personaggi speciali correlati? @mxhaack @ wongo888
Eric Jones

2
@EricJones ^Gè un "carattere di controllo", ovvero un carattere non stampabile che è / è stato usato per causare un certo effetto come ad esempio l'attivazione della campana / segnale acustico.
Dai

30

Questo passerà attraverso tutte le voci (funziona su 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
Esilarante, un tale tesoro! : D
idleherb

27

Nel tipo di terminale:

echo -e "\ a"

Il parametro -e indica a echo di elaborare i caratteri di escape. Dato che \ n è il nuovo carattere di linea, \ a è quello della campana (uguale a Ctrl + G).


Un vantaggio di questo approccio è che funziona anche in Linux (e altri?). Come menzionato altrove, potresti anche provareprintf "\a"
rinogo,

1
Per chi ama la campana ma è pigro per le citazioni, echo -e \\afunziona anche.
SeldomNeedy,

26

Riproduci un suono di avviso arbitrario con afplay

Sono sorpreso che nessuno abbia menzionato afplay: questo è il programma da riga di comando che riproduce file audio arbitrari. È in circolazione sin dalle versioni originali di OS X (e NeXTSTEP, se la memoria è così lunga).

Ad esempio, puoi eseguirlo dalla riga di comando o inserirlo in uno script:

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

Non sei limitato ai suoni di sistema; uno dei vantaggi dell'utilizzo afplayè che puoi scegliere il tuo file audio come avviso. Ad esempio, puoi scaricare uno di questi file audio e scegliere il tuo preferito.

(Punti extra se riesci a trovare una registrazione di una campana Teletype Model 33!)


La campana della macchina da scrivere potrebbe essere abbastanza vicina.
Andriy Makukha,

13

Sotto i terminali OS X, eseguire il comando: osascript -e 'beep'

Utilizzo della tecnologia OSA (Open Script Architecture) per indicare ad AppleScript di eseguire il comando beep.


10
printf "\a"

Se guardi man printf, ti dà un elenco di caratteri fuggiti, tra cui \a:

\a      Write a <bell> character.

7

printf "\a" funziona anche in un terminale e riprodurrà il suono di avviso impostato.


7

Se hai bisogno di qualcosa, sembra "importante"

Puoi usare

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

su MacOS X, l'opzione "avviso sonoro" (Terminale / Preferenze) deve essere attivata per ottenere un suono.


1
In realtà si chiama "Campana sonora". È in Impostazioni / Avanzate.
Denis Malinovsky,


0

Se hai XCODE installato puoi emettere un segnale acustico / campanello. Non ho pensato di poter far funzionare il printf "\a"personaggio in C.

Esiste un modo per far funzionare il tono durante l'esecuzione del programma, avviare XCODE, menu a discesa in XCODE, Preferenze, Comportamenti, selezionare la prima casella PLAY SOUND, scegliere dall'elenco o aggiungere un suono.

Questo è un modo per farlo, ma solo mentre il programma funziona, credo.


1
I "comportamenti" Xcode vengono eseguiti solo quando si verificano gli eventi corrispondenti in Xcode. Non si applicano altrove nel sistema.
duskwuff -inattivo-

0

osascript -e 'tell application "System Events" emettere un segnale acustico

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.