Comando beep, sacandole partido al pcspeaker

Iniciado por ANTRAX, Junio 23, 2014, 08:33:14 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


El comando beep es un pitido que hace lo que se espera, que suene.

Con beep sonará el altavoz interno del PC.

Beep permite controlar el tono, la duración y repeticiones. Se puede ejecutar directamente en la línea de comandos, pero su trabajo consiste en "vivir" dentro de scripts de shell / perl. Dicho de otro modo, podemos insertar beep en nuestros scripts para hacerlos mas interactivos o como aviso sonoro de un evento. Esto hace que el monitoreo del sistema sea mucho más informativo.

Se controla fácilmente a través de las opciones de línea de comandos. Como norma, el comando viene por defecto en Debian y demás distribuciones, aunque el módulo está en la lista negra.

Vamos primero a ver si tenemos instalado beep en la maquina (emitirá el característico sonido):

Código: bash
$ beep


Si nos devuelve que no lo tenemos instalado, lo instalamos con:

Código: bash
$ sudo apt-get install beep


Volvemos a introducir el comando en el terminal, si no suena el característico pitido, lo tendremos que sacar de lista negra con el comando modprobe pcspkr:

Código: bash
$ sudo modprobe pcspkr


Comprobamos:

Código: bash
$ beep


Esto hace que tengamos el sonido, pero si queremos dejarlo fijo (como esta en la lista negra, al rebotar la maquina no se emitirá el sonido), tenemos que editar en modo root el fichero que se encuentra en /etc/modprobe.d/blacklist.conf   o en mi caso también en  /etc/modprobe.d/alsa-base-blacklist.conf.

Buscamos y descomentamos la linea 'blacklist pcspkr' o 'blacklist snd-pcsp', y ya lo tenemos preparado.
Por defecto, sólo root puede ejecutar el comando beep, pero otros usuarios pueden estar autorizados cambiando los permisos del comando:

Código: bash
# chmod 4755 /usr/bin/beep


La parte 755 significa que hay lectura / escritura / permisos de ejecución para el propietario (root), y de sólo lectura / permisos de ejecución para todos los demás.

Dando un vistazo al man de beep se ven las frequencias de sonido:


A partir de aquí podemos utilizarlo para incluirlo en shell scripts o directamente desde la terminal con un poco de originalidad:

Código: bash
$  beep -f 1000 -n -f 1500 -n -f 600 -n -f 500 -n -f 100 -r 2 -l 10 -n -f 50 -r 2 -l 200 -n -f 40 -r 2 -l 300 -n -f 60 -r 3 -n -f 50 -r 3


Código: bash
$ beep -f 261; sleep 0.20; beep -f 277; sleep 0.20; beep -f 293; sleep 0.20; beep -f 311; sleep 0.20; beep -f 329; sleep 0.20; beep -f 349; sleep 0.20; beep -f 369; sleep 0.20; beep -f 392; sleep 0.20; beep -f 415; sleep 0.20; beep -f 440; sleep 0.20;  beep -f 466; sleep 0.20; beep -f 493;


Mas ejemplos:

- Star Wars Marcha Imperial   No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

- Superdetective en Hollywood   No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

- Daft Punk aerodynamics       No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Ajajajaja me encantó este post! Muy original.
Muchas gracias ANTRAX!

CrazyKade