Reproduce un sonido, cualquier sonido [cerrado]

43

Su programa tiene que hacer que la computadora produzca un sonido, cualquier sonido.

El código más corto gana, no antes de 10 días después de la primera respuesta válida. Si hay un empate, el presentado antes, gana.

  • El programa debe ejecutarse en una computadora personal razonable, no muy infrecuente.
  • Abrir una ventana emergente, un cuadro de mensaje, etc. (por ejemplo, en una página web) no cuenta, ya que pueden o no producir un sonido, dependiendo de muchas configuraciones.
  • Simplemente ingresar un comando incorrecto o un carácter no válido en una consola y recibir un pitido de advertencia no cuenta, de la misma manera que el compilador / intérprete / SO que emite un error o falla tampoco cuenta. Su código debe ser un programa válido.
vsz
fuente
1
^ G también conocido como campana del sistema o pitido del sistema operativo puede ser suprimido en muchos sistemas (por ejemplo, cambiado para ser una "campana" visible) y también debe manejarse como sonidos de popus y así sucesivamente: no es una solución válida.
Todos los programas que imprimen "\ a" en una terminal fallan si xterm usa una campana visible.
kernigh
19
rm /provocará muchos gritos.
cjfaure
Mi fan izquierdo ha estado muriendo ruidosamente por un tiempo. ¿Sería una respuesta válida de 0 bits?
Édouard
1
Creo que esta pregunta debería reabrirse. Las respuestas de broma que dependen del giro del ventilador o de la apertura de la bandeja del CD no son válidas, ya que la pregunta dice "reproducir un sonido". Me parece bastante claro que la salida debe provenir de los altavoces como resultado del programa, no del sistema operativo o el usuario o el hardware.
mbomb007

Respuestas:

20

dc, 2 caracteres

este también imprime el carácter de campana:

7P

Ejecutar con $ dc <<< 7Po guardar 7Pen un archivo y ejecutar $ dc file.

También:

Befunge, 2 caracteres

Similar pero infinitamente en bucle y pitido:

7,
daniero
fuente
1
¿Podría por favor explicar qué idioma es ese? Nunca escuché sobre él, y su nombre es demasiado corto (y una abreviatura muy común) para ser buscado eficientemente.
vsz
3
Desde la página de manual: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.hasta donde sé, está incluido en la mayoría de las distribuciones de Linux / Unix.
daniero
Algunos ejemplos más si está interesado: 1 , 2 y 3 . Visto que algunos otros lo usan aquí también.
daniero
99
@vsz dc está, por supuesto, completando, como debería ser cualquier calculadora mejor como ghc.
FUZxxl
44
Todos los sonidos pueden ser deshabilitados. Solo baja el volumen.
daviewales
49

golpe (13)

sudo rm -rf /

Cuanto más rápido sea el disco duro, mejor será el sonido. No trabaje con SSD.
(No intentes esto en casa, sudo rm -rf /borra todo en tu disco duro)

Daniel
fuente
77
Creo que uno debería venir con un descargo de responsabilidad: "No intentes esto en casa": D
daniero
22
Sí, eso es el sonido cuando el ordenador r EADS tu m ail R eally f ast (rm-rf).
FUZxxl
70
Espera, te equivocaste. La tarea es hacer que el ordenador producen un sonido, no el usuario ... aunque tengo que admitir que era bastante impresionante grito ...
dejó de turno counterclockwis
44
No hace nada sin --no-preserve-root, excepto tal vez en sistemas antiguos.
nyuszika7h
1
@ nyuszika7h antigua como antes de 2005.
Jwosty
44

* sh (5)

eject

(no funciona si no tiene un CD / DVD o unidad similar ..)

mykhal
fuente
Me gusta este. Pero, en mi Mac (Mac OS X), el comando no se encuentra:sh: eject: command not found
Nicolas Barbulesco
3
Nicolas: correcto, en Mac, el "comando" de expulsión parece ser mucho más corto: (:
mykhal
@ mykhal: si sigue este camino, tengo una solución que funciona en todos los Mac modernos: 🔊
Nicolas Barbulesco
1
Esto falla con OpenBSD. usage: eject [-t] device¡El argumento del dispositivo no es opcional! El más corto que funciona aquí es eject cd0para 9 caracteres. Además, si la unidad no tiene bandeja (como con una unidad de carga por ranura), eject cd0no hace ruido a menos que haya un disco en la unidad.
kernigh
1
Kernigh: tienes razón. Por otro lado, podría tener éxito en muchos sistemas sin una tarjeta de sonido o un altavoz, donde la mayoría de las otras soluciones fallarían
mykhal
37

Befunge, 0

Si leo la especificación correctamente, este es un bucle sin fin.
Bucle sin fin = oirás girar el enfriador de tu CPU.

Johannes Kuhn
fuente
27

sh 7

w|aplay

Reproduce un ruido corto.

También 7:

aplay *

Montaje

Otra solución sin campana. El binario resultante es de solo 15 bytes.

mov al, 182
out 43h, al
out 42h, al
mov al, 16
out 42h, al
mov al, 3
out 61h, al
ret

Montar con nasm sound.asm -o sound.com. Se puede probar con dosbox sound.com.

dupdo
fuente
99
+1 por no solo confiar en un terminal para traducir los caracteres BEL a pitidos.
Ilmari Karonen
25

brainfuck: 8

+++++++.

Imprime el personaje de la campana.

caja de cartón
fuente
16
+1 Solución BF comprensible Y más corta que C.
OldCurmudgeon
15
Un ataque mental es más fácil de digerir mentalmente que C ... deberíamos aprender de este incidente.
Camilo Martin
23

bash (Mac OS X) 5

say a

aunque estilísticamente prefiero el algo más largo:

say 'Hello, Code Golf !'
Paul R
fuente
1
Si su Mac está configurada en inglés, también podría hacerlo say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
tomsmeding
21
Oooh ... Tengo acceso ssh a una caja de OSX ...
boothby
1
Este comando funciona en AppleScript. No sabía que también funciona en la Terminal. Divertido con ssh!
Nicolas Barbulesco
1
Corolario en Linux: espeak...
daviewales
19

Jaja, buen viejo código QBASIC.

BEEP
Soham Chowdhury
fuente
1
¡Ah, la diversión que se puede tener con el comando PLAY! Para recordar, vea, por ejemplo, este video .
Jussi M
1
Tengo 15 años, xD. Aprendimos QBASIC en la escuela.
Soham Chowdhury
16

Python 3.3.3, un personaje

<bell character>

El mensaje de error contendrá un carácter de campana, causando el sonido.

Python 3.3.3, 10 caracteres

Si no se permiten errores, esta solución no mostrará el mensaje de error, solo el sonido.

print('<bell character>')

fuente
Por qué el voto negativo, este código en realidad produce un sonido.
1
1 char O_o nice +1
Timtech
13

Golfscript 3

'.'

(donde .de hecho es un personaje BELL)

La representación HEX del código anterior es:

27 07 27
Cristian Lupascu
fuente
2
¡Ay, Golfscript ataca de nuevo!
vsz
12

Java - 222

Basta de este carácter de campana o de la función de pitido predefinida, esto hace un sonido real :)

import javax.sound.sampled.*;class S{static{try{SourceDataLine
l=AudioSystem.getSourceDataLine(new
AudioFormat(4000,8,1,0<1,0>1));l.open();l.start();for(byte
i=9;i!=0;i+=9)l.write(new byte[]{i},0,1);}catch(Exception e){}}}
aditsu
fuente
18
Java realmente apesta para el golf
stand de
1
@boothby no siempre, verifique esta fuera
aditsu
20
De acuerdo, Java apesta al golf, excepto cuando el desafío es lanzar errores. ;)
stand
@boothby ¿Qué hay de esto? codegolf.stackexchange.com/a/28818/24965
stommestack
2
@JopVernooij Eso no es golf, es un concurso de popularidad poco explícito.
Jwosty
10

Mensaje de DOS / Script de DOS

a:

Requiere unidad de disquete de 3.5 ":)

svidgen
fuente
¿Qué magia es esta?
seequ
1
Hace que DOS intente leer desde el disquete, lo que causa un sonido. Sin embargo, es incorrecto que esto necesite una unidad de disquete de 3.5 "; una unidad de disquete de 5.25" funciona aún mejor.
celtschk
Sí. ¿No sería normalmente el 5,25 " b:?
svidgen
1
Pruebe una unidad de CD con un disco defectuoso dentro, funciona muy bien también :)
Alejandro
La letra de la unidad en DOS dependía de los conectores del cable al que estaba conectada la unidad (y en las máquinas más nuevas, una configuración de BIOS). Mi primera computadora solo tenía una unidad de 5.25 "y tuve que conectarla como maestra (convirtiéndola en la unidad A), ya que no podía arrancar desde el esclavo.
Dennis
9

J (2)

a.

Esto imprime todos los caracteres del 0 al 255, que incluye la campana.

Si tengo que hacerlo sin imprimir nada más, son 4 caracteres:

7{a.
marinus
fuente
9

Pascal: 30 caracteres

uses Crt;begin
Sound(999)
end.

Esto aprovecha la falta de cualquier regla con respecto a la duración del sonido. Entonces solo enciende el altavoz a 999 Hz y lo deja así. (Al menos hasta que otro programa llame Nosoundo la computadora se apague).

hombre trabajando
fuente
¿Y el sonido sigue gritando incluso después de que el programa se ha cerrado? Me gusta este ! :-)
Nicolas Barbulesco
@NicolasBarbulesco, exactamente. Ese era el comportamiento normal de todos los programas en DOS, incluidos los escritos en C o ensamblado.
manatwork
-2: Cambio a 9 Hz: Sound(9).
Erik the Outgolfer
@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, sería difícil demostrar que el sonido se genera realmente. Rango de frecuencia de la audición humana
manatwork
@manatwork Bueno, agregue un código idéntico con otra frecuencia que pueda escucharse. Debido a que los códigos son idénticos, se puede probar. (el número solo cambia)
Erik the Outgolfer
8

Mathematica 6

Esto evocará el pitido del sistema. En mi computadora, actualmente es un chirrido.

Beep[]
DavidC
fuente
8

Bash, 22

En los años 90, mi hermano me enseñó este: para ser utilizado en un laboratorio de computación donde uno tiene acceso remoto y conoce a una persona para estar solo en dicho laboratorio. Los niños en estos días no sabrán qué es un laboratorio de computación ... pero bueno.

cd /dev;cat sda1>audio
boothby
fuente
1
Consigo bash: audio: Permission deniedincluso corriendo bajo sudo. :(
Riking
2
Esto funcionó en Debian a partir de 2006. No puedo hacer que funcione en mi caja de Ubuntu: * (
stand
1
Creo que te refieres a dsp, no a audio. Vea a continuación un ejemplo similar que escribí usando / dev / random
3
ocat /dev/sda | aplay
TheDoctor
1
@TheDoctor o aplay</dev/sda(UUOC ;-))
Digital Trauma
7

gato / tipo / PHP 1

Esto es en realidad políglota. Se ejecuta en cat(o llamado Microsoft Cat type) y PHP.

$ xxd file
0000000: 07                                       .

Ejecución:

$ xxd -r > file
0000000: 07                                       .
^D
$ cat file # cat could be replaced with type (on Windows) or with php
Konrad Borowski
fuente
¿Qué es el programa? ¿Cómo ejecutarlo? Esto no está claro.
Nicolas Barbulesco
@NicolasBarbulesco: El programa es de un byte ( \x07), sin embargo, debido a que es binario, no puedo pegarlo aquí. Puede ejecutarlo en PHP CLI, con php.
Konrad Borowski
No está claro. Pero funciona ! Con cat. El truco es el ASCII char 7 "campana".
Nicolas Barbulesco
Eso no es un intento serio.
user48538
6

brainfuck, 5 bytes

+[.+]

imprime todos los caracteres, incluida la campana

benwaffle
fuente
5

R 9

El personaje de campana

cat("\a")
Razón
fuente
5

Rubí, 7

$><<?\a

Probado en Windows con Ruby 1.9.3.

Roy Tinker
fuente
5

DOS, 5

Indirecta, requiere la cooperación del usuario.

pause
boothby
fuente
66
Ejecuta el programa. Cooperar. Escucha.
stand
2
Tienes que presionar una tecla ... que hace un sonido. @mana Dijo que era indirecta: pauseno emitiste el sonido, TÚ sí.
Riking
2
@Riking, ¿cómo se ajusta eso a la parte del requisito "Su programa tiene que hacer que la computadora produzca un sonido"?
manatwork
55
No entiendo a los programadores en sitios de rompecabezas que no pueden pensar fuera de la caja.
stand
44
No estaba criticando tu respuesta. Estaba criticando la pregunta. Una pregunta sin sentido obviamente obtendrá respuestas sin sentido. Tu respuesta tiene tanto sentido como cualquier otra respuesta a esa estúpida pregunta. Entonces, te doy +1.
4

Python 9 caracteres


produce un pitido cuando se ejecuta.

print'\a'
Anbarasan
fuente
1
Puede acortar esto a 8 caracteres si lo reemplaza \acon el carácter de campana real (código ASCII 7).
flornquake
Pero, ¿cómo imprimir con la ayuda del valor 7?
Anbarasan
1
Puede escribir el carácter de campana en su editor con Alt+07. Alternativamente, puede ejecutar este fragmento para crear un archivo de Python con la solución de 8 caracteres:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake
Ya lo pillo. Gracias !
Anbarasan
4

Applescript (4 caracteres)

beep

Esto reproducirá el pitido predeterminado de OS X.

Mathias
fuente
4

Mathematica 7

Uso de la capacidad incorporada de texto a voz de Mathematica.

Speak@x

Hará que diga "x"

Cuenta
fuente
4

top y aplay - 9

top tiene ritmo!

top|aplay

La visualización periódica a veces no alimenta el sumidero de sonido lo suficientemente rápido, pero aplaycontinúa después de agrupar un poco ... :-)

... esto se ejecutará en muchos Linux ...

Prima:

Mientras ejecuta esto, escriba "s 1 ENTER" para obtener más latidos por segundo. :-)

Fiesta en !!! \ o /


fuente
Esto es puro genio ...: D
Mega Man
3

> <> 3

Como en todas las respuestas, imprime la campana (0x07) en stdout.

7o;
tomsmeding
fuente
3

Tcl, 1 char

-

reemplazar -con la campana char.
Imprimirá la campana como parte del mensaje de error. Dos veces.

Y si cree que este no es un programa válido, agréguelo antes de la campana:

proc \007 {} {};

Es un programa válido, simplemente no definí el comando, porque me gusta el mensaje de error.

Johannes Kuhn
fuente
¿Está basado en alguna característica de Tcl 8.6? En Tcl 8.5 obtuve un resultado diferente: pastebin.com/bh73UF6F ¿ O estás en Windows?
manatwork
No. La segunda parte debería mostrar que este es un archivo Tcl válido. Y debe emitir un pitido 2x (el mensaje de error contiene el comando que se ejecutará dos veces). Llamar a un comando que no existe no es un error para Tcl, es solo uno si no puede encontrarlo. (por ejemplo parray, que se carga en el primer uso)
Johannes Kuhn
Ups Te malentendí. Pensé que querías decir, también debería sonar con la procdeclaración. (En cuanto al recuento pitido, probablemente mi terminal está haciendo algo como puts [string repeat ".\a" 10]pantallas de 10 puntos, pero sólo una vez pitidos.)
manatwork
3

C: 19

main(){puts("\a");}

editar: el archivo de encabezado no es necesario para "pone"

Trevor Hickey
fuente
2
Puede eliminar el espacio entre #includey <:)
tomsmeding
put (char *); main () {puts ("\ a");} es más pequeño en mi humilde opinión.
FUZxxl
Solo puedes eliminar el #include.
ugoren
1
@FUZxxl ¿Cómo puede tener una opinión sobre el tamaño del código?
Pomo de la puerta
@DoorknobofSnow ¿Por la primera enmienda?
FUZxxl
2

Rubí 8

 puts"\a"

Probado en Windows con Ruby 1.9.3.

Cristian Lupascu
fuente