Tocar um som, qualquer som [fechado]


43

Seu programa precisa fazer o computador produzir um som, qualquer som.

O código mais curto vence, não antes de 10 dias após a primeira resposta válida. Se houver empate, o que foi enviado mais cedo, vence.

  • O programa deve ser executado em um computador pessoal razoável e não muito incomum.
  • Abrir um pop-up, uma caixa de mensagem etc. (por exemplo, em uma página da web) não conta, pois eles podem ou não produzir um som, dependendo de muitas configurações.
  • Apenas digitar um comando errado ou caractere inválido no console e receber um sinal sonoro de aviso não conta, assim como o compilador / intérprete / SO que apita um erro ou travamento também não conta. Seu código deve ser um programa válido.

1
^ A campainha do sistema ou bip do sistema operacional também pode ser suprimida em muitos sistemas (por exemplo, passou a ser uma "campainha" visível) e deve ser tratada como sons de popus e assim por diante: Não é uma solução válida.
yeti

Todo programa que imprime "\ a" em um terminal falha se o xterm usa uma campainha visível.
kernigh

19
rm /causará muitos gritos.
cjfaure

Meu ventilador esquerdo está morrendo ruidosamente por um tempo. Seria uma resposta válida de 0 bits?
Édouard

1
Penso que esta questão deve ser reaberta. As respostas da piada que dependem da rotação do ventilador ou da abertura da bandeja de CD são inválidas, pois a pergunta diz "reproduzir um som". Parece-me bastante claro que a saída precisa vir dos alto-falantes como resultado do programa, não do SO, do usuário ou do hardware.
Mbomb007

Respostas:


21

dc, 2 caracteres

este também imprime o caractere sino:

7P

Execute com $ dc <<< 7Pou salve 7Pno arquivo e execute $ dc file.

Além disso:

Befunge, 2 caracteres

Semelhante, mas com loop infinito e bipes:

7,

1
Poderia, por favor, elaborar que idioma é esse? Eu nunca ouvi falar sobre isso, e seu nome é muito curto (e uma abreviação muito comum) para ser pesquisado com eficiência.
vsz

3
Na página de manual: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- está incluído na maioria das distribuições linux / unix, até onde eu sei.
Daniero

Mais alguns exemplos, se você estiver interessado: 1 , 2 e 3 . Visto alguns outros usá-lo aqui também.
Daniero

9
O @vsz dc está, é claro, completo, como qualquer outra calculadora melhor, como o ghc.
FUZxxl

4
Todos os sons podem ser desativados. Apenas abaixe o volume.
daviewales

49

bash (13)

sudo rm -rf /

Quanto mais rápido o disco rígido, melhor o som. Não trabalhe com SSDs.
(Não tente fazer isso em casa, sudo rm -rf /apaga tudo no disco rígido)


7
Eu acho que se deve vir com um aviso - "Não tente isso em casa": D
daniero

22
Sim, isso é o som quando o computador r EADS seu m ail r eally f ast (rm-rf).
FUZxxl 03/12/12

70
Espere, você entendeu errado. A tarefa é fazer o computador produzir um som, não o usuário ... embora eu tenha que admitir que o grito foi bastante impressionante ...
deixou de girar no sentido contrário

4
Não faz nada sem --no-preserve-root, exceto talvez em sistemas antigos.
precisa saber é o seguinte

1
@ nyuszika7h antiga como antes de 2005.
Jwosty

44

* sh (5)

eject

(não funciona se você não tiver CD / DVD ou unidade similar ..)


Eu gosto deste. Mas, no meu Mac (Mac OS X), o comando não foi encontrado:sh: eject: command not found
Nicolas Barbulesco

3
Nicolas: direito, no Mac, o "comando" eject parece ser muito mais curto: (:
mykhal

@ Mykhal - Se você percorrer esse caminho, eu tenho uma solução que funciona em todos os Macs modernos: 🔊
Nicolas Barbulesco

1
Isso falha com o OpenBSD. usage: eject [-t] deviceO argumento do dispositivo não é opcional! O menor que funciona aqui é eject cd0de 9 caracteres. Além disso, se a unidade não tiver bandeja (como eject cd0ocorre com uma unidade de carregamento de slots), ela não fará barulho, a menos que haja um disco na unidade.
kernigh

1
kernigh: você está certo. por outro lado, pode ter sucesso em muitos sistemas sem uma placa de som ou alto-falante, onde a maioria das outras soluções falharia
mykhal

37

Befunge, 0

Se eu ler as especificações corretamente, esse é um loop sem fim.
Loop infinito = você ouvirá seu cooler da CPU girar.


27

sh 7

w|aplay

Toca um barulho curto.

Também 7:

aplay *

Montagem

Outra solução sem campainha. O binário resultante é de apenas 15 bytes.

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

Monte com nasm sound.asm -o sound.com. Pode ser experimentado com dosbox sound.com.


9
+1 por não depender apenas de um terminal para converter caracteres BEL em sinais sonoros.
Ilmari Karonen

25

brainfuck: 8

+++++++.

Imprime o caractere da campainha.


16
+1 BF Solution compreensível e mais curto do que C.
OldCurmudgeon

15
Um cérebro é mais fácil de digerir mentalmente do que C ... devemos aprender com esse incidente.
Camilo Martin

23

bash (Mac OS X) 5

say a

embora estilisticamente eu prefira um pouco mais:

say 'Hello, Code Golf !'

1
Se o seu Mac estiver definido como inglês, você também poderá say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
tomsmeding

21
Oooh ... Eu tenho acesso ssh para uma caixa de OSX ...
Boothby

1
Este comando funciona em AppleScript. Eu também não sabia que funciona no terminal. Engraçado com ssh!
Nicolas Barbulesco

1
Corolário no Linux: espeak...
daviewales


16

Python 3.3.3, um caractere

<bell character>

A mensagem de erro conterá um caractere de campainha, causando o som.

Python 3.3.3, 10 caracteres

Se erros não forem permitidos, esta solução não emitirá a mensagem de erro, apenas o som.

print('<bell character>')

Por que o voto negativo, esse código realmente produz um som.

1
1 char O_o nice +1
Timtech

13

Golfscript 3

'.'

(onde .na verdade é um personagem BELL)

A representação HEX do código acima é:

27 07 27

2
Ouch, Golfscript ataca novamente!
vsz 17/11/12

12

Java - 222

Chega desse caractere de campainha ou de funções predefinidas da função de bipe, isso produz um som 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 é uma porcaria para o golfe
Boothby

1
@boothby nem sempre, verifique este para fora
aditsu

20
Ok, Java é péssimo para o golfe, exceto quando o desafio é lançar erros. ;)
boothby


2
@JopVernooij Isso não é golfe, é um concurso de popularidade secreto.
Jwosty

11

Prompt do DOS / Script do DOS

a:

Requer unidade de disquete de 3,5 ":)


Que mágica é essa?
seequ

1
Isso faz com que o DOS tente ler o disquete, o que causa um som. No entanto, é errado que isso precise de uma unidade de disquete de 3,5 "; uma unidade de disquete de 5,25" funciona ainda melhor.
Celtschk

Sim. Os 5,25 "normalmente não seriam b:?
Svidgen 15/06

1
Tente uma unidade de CD com um interior rígido com defeito, funciona muito bem também :)
Alejandro

A letra da unidade no DOS dependia de quais conectores do cabo a unidade estava conectada (e em máquinas mais recentes, uma configuração do BIOS). Meu primeiro computador só tinha uma unidade de 5,25" e eu tinha que anexá-lo como mestre (tornando-o uma unidade), uma vez que não podia arrancar a partir do escravo.
Dennis

9

J (2)

a.

Isso imprime todos os caracteres de 0 a 255, incluindo a campainha.

Se eu tiver que fazer isso sem imprimir mais nada, são 4 caracteres:

7{a.

9

Pascal: 30 caracteres

uses Crt;begin
Sound(999)
end.

Isso tira proveito da falta de qualquer regra em relação à duração do som. Então, apenas liga o alto-falante em 999 Hz e deixa assim. (Pelo menos até que outro programa chame Nosoundou o computador seja desligado.)


E o som continua gritando mesmo depois que o programa foi encerrado? Eu gosto deste ! :-)
Nicolas Barbulesco 22/06

@NicolasBarbulesco, exatamente. Esse era o comportamento normal de todos os programas no DOS, incluindo os escritos em C ou assembly.
manatwork

-2: Alterar a 9 Hz: Sound(9).
Erik the Outgolfer

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, seria difícil provar que o som é realmente gerado. Faixa de frequência de audição humana
manatwork

@manatwork Bem, adicione um código idêntico com outra frequência que possa ser ouvida. Como os códigos são idênticos, isso pode ser provado. (o número só muda)
Erik a Outgolfer

8

Mathematica 6

Isso evocará o bipe do sistema. No meu computador, atualmente é um chilro.

Beep[]

8

Bash, 22

Nos anos 90, meu irmão me ensinou este - para ser usado em um laboratório de informática, onde se tem acesso remoto e sabe que uma pessoa está sozinha nesse laboratório. Hoje em dia, as crianças não sabem o que é um laboratório de informática ... mas tudo bem.

cd /dev;cat sda1>audio

1
Eu fico bash: audio: Permission deniedrodando sob o sudo. :(
Riking

2
Isso funcionou no Debian a partir de 2006. Eu não posso fazê-lo funcionar na minha caixa de Ubuntu: * (
Boothby

1
Eu acho que você quer dizer dsp, não áudio. Veja abaixo um exemplo semelhante que escrevi usando / dev / random

3
oucat /dev/sda | aplay
TheDoctor 4/14

1
@TheDoctor ou aplay</dev/sda(UUOC ;-))
Digital Trauma

7

cat / tipo / PHP 1

Na verdade, isso é poliglota. É executado cat(ou chamado Microsoft Cat type) e PHP.

$ xxd file
0000000: 07                                       .

Execução:

$ xxd -r > file
0000000: 07                                       .
^D
$ cat file # cat could be replaced with type (on Windows) or with php

Qual é o programa? Como executá-lo? Isto não está claro.
Nicolas Barbulesco

@NicolasBarbulesco: O programa é de um byte ( \x07), no entanto, por ser binário, não consigo colar aqui. Você pode executá-lo no PHP CLI, com php.
Konrad Borowski

Isso nao esta claro. Mas funciona! Com cat. O truque é o ASCII char 7 "sino".
Nicolas Barbulesco

Essa não é uma tentativa séria.
precisa saber é o seguinte

7

brainfuck, 5 bytes

+[.+]

imprime todos os caracteres, incluindo sino




5

DOS, 5

Indireto, requer cooperação do usuário.

pause

6
Execute o programa. Colaborar. Ouço.
Boothby

2
Você tem que pressionar uma tecla ... o que faz um som. @mana Ele disse que era indireto - pausenão fez o som, VOCÊ fez.
Riking

2
@ Vikings, como isso está em conformidade com a parte “O seu programa precisa fazer o computador produzir um som”?
Manatwork

5
Não entendo programadores em sites de quebra-cabeças que não conseguem pensar fora da caixa.
Boothby

4
Eu não estava criticando sua resposta. Eu estava criticando a pergunta. Uma pergunta inútil obviamente terá respostas inúteis. Sua resposta faz tanto sentido quanto qualquer outra resposta para essa pergunta estúpida. Então, eu estou te dando +1.


4

Caracteres do Python 9


produz um sinal sonoro quando executado.

print'\a'

1
Você pode reduzi-lo para 8 caracteres se substituir \apelo caractere de campainha real (código ASCII 7).
Flornquake #

Mas como imprimir com a ajuda do valor 7?
Anbarasan #

1
Você pode digitar o caractere de campainha no seu editor com Alt+07. Alternativamente, você pode executar esse trecho para criar um arquivo de python com a solução de 8 caracteres:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake

Tenho agora. Obrigado !
Anbarasan

4

Applescript (4 caracteres)

beep

Isso tocará o som padrão do OS X.


4

Mathematica 7

Usando o recurso incorporado de texto para fala do Mathematica.

Speak@x

Vai dizer "x"


4

top e jogo - 9

top tem ritmo!

top|aplay

Às vezes, a exibição periódica não alimenta o coletor de som rápido o suficiente, mas aplaycontinua depois de se agachar um pouco ... :-)

... isso funcionará em muitos Linuxs ...

Bônus:

Enquanto estiver executando isso, digite "s 1 ENTER" para obter mais tempos por segundo. :-)

Party on !!! \ o /


Isso é pura genialidade ...: D
Mega Man


3

Tcl, 1 caracter

-

substitua -pela campainha.
Ele imprimirá o sino como parte da mensagem de erro. Duas vezes.

E se você acha que este não é um programa válido, adicione-o antes do bell char:

proc \007 {} {};

É um programa válido, apenas não defini o comando, porque gosto da mensagem de erro.


Isso é baseado em algum recurso do Tcl 8.6? No Tcl 8.5, obtive um resultado diferente: pastebin.com/bh73UF6F Ou você está no Windows?
Manatwork

Não. A segunda parte deve mostrar que este é um arquivo Tcl válido. E deve emitir um bipe 2x (a mensagem de erro contém o comando a ser executado duas vezes). Chamar um comando que não existe não é um erro para Tcl, é apenas um se não puder encontrá-lo. (por exemplo parray, carregado no primeiro uso)
Johannes Kuhn

Opa Eu te entendi mal. Eu pensei que você quis dizer, ele deveria apitar com a procdeclaração também. (Em relação à contagem de beep, provavelmente o meu terminal está fazendo algo tão puts [string repeat ".\a" 10]exibe 10 pontos, mas emite um sinal sonoro apenas uma vez.)
manatwork

3

C: 19

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

edit: arquivo de cabeçalho não é necessário para "puts"


2
Você pode remover o espaço entre #includee <:)
tomsmeding

puts (char *); main () {puts ("\ a");} é menor IMHO.
FUZxxl

Você pode apenas remover o #include.
Ugoren

1
@FUZxxl Como você pode ter uma opinião sobre o tamanho do código?
Maçaneta

@DoorknobofSnow Por causa da primeira alteração?
FUZxxl

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.