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.

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,

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)


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


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.


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.


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.


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

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


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

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

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){}}}

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


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 ":)


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

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


¿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[]

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

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

¿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




5

DOS, 5

Indirecta, requiere la cooperación del usuario.

pause

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'

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.


4

Mathematica 7

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

Speak@x

Hará que diga "x"


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 /


Esto es puro genio ...: D
Mega Man


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.


¿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"


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.