Riproduci un suono, qualsiasi suono [chiuso]


43

Il tuo programma deve fare in modo che il computer produca un suono, qualsiasi suono.

Il codice più corto vince, non prima di 10 giorni dopo la prima risposta valida. Se c'è un pareggio, quello presentato prima vince.

  • Il programma dovrebbe essere eseguito su un personal computer ragionevole, non troppo raro.
  • L'apertura di un popup, una finestra di messaggio, ecc. (Ad esempio, su una pagina Web) non conta, poiché potrebbero o non produrre un suono, a seconda di molte impostazioni.
  • L'immissione di un comando errato o di un carattere non valido su una console e la ricezione di un segnale acustico di avviso non conta, così come non conta neanche il segnale acustico del compilatore / interprete / SO su un errore o un arresto anomalo. Il tuo codice deve essere un programma valido.

1
^ La campana di sistema o il segnale acustico del sistema operativo possono essere soppressi anche su molti sistemi (ad esempio commutati per essere una "campana" visibile) e dovrebbero essere gestiti come suoni di popus e così via: non una soluzione valida.

Ogni programma che stampa "\ a" su un terminale ha esito negativo se xterm utilizza una campana visibile.
kernigh,

19
rm /causerà molte urla.
cjfaure,

Il mio fan di sinistra sta morendo rumorosamente da un po '. Sarebbe una risposta valida a 0 bit?
Édouard,

1
Penso che questa domanda dovrebbe essere riaperta. Le risposte alla battuta che si basano sulla rotazione della ventola o sull'apertura del vassoio del CD non sono valide, poiché la domanda dice "riproduci un suono". Mi sembra abbastanza chiaro che l'output debba provenire dagli altoparlanti a causa del programma, non del sistema operativo o dell'utente o dell'hardware.
mbomb007,

Risposte:


20

dc, 2 caratteri

anche questo stampa il carattere della campana:

7P

Esegui con $ dc <<< 7Po salva 7Psu file ed esegui $ dc file.

Anche:

Befunge, 2 caratteri

Simile ma infinitamente loop e bip:

7,

1
Potresti per favore elaborare quale lingua è? Non ne ho mai sentito parlare e il suo nome è troppo breve (e un'abbreviazione molto comune) per essere cercato in modo efficiente.
vsz

3
Dalla pagina man: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- è incluso nella maggior parte delle distro linux / unix per quanto ne so.
daniero,

Qualche altro esempio se sei interessato: 1 , 2 e 3 . Visto alcuni altri lo usano anche qui.
daniero,

9
@vsz dc è - ovviamente - il turing completo, come dovrebbe essere una calcolatrice migliore come ghc.
FUZxxl,

4
Tutti i suoni possono essere disabilitati. Basta abbassare il volume.
daviewales,

49

bash (13)

sudo rm -rf /

Più veloce è il disco rigido, migliore è il suono. Non lavorare con SSD.
(Non provarlo a casa, sudo rm -rf /cancella tutto sul tuo disco rigido)


7
Penso che uno dovrebbe venire con un disclaimer - "Non provarlo a casa": D
daniero

22
Sì, questo è il suono quando il computer r EADS tuo m ail r eally f ast (rm-rf).
FUZxxl,

70
Aspetta, hai sbagliato. Il compito è far sì che il computer produca un suono, non l'utente ... anche se devo ammettere che l'urlo è stato abbastanza impressionante ...
cessò di girare in senso antiorario il

4
Non fa nulla senza --no-preserve-root, tranne forse sui sistemi antichi.
nyuszika7h

1
@ nyuszika7h antica come prima del 2005.
Jwosty,

44

* sh (5)

eject

(non funziona se non si dispone di CD / DVD o unità simili.)


Mi piace questo. Ma, sul mio Mac (Mac OS X), il comando non viene trovato:sh: eject: command not found
Nicolas Barbulesco

3
Nicolas: giusto, su Mac, l'espulsione del "comando" sembra essere molto più breve: (:
mykhal

@ mykhal - Se vai in questo modo, ho una soluzione che funziona su tutti i Mac moderni: 🔊
Nicolas Barbulesco,

1
Questo non riesce con OpenBSD. usage: eject [-t] deviceL'argomento del dispositivo non è facoltativo! Il più breve che funziona qui è eject cd0per 9 caratteri. Inoltre, se l'unità non ha un vassoio (come con un'unità di caricamento slot), allora eject cd0non fa rumore a meno che non sia presente un disco nell'unità.
kernigh,

1
kernigh: hai ragione. d'altra parte, potrebbe avere successo su molti sistemi senza una scheda audio o un altoparlante, dove la maggior parte delle altre soluzioni fallirebbe
mykhal

37

Befunge, 0

Se leggo correttamente le specifiche, questo è un ciclo infinito.
Endless loop = sentirai girare il dispositivo di raffreddamento della CPU.


27

sh 7

w|aplay

Riproduce un breve rumore.

Anche 7:

aplay *

montaggio

Un'altra soluzione senza campana. Il binario risultante è di soli 15 byte.

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

Assemblare con nasm sound.asm -o sound.com. Può essere provato con dosbox sound.com.


9
+1 per non aver semplicemente fatto affidamento su un terminale per tradurre i caratteri BEL in bip.
Ilmari Karonen,


23

bash (Mac OS X) 5

say a

anche se stilisticamente preferisco un po 'più a lungo:

say 'Hello, Code Golf !'

1
Se il tuo Mac è impostato in inglese, puoi farlo anche tu say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
tomsmeding,

21
Oooh ... Ho accesso ssh a un box osx ...
stand

1
Questo comando funziona in AppleScript. Non sapevo che funzionasse anche nel Terminal. Divertente con ssh!
Nicolas Barbulesco,

1
Corollario su Linux: espeak...
daviewales,


16

Python 3.3.3, un personaggio

<bell character>

Il messaggio di errore conterrà un carattere campana, causando il suono.

Python 3.3.3, 10 caratteri

Se gli errori non sono consentiti, questa soluzione non genererà il messaggio di errore, ma solo il suono.

print('<bell character>')

Perché il downvote, questo codice produce effettivamente un suono.

1
1 carattere O_o bello +1
Timtech

13

Golfscript 3

'.'

(dove .in realtà è un personaggio BELL)

La rappresentazione esadecimale del codice sopra è:

27 07 27

2
Ouch, Golfscript colpisce ancora!
vsz

12

Java - 222

Basta con questo carattere di campana o roba di funzione bip predefinita, questo fa un vero suono :)

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 fa davvero schifo per il golf
stand

1
@boothby non sempre, controlla questo fuori
aditsu

20
Va bene, Java fa schifo per il golf, tranne quando la sfida è lanciare errori. ;)
stand

@boothby Che ne dici di questo? codegolf.stackexchange.com/a/28818/24965
stommestack

2
@JopVernooij Questo non è golf, è un concorso di popolarità subdolo.
Jwosty,

10

Prompt DOS / Script DOS

a:

Richiede unità floppy da 3,5 ":)


Che magia è questa?
Seequ,

1
Fa sì che DOS tenti di leggere dal floppy, il che causa un suono. Tuttavia, è sbagliato che questo abbia bisogno di un'unità floppy da 3,5 "; un'unità floppy da 5,25" funziona ancora meglio.
Celtschk,

Sì. Il 5.25 "non sarebbe normalmente b:?
svidgen

1
Prova un'unità CD con un disco difettoso all'interno, funziona benissimo anche :)
Alejandro,

La lettera dell'unità in DOS dipendeva da quali connettori del cavo era collegata all'unità (e su macchine più recenti, un'impostazione BIOS). Il mio primo computer aveva solo una unità da 5,25" e ho dovuto attaccarlo come master (che lo rende il drive A), dal momento che non è riuscito ad avviarsi dallo slave.
Dennis

9

J (2)

a.

Stampa tutti i caratteri da 0 a 255, incluso il campanello.

Se devo farlo senza stampare nient'altro, sono 4 caratteri:

7{a.

9

Pascal: 30 caratteri

uses Crt;begin
Sound(999)
end.

Questo sfrutta la mancanza di alcuna regola relativa alla durata del suono. Quindi basta accendere l'altoparlante a 999 Hz e lasciarlo così. (Almeno fino a quando un altro programma non chiama Nosoundo il computer è spento.)


E il suono continua a urlare anche dopo la chiusura del programma? Mi piace questo ! :-)
Nicolas Barbulesco il

@NicolasBarbulesco, esattamente. Quello era il normale comportamento di tutti i programmi su DOS, compresi quelli scritti in C o assembly.
arte

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

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, sarebbe difficile provare che il suono sia effettivamente generato. Gamma di frequenza dell'udito umano
arte

@manatwork Bene, aggiungi un codice identico con un'altra frequenza che può essere ascoltata. Poiché i codici sono identici, può essere provato. (il numero cambia solo)
Erik the Outgolfer

8

Mathematica 6

Ciò evocherà un segnale acustico di sistema. Sul mio computer, è attualmente un cinguettio.

Beep[]

8

Bash, 22

Negli anni '90, mio ​​fratello mi ha insegnato questo - per essere usato in un laboratorio informatico in cui si ha accesso remoto e si conosce una persona che è sola in quel laboratorio. I bambini di questi tempi non sapranno cosa sia un laboratorio informatico ... ma vabbè.

cd /dev;cat sda1>audio

1
Vado bash: audio: Permission deniedpersino a correre sotto sudo. :(
Riking

2
Questo ha funzionato su Debian dal 2006. Non riesco a farlo funzionare sul mio Ubuntu box: * (
stand del

1
Penso che intendi dsp, non audio. Vedi sotto per un esempio simile che ho scritto usando / dev / random

3
oppurecat /dev/sda | aplay
TheDoctor

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

7

cat / type / PHP 1

Questo è in realtà poliglotta. Funziona in cat(o chiamato Microsoft Cat type) e PHP.

$ xxd file
0000000: 07                                       .

Esecuzione:

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

Qual è il programma? Come eseguirlo? Questo non è chiaro
Nicolas Barbulesco,

@NicolasBarbulesco: il programma è un byte ( \x07), tuttavia poiché è binario, non posso incollarlo qui. Puoi eseguirlo nella CLI di PHP, con php.
Konrad Borowski l'

Non è chiaro. Ma funziona! Con cat. Il trucco è il carattere ASCII 7 "campana".
Nicolas Barbulesco,

Non è un tentativo serio.
user48538

6

Brainfuck, 5 byte

+[.+]

stampa tutti i caratteri incluso campana


5

R 9

Il personaggio della campana

cat("\a")


5

DOS, 5

Indiretto, richiede la cooperazione dell'utente.

pause

6
Esegui il programma. Cooperare. Ascolta.
stand

2
Devi premere un tasto ... che emette un suono. @mana Ha detto che era indiretto - pausenon hai emesso il suono, TU lo hai fatto.
Riking

2
@Riking, in che modo è conforme alla parte "Il tuo programma deve fare in modo che il computer produca un suono" parte del requisito?
arte

5
Non capisco i programmatori su siti puzzle che non riescono a pensare fuori dagli schemi.
stand,

4
Non stavo criticando la tua risposta. Stavo criticando la domanda. Una domanda inutile avrà ovviamente risposte inutili. La tua risposta ha quindi senso tanto quanto qualsiasi altra risposta a quella stupida domanda. Quindi ti do +1.


4

Python 9 caratteri


produce un segnale acustico quando eseguito.

print'\a'

1
Puoi accorciarlo a 8 caratteri se lo sostituisci \acon il carattere di campana effettivo (codice ASCII 7).
terremoto del

Ma come stampare con l'aiuto del valore 7?
Anbarasan,

1
Puoi digitare il carattere della campana nel tuo editor con Alt+07. In alternativa, puoi eseguire questo frammento per creare un file Python con la soluzione di 8 caratteri:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake,

Ho capito adesso. Grazie !
Anbarasan,

4

Applescript (4 caratteri)

beep

Questo riprodurrà il segnale acustico predefinito di OS X.


4

Mathematica 7

Utilizzo della funzionalità di sintesi vocale integrata di Mathematica.

Speak@x

Lo farà dire "x"


4

top & aplay - 9

top ha ritmo!

top|aplay

Il display periodico a volte non alimenta il dissipatore del suono abbastanza velocemente ma aplaycontinua dopo un po 'di brontolio ... :-)

... questo funzionerà su molti Linux ...

Bonus:

Durante l'esecuzione, digita "s 1 ENTER" per ottenere più battiti al secondo. :-)

Festa !!! \ O /


Questo è puro genio ...: D
Mega Man


3

Tcl, 1 carattere

-

sostituire -con il campanello.
Stampa il carattere della campana come parte del messaggio di errore. Due volte.

E se pensi che questo non sia un programma valido, aggiungi questo prima del carattere di campana:

proc \007 {} {};

È un programma valido, non ho appena definito il comando, perché mi piace il messaggio di errore.


È basato su alcune funzionalità di Tcl 8.6? In Tcl 8.5 ho ottenuto risultati diversi: pastebin.com/bh73UF6F O sei su Windows?
arte

No. La seconda parte dovrebbe mostrare che si tratta di un file Tcl valido. E dovrebbe emettere un segnale acustico 2x (il messaggio di errore contiene il comando da eseguire due volte). Chiamare un comando che non esiste non è un errore per Tcl, è solo uno se non lo trova. (ad esempio parray, che viene caricato al primo utilizzo)
Johannes Kuhn

Ops. Ti ho capito male. Pensavo volessi dire che dovrebbe emettere un segnale acustico anche con la procdichiarazione. (Per quanto riguarda il conteggio dei puts [string repeat ".\a" 10]segnali acustici, probabilmente il mio terminale sta facendo qualcosa in quanto visualizza 10 punti ma emette un segnale acustico solo una volta.)
Manatwork

3

C: 19

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

modifica: il file header non è necessario per "put"


2
Puoi rimuovere lo spazio tra #includee <:)
tomsmeding il

put (char *); main () {put ("\ a");} è un IMHO più piccolo.
FUZxxl,

Puoi semplicemente rimuovere il file #include.
ugoren,

1
@FUZxxl Come puoi avere un'opinione sulla dimensione del codice?
Maniglia della porta

@DoorknobofSnow A causa del primo emendamento?
FUZxxl,

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.