Einen Sound abspielen, jeden Sound [geschlossen]

43

Ihr Programm muss den Computer dazu bringen, einen Ton zu erzeugen, jeden Ton.

Der kürzeste Code gewinnt, frühestens 10 Tage nach der ersten gültigen Antwort. Bei Gleichstand gewinnt derjenige, der früher eingereicht wurde.

  • Das Programm sollte auf einem vernünftigen, nicht allzu ungewöhnlichen PC laufen.
  • Das Öffnen eines Popups, einer Nachrichtenbox usw. (z. B. auf einer Webseite) zählt nicht, da je nach den meisten Einstellungen möglicherweise ein Ton ausgegeben wird oder nicht.
  • Die Eingabe eines falschen Befehls oder eines ungültigen Zeichens auf einer Konsole und der Empfang eines Warntons zählen nicht, ebenso wenig wie der Compiler / Interpreter / Betriebssystem, der bei einem Fehler oder Absturz piept. Ihr Code muss ein gültiges Programm sein.
vsz
quelle
1
^ G aka Systemklingel- oder OS-Signalton kann auch auf vielen Systemen unterdrückt werden (z. B. als sichtbare "Klingel" geschaltet) und sollte wie Popus-Sounds behandelt werden.
Yeti
Jedes Programm, das "\ a" auf einem Terminal ausgibt, schlägt fehl, wenn xterm eine sichtbare Glocke verwendet.
Kernigh
19
rm /wird viel schreien verursachen.
cjfaure
Mein linker Fan ist eine Weile laut gestorben. Wäre das eine gültige 0-Bit-Antwort?
Édouard
1
Ich denke, diese Frage sollte wieder geöffnet werden. Die Scherzantworten, die sich auf das Drehen des Lüfters oder das Öffnen des CD-Fachs beziehen, sind ungültig, da die Frage "Sound abspielen" lautet. Mir scheint ziemlich klar, dass die Ausgabe aufgrund des Programms von den Lautsprechern kommen muss, nicht vom Betriebssystem, vom Benutzer oder von der Hardware.
mbomb007

Antworten:

21

Gleichstrom, 2 Zeichen

dieses druckt auch die Glocke:

7P

Mit ausführen $ dc <<< 7Poder 7Pin Datei speichern und ausführen $ dc file.

Ebenfalls:

Befunge, 2 Zeichen

Ähnlich, aber endlos wiederholbar und piepsend:

7,
daniero
quelle
1
Könnten Sie bitte erläutern, welche Sprache das ist? Ich habe noch nie davon gehört, und sein Name ist zu kurz (und eine sehr gebräuchliche Abkürzung), um effizient gesucht zu werden.
vsz
3
Aus der Manpage: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- Soweit ich weiß, ist es in den meisten Linux / Unix-Distributionen enthalten.
Daniero
Ein paar weitere Beispiele, wenn Sie interessiert sind: 1 , 2 und 3 . Gesehen ein paar andere verwenden es auch hier.
Daniero
9
@vsz dc ist - natürlich - vollständig, so wie es ein besserer Rechner wie ghc sein sollte.
FUZxxl
4
Alle Sounds können deaktiviert werden. Drehen Sie einfach die Lautstärke herunter.
Daviewales
49

Bash (13)

sudo rm -rf /

Je schneller die Festplatte, desto besser der Klang. Arbeiten Sie nicht mit SSDs.
(Versuchen Sie dies nicht zu Hause, sondern sudo rm -rf /löschen Sie alles auf Ihrer Festplatte.)

Daniel
quelle
7
Ich denke, dass man mit einem Haftungsausschluss kommen sollte - "Versuchen Sie das nicht zu Hause": D
daniero
22
Ja, das ist der Klang , wenn Sie Ihren Computer r eads Ihre m ail r eally f ast (rm -rf).
FUZxxl
70
Warten Sie, Sie haben es falsch verstanden. Die Aufgabe ist es, das machen Computer produzieren einen Sound, der Benutzer ... obwohl ich , dass Schrei zugeben war sehr beeindruckend ...
aufgehört wiederum counterclockwis
4
Ohne geht es nicht --no-preserve-root, außer vielleicht auf alten Systemen.
Nyuszika7h
1
@ Nyuszika7h alten wie vor 2005.
Jwosty
44

* sh (5)

eject

(Funktioniert nicht, wenn Sie kein CD / DVD- oder ähnliches Laufwerk haben.)

Mykhal
quelle
Ich mag dieses. Auf meinem Mac (Mac OS X) wird der Befehl jedoch nicht gefunden:sh: eject: command not found
Nicolas Barbulesco,
3
Nicolas:
Richtig
@ Mykhal - Wenn Sie diesen Weg gehen, habe ich eine Lösung, die auf allen modernen Macs funktioniert
Nicolas Barbulesco
1
Dies schlägt mit OpenBSD fehl. usage: eject [-t] deviceDas Geräteargument ist nicht optional! Die kürzeste, die hier funktioniert, ist eject cd0für 9 Zeichen. Wenn sich im Laufwerk keine Schublade befindet (wie bei einem Laufwerk mit Einschub), wird nur dann eject cd0ein Geräusch erzeugt, wenn sich eine Disc im Laufwerk befindet.
Kernigh
1
Kernigh: Du hast recht. Auf der anderen Seite könnte dies auf vielen Systemen ohne Soundkarte oder Lautsprecher gelingen, bei denen die meisten anderen Lösungen fehlschlagen würden
mykhal
37

Befunge, 0

Wenn ich die Spezifikation richtig gelesen habe, ist dies eine Endlosschleife.
Endlosschleife = Sie hören, wie sich Ihr CPU-Kühler dreht.

Johannes Kuhn
quelle
27

sh 7

w|aplay

Spielt ein kurzes Geräusch.

Auch 7:

aplay *

Versammlung

Eine weitere Lösung ohne Klingel. Die resultierende Binärdatei enthält nur 15 Byte.

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

Zusammenbauen mit nasm sound.asm -o sound.com. Kann mit probiert werden dosbox sound.com.

Kopieren
quelle
9
+1, weil Sie sich nicht nur auf ein Terminal verlassen müssen, um BEL-Zeichen in Pieptöne zu übersetzen.
Ilmari Karonen
25

Gehirnfick: 8

+++++++.

Druckt das Klingelzeichen.

Pappkarton
quelle
16
+1 BF Lösung sowohl verständlich als auch kürzer als C.
OldCurmudgeon
15
Ein Brainfuck ist mental leichter zu verdauen als C ... wir sollten aus diesem Vorfall lernen.
Camilo Martin
23

bash (Mac OS X) 5

say a

stilistisch bevorzuge ich allerdings das etwas längere:

say 'Hello, Code Golf !'
Paul R
quelle
1
Wenn Ihr Mac auf Englisch eingestellt ist, können Sie dies auch tun say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
Tomsmeding
21
Oooh ... Ich habe SSH-Zugang zu einer OSX-Box ...
Stand
1
Dieser Befehl funktioniert in AppleScript. Ich wusste nicht, dass es auch im Terminal funktioniert. Lustig mit ssh!
Nicolas Barbulesco
1
Folgerung unter Linux: espeak...
daviewales
19

Haha, guter alter QBASIC-Code.

BEEP
Soham Chowdhury
quelle
1
Ah, der Spaß, den man mit dem PLAY-Befehl haben kann! Zur Erinnerung siehe zB dieses Video .
Jussi M
1
Ich bin 15, xD. Wir haben QBASIC in der Schule gelernt.
Soham Chowdhury
16

Python 3.3.3, ein Zeichen

<bell character>

Die Fehlermeldung enthält ein Klingelzeichen, das den Ton verursacht.

Python 3.3.3, 10 Zeichen

Wenn Fehler nicht zulässig sind, gibt diese Lösung nicht die Fehlermeldung, sondern nur den Ton aus.

print('<bell character>')

quelle
Warum das Downvote, erzeugt dieser Code tatsächlich einen Ton.
1
1 char O_o nice +1
Timtech
13

Golfscript 3

'.'

(wo das .eigentlich ein BELL Charakter ist)

Die HEX-Darstellung des obigen Codes lautet:

27 07 27
Cristian Lupascu
quelle
2
Autsch, Golfscript schlägt wieder zu!
vsz
12

Java - 222

Genug von diesem Klingelzeichen oder vordefinierten Signalton-Funktionen, das macht einen echten Sound :)

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
quelle
18
Java ist
total verrückt
1
@boothby nicht immer, check this out
aditsu
20
Okay, Java ist zum Golfen verrückt, es sei denn, die Herausforderung besteht darin, Fehler zu werfen. ;)
Stand
@boothby Was ist damit? codegolf.stackexchange.com/a/28818/24965
stommestack
2
@JopVernooij Das ist kein Golf, das ist ein hinterhältiger Beliebtheitswettbewerb.
Jwosty
11

DOS-Eingabeaufforderung / DOS-Skript

a:

Benötigt 3,5 "Diskettenlaufwerk :)

Svidgen
quelle
Welche Magie ist das?
Siehe auch
1
Es veranlasst DOS, zu versuchen, von der Diskette zu lesen, was einen Ton verursacht. Es ist jedoch falsch, dass hierfür ein 3,5-Zoll-Diskettenlaufwerk erforderlich ist; ein 5,25-Zoll-Diskettenlaufwerk funktioniert sogar noch besser.
Celtschk
Ja. Wäre die 5,25 "normalerweise nicht b:?
Svidgen
1
Versuchen Sie es mit einem CD-Laufwerk mit einer defekten Festplatte, funktioniert auch
Alejandro
Der Laufwerksbuchstabe in DOS hing davon ab, an welche Anschlüsse des Kabels das Laufwerk angeschlossen war (und bei neueren Computern von einer BIOS-Einstellung). Mein erster Computer hatte nur ein 5,25 "-Laufwerk und ich musste es als Master anschließen (was es zum A-Laufwerk machte), da es nicht vom Slave booten konnte.
Dennis
9

J (2)

a.

Dies druckt alle Zeichen von 0 bis 255, einschließlich der Glocke.

Wenn ich es tun muss, ohne etwas anderes zu drucken, sind es 4 Zeichen:

7{a.
Marinus
quelle
9

Pascal: 30 Zeichen

uses Crt;begin
Sound(999)
end.

Dies nutzt das Fehlen jeglicher Regeln bezüglich der Dauer des Klangs aus. Schaltet also einfach den Lautsprecher auf 999 Hz und lasst es so. (Zumindest bis ein anderes Programm aufruft Nosoundoder der Computer ausgeschaltet ist.)

Mann bei der Arbeit
quelle
Und der Ton schreit auch nach dem Beenden des Programms weiter? Ich mag dieses! :-)
Nicolas Barbulesco
@NicolasBarbulesco, genau. Dies war das normale Verhalten aller Programme unter DOS, einschließlich der in C oder Assembly geschriebenen.
Manatwork
-2: Ändern bis 9 Hz: Sound(9).
Erik der Outgolfer
@EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, wäre schwer zu beweisen, dass der Ton tatsächlich erzeugt wird. Frequenzbereich des menschlichen Gehörs
Handarbeit
@manatwork Nun, fügen Sie einen identischen Code mit einer anderen Frequenz hinzu, die zu hören ist. Da die Codes identisch sind, kann dies nachgewiesen werden. (die Zahl ändert sich nur)
Erik der Outgolfer
8

Mathematica 6

Dies ruft den Signalton des Systems hervor. Auf meinem Computer ist es derzeit ein Zwitschern.

Beep[]
DavidC
quelle
8

Bash, 22

In den 90er Jahren brachte mir mein Bruder dieses bei - es sollte in einem Computerlabor verwendet werden, in dem man Fernzugriff hat und eine Person kennt, die allein in diesem Labor ist. Kinder werden heutzutage nicht wissen, was ein Computerraum ist ... aber na ja.

cd /dev;cat sda1>audio
boothby
quelle
1
Ich laufe bash: audio: Permission deniedsogar unter sudo. :(
Riking
2
Dies funktionierte auf Debian ab 2006. Ich kann es nicht auf meiner Ubuntu-Box zum
Laufen bringen
1
Ich denke du meinst dsp, nicht Audio. Unten finden Sie ein ähnliches Beispiel, das ich mit / dev / random
3
odercat /dev/sda | aplay
TheDoctor
1
@TheDoctor oder aplay</dev/sda( UUOC ;-) )
Digital Trauma
7

cat / type / PHP 1

Das ist eigentlich vielsprachig. Es läuft in cat(oder Microsoft Cat genannt type) und PHP.

$ xxd file
0000000: 07                                       .

Ausführung:

$ xxd -r > file
0000000: 07                                       .
^D
$ cat file # cat could be replaced with type (on Windows) or with php
Konrad Borowski
quelle
Was ist das Programm? Wie läuft es? Das ist nicht klar.
Nicolas Barbulesco
@NicolasBarbulesco: Das Programm ist ein Byte ( \x07), aber da es binär ist, kann ich es hier nicht einfügen. Sie können es mit PHP CLI ausführen php.
Konrad Borowski
Es ist nicht klar. Aber es funktioniert ! Mit cat. Der Trick ist die ASCII-Zeichen 7 "Glocke".
Nicolas Barbulesco
Das ist kein ernsthafter Versuch.
User48538
7

Brainfuck, 5 Bytes

+[.+]

druckt alle Zeichen einschließlich Glocke

benwaffle
quelle
5

R 9

Der Glockencharakter

cat("\a")
Dason
quelle
5

Rubin, 7

$><<?\a

Getestet unter Windows mit Ruby 1.9.3.

Roy Tinker
quelle
5

DOS, 5

Indirekt, erfordert Benutzerkooperation.

pause
boothby
quelle
6
Führen Sie das Programm aus. Kooperieren. Hör mal zu.
Stand
2
Sie müssen eine Taste drücken ... und es ertönt ein Geräusch. @mana Er sagte, es sei indirekt - pausehabe nicht den Ton gemacht, DU hast.
Riking
2
@Riking, wie passt das zu der Anforderung "Ihr Programm muss den Computer dazu bringen, einen Sound zu produzieren"?
Manatwork
5
Ich verstehe keine Programmierer auf Puzzleseiten, die nicht über den Tellerrand hinaus denken können.
Stand
4
Ich habe deine Antwort nicht kritisiert. Ich habe die Frage kritisiert. Eine sinnlose Frage wird offensichtlich sinnlose Antworten erhalten. Ihre Antwort ergibt dann genauso viel Sinn wie jede andere Antwort auf diese dumme Frage. Also gebe ich dir +1.
4

Python 9 Zeichen


Bei der Ausführung ertönt ein Piepton.

print'\a'
Anbarasan
quelle
1
Sie können diesen Wert auf 8 Zeichen verkürzen, wenn Sie ihn durch \adas tatsächliche Klingelzeichen (ASCII-Code 7) ersetzen .
Flornquake
Aber wie kann man mit Hilfe des Wertes 7 drucken?
Anbarasan
1
Sie können die Glocke mit in Ihren Editor eingeben Alt+07. Alternativ können Sie dieses Snippet ausführen, um eine Python-Datei mit der 8- open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
stelligen
Ich habe es verstanden. Vielen Dank !
Anbarasan
4

Applescript (4 Zeichen)

beep

Dies gibt den Standard-Piepton von OS X wieder.

Mathias
quelle
4

Mathematica 7

Verwendung der integrierten Text-zu-Sprache-Funktion von Mathematica.

Speak@x

Lässt es "x" sagen

Übereinstimmen
quelle
4

top & aplay - 9

top hat Rhythmus!

top|aplay

Die periodische Anzeige speist den Schall manchmal nicht schnell genug, sondern aplaysetzt sich nach einigem Grunzen fort ... :-)

... das läuft unter vielen Linuxen ...

Bonus:

Geben Sie dabei "s 1 ENTER" ein, um mehr Schläge pro Sekunde zu erhalten. :-)

Feier weiter!!! \O/

Yeti
quelle
Das ist reines Genie ...: D
Mega Man
3

> <> 3

Wie bei allen Antworten wird die Glocke (0x07) nach stdout gedruckt.

7o;
tomsmeding
quelle
3

Tcl, 1 char

-

Ersetzen Sie -mit der Glocke char.
Es wird das Klingelzeichen als Teil der Fehlermeldung gedruckt. Zweimal.

Und wenn Sie denken, dass dies kein gültiges Programm ist, fügen Sie dies vor dem Klingelzeichen hinzu:

proc \007 {} {};

Es ist ein gültiges Programm, ich habe den Befehl nur nicht definiert, weil mir die Fehlermeldung gefällt.

Johannes Kuhn
quelle
Basiert das auf einer Tcl 8.6-Funktion? In Tcl 8.5 habe ich ein anderes Ergebnis erhalten: pastebin.com/bh73UF6F Oder sind Sie unter Windows?
Manatwork
Der 2. Teil sollte zeigen, dass dies eine gültige Tcl-Datei ist. Und es sollte 2x piepen (die Fehlermeldung enthält den Befehl, der zweimal ausgeführt werden soll). Das Aufrufen eines nicht vorhandenen Befehls ist für Tcl kein Fehler. Es ist nur einer, wenn es ihn nicht finden kann. (zB parraywelches beim ersten Gebrauch geladen wird)
Johannes Kuhn
Hoppla. Ich habe dich missverstanden. Ich dachte du meinst, es sollte auch bei der procErklärung piepen . (In Bezug auf die Anzahl der Signaltöne zeigt mein Terminal wahrscheinlich puts [string repeat ".\a" 10]10 Punkte an, gibt aber nur einmal Signaltöne aus.)
manatwork
3

C: 19

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

edit: Header-Datei wird für "Puts" nicht benötigt

Trevor Hickey
quelle
2
Sie können das Leerzeichen zwischen #includeund entfernen <:)
tomsmeding
puts (char *); main () {puts ("\ a");} ist meiner Meinung nach kleiner.
FUZxxl
Sie können einfach die entfernen #include.
Ugoren
1
@FUZxxl Wie können Sie eine Meinung zur Codegröße haben?
Türklinke
@DoorknobofSnow Wegen der ersten Änderung?
FUZxxl
2

Rubin 8

 puts"\a"

Getestet unter Windows mit Ruby 1.9.3.

Cristian Lupascu
quelle