Jouer un son, n'importe quel son [fermé]

43

Votre programme doit faire en sorte que l’ordinateur produise un son, n’importe quel son.

Le code le plus court l'emporte, au plus tôt 10 jours après la première réponse valide. S'il y a égalité, celle qui a été soumise le plus tôt gagne.

  • Le programme doit être exécuté sur un ordinateur personnel raisonnable et non trop rare.
  • L'ouverture d'une fenêtre contextuelle, d'une boîte de message, etc. (par exemple, sur une page Web) ne compte pas, car elle peut ou non produire un son, en fonction de nombreux paramètres.
  • Le simple fait d'entrer une commande incorrecte ou un caractère non valide sur une console et de recevoir un bip d'avertissement ne compte pas, tout comme le compilateur / interprète / OS émettant un bip sur une erreur ou une panne ne compte pas non plus. Votre code doit être un programme valide.
vsz
la source
1
La sonnerie du système ou le bip du système d’exploitation peuvent également être supprimés sur de nombreux systèmes (par exemple, pour devenir une "sonnerie" visible) et doivent être traités comme des sons de popus, etc.: solution non valide.
Chaque programme qui affiche "\ a" sur un terminal échoue si xterm utilise une cloche visible.
Kernigh
19
rm /causera beaucoup de cris.
cjfaure
Mon fan gauche est en train de mourir bruyamment depuis un moment. Serait-ce une réponse 0 bit valide?
Édouard
1
Je pense que cette question devrait être rouverte. Les réponses de plaisanterie qui reposent sur la rotation du ventilateur ou l'ouverture du plateau de CD ne sont pas valides, puisque la question dit "joue un son". Il me semble assez clair que la sortie doit provenir des haut-parleurs résultant du programme, et non du système d'exploitation, de l'utilisateur ou du matériel.
mbomb007

Réponses:

20

dc, 2 caractères

celui-ci imprime aussi le caractère de la cloche:

7P

Exécuter avec $ dc <<< 7Pou enregistrer 7Pdans un fichier et exécuter $ dc file.

Également:

Befunge, 2 caractères

Semblable mais en boucle et bip infiniment:

7,
Daniero
la source
1
Pourriez-vous préciser la langue? Je n'en ai jamais entendu parler et son nom est trop court (et une abréviation très courante) pour être recherché efficacement.
vsz
3
De la page de manuel: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- à ma connaissance, il est inclus dans la plupart des distributions linux / unix.
daniero
Quelques exemples supplémentaires si cela vous intéresse: 1 , 2 et 3 . Vu quelques autres l'utilisent ici aussi.
daniero
9
Bien entendu, @vsz dc est complet, comme devrait l'être tout meilleur calculateur tel que ghc.
FUZxxl
4
Tous les sons peuvent être désactivés. Il suffit de baisser le volume.
daviewales
49

bash (13)

sudo rm -rf /

Plus le disque dur est rapide, meilleur est le son. Ne travaillez pas avec les SSD.
(N'essayez pas cela à la maison, sudo rm -rf /efface tout ce qui se trouve sur votre disque dur)

Daniel
la source
7
Je pense qu'on devrait venir avec un avertissement - "N'essayez pas ça à la maison": D
daniero
22
Ouais, c'est le son lorsque votre ordinateur r eads votre m tout r eally f ast (rm -rf).
FUZxxl
70
Attends, tu t'es trompé. La tâche est de faire en sorte que l' ordinateur produise un son, et non l'utilisateur ... même si je dois admettre que crier était assez impressionnant ...
cessé de tourner en sens inverse
4
Il ne fait rien sans --no-preserve-root, sauf peut-être sur les anciens systèmes.
nyuszika7h
1
@ nyuszika7h ancienne comme avant 2005.
Jwosty
44

* sh (5)

eject

(ne fonctionne pas si vous n'avez pas de CD / DVD ou un lecteur similaire ..)

Mykhal
la source
J'aime celui la. Mais, sur mon Mac (Mac OS X), la commande n'est pas trouvée:sh: eject: command not found
Nicolas Barbulesco
3
Nicolas: à droite, sur Mac, l'éjection « commande » semble être beaucoup plus courte: (:
mykhal
@ Mykhal - Si vous allez de cette façon, j'ai une solution qui fonctionne sur tous les Mac modernes: 🔊
Nicolas Barbulesco
1
Cela échoue avec OpenBSD. usage: eject [-t] deviceL'argument device n'est pas optionnel! Le plus court qui fonctionne ici est eject cd0pour 9 caractères. De même, si le lecteur ne possède pas de plateau (comme dans le cas d'un lecteur à chargement par fente), eject cd0aucun bruit ne se produit sauf si un disque est inséré dans le lecteur.
Kernigh
1
Kernigh: tu as raison. d'autre part, cela pourrait réussir sur de nombreux systèmes sans carte son ni haut-parleur, où la plupart des autres solutions échoueraient
mykhal
37

Befunge, 0

Si je lis correctement les spécifications, il s'agit d'une boucle sans fin.
Boucle infinie = vous entendrez le refroidissement de votre CPU.

Johannes Kuhn
la source
27

sh 7

w|aplay

Joue un petit bruit.

Aussi 7:

aplay *

Assemblée

Une autre solution non-cloche. Le résultat en binaire n'est que de 15 octets.

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

Assemblez avec nasm sound.asm -o sound.com. Peut être essayé avec dosbox sound.com.

copie
la source
9
+1 pour ne pas utiliser uniquement un terminal pour traduire les caractères BEL en signaux sonores.
Ilmari Karonen
25

brainfuck: 8

+++++++.

Imprime le caractère de la cloche.

boîte en carton
la source
16
+1 BF Solution à la fois compréhensible ET plus courte que C.
OldCurmudgeon
15
Un brainfuck est plus facile à digérer mentalement que C ... nous devrions apprendre de cet incident.
Camilo Martin
23

bash (Mac OS X) 5

say a

bien que stylistiquement je préfère le peu plus long:

say 'Hello, Code Golf !'
Paul R
la source
1
Si votre Mac est configuré en anglais, vous pouvez également le faire say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
Tomsmeding
21
Oooh ... j'ai un accès SSH à une boîte osx ...
stand by
1
Cette commande fonctionne dans AppleScript. Je ne savais pas que cela fonctionnait aussi dans le terminal. Drôle avec ssh!
Nicolas Barbulesco
1
Corollaire sur Linux: espeak...
daviewales
19

Haha, bon vieux code QBASIC.

BEEP
Soham Chowdhury
la source
1
Ah, le plaisir que l’on pouvait avoir avec la commande PLAY! Pour la réminiscence, voir par exemple cette vidéo .
Jussi M
1
J'ai 15 ans, xD. Nous avons appris QBASIC à l'école.
Soham Chowdhury
16

Python 3.3.3, un caractère

<bell character>

Le message d'erreur contiendra un caractère de cloche, provoquant le son.

Python 3.3.3, 10 caractères

Si les erreurs ne sont pas autorisées, cette solution ne produira pas le message d'erreur, mais uniquement le son.

print('<bell character>')

la source
Pourquoi le vote négatif, ce code produit réellement un son.
1
1 caractère O_o nice +1
Timtech le
13

Golfscript 3

'.'

(où il .s'agit en fait d'un personnage de BELL)

La représentation HEX du code ci-dessus est:

27 07 27
Cristian Lupascu
la source
2
Aïe, Golfscript frappe encore!
vsz
12

Java - 222

Assez de ce caractère de cloche ou de fonction de bip prédéfini, cela produit un vrai son :)

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
la source
18
Java craint vraiment pour le golf
stand by
1
@boothby pas toujours, vérifier ce sur
aditsu
20
Ok, Java craint pour le golf, sauf lorsque le défi consiste à jeter des erreurs. ;)
stand
@boothby Qu'en est-il? codegolf.stackexchange.com/a/28818/24965
stommestack
2
@JopVernooij Ce n'est pas du golf, c'est un concours de popularité sournois.
Jwosty
10

Invite DOS / Script DOS

a:

Nécessite un lecteur de disquette 3.5 ":)

svidgen
la source
Quelle magie est-ce?
seequ
1
Cela oblige DOS à essayer de lire sur la disquette, ce qui provoque un son. Cependant, il est faux que cela nécessite un lecteur de disquette 3,5 "; un lecteur de disquette 5,25" fonctionne encore mieux.
celtschk
Toujours. Ne serait normalement pas le 5.25 " b:?
svidgen
1
Essayez un lecteur de CD avec un disque défectueux à l'intérieur, fonctionne très bien aussi :)
Alejandro
La lettre de lecteur sous DOS dépend des connecteurs du câble auxquels le lecteur était connecté (et des machines plus récentes, un paramètre BIOS). Mon premier ordinateur ne possédait qu'un lecteur de 5,25 pouces et je devais le connecter en tant que maître (ce qui en faisait le lecteur A), car il ne pouvait pas démarrer à partir de l'esclave.
Dennis
9

J (2)

a.

Ceci imprime tous les caractères de 0 à 255, y compris la cloche.

Si je dois le faire sans rien imprimer d'autre, c'est 4 caractères:

7{a.
marinus
la source
9

Pascal: 30 caractères

uses Crt;begin
Sound(999)
end.

Cela profite de l'absence de règle concernant la durée du son. Il suffit donc d’allumer le haut-parleur sur 999 Hz et de le laisser aller. (Au moins jusqu'à ce qu'un autre programme appelle Nosoundou que l'ordinateur soit éteint.)

homme au travail
la source
Et le son continue à crier même après que le programme ait quitté? J'aime celui la ! :-)
Nicolas Barbulesco le
@NicolasBarbulesco, exactement. C'était le comportement normal de tous les programmes sous DOS, y compris ceux écrits en C ou en assembleur.
Manatwork
-2: Changement de 9 Hz: Sound(9).
Erik the Outgolfer le
@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, il serait difficile de prouver que le son est réellement généré. Plage de fréquences de l'ouïe humaine
manatwork
@manatwork Eh bien, ajoutez un code identique avec une autre fréquence pouvant être entendu. Parce que les codes sont identiques, cela peut être prouvé. (le nombre change seulement)
Erik the Outgolfer
8

Mathematica 6

Cela évoquera le bip système. Sur mon ordinateur, c'est actuellement un gazouillis.

Beep[]
DavidC
la source
8

Bash, 22 ans

Dans les années 90, mon frère m'a appris celui-ci: être utilisé dans un laboratoire informatique où l'on a accès à distance et sait qu'une personne est seule dans ce laboratoire. Les enfants de nos jours ne sauront pas ce qu'est un laboratoire informatique ... mais bon.

cd /dev;cat sda1>audio
boothby
la source
1
Je bash: audio: Permission deniedcours même sous sudo. :(
Riking
2
Cela fonctionnait sous Debian à partir de 2006. Je ne peux pas le faire fonctionner sur ma
machine
1
Je pense que vous voulez dire dsp, pas audio. Voir ci-dessous un exemple similaire que j'ai écrit en utilisant / dev / random
3
oucat /dev/sda | aplay
TheDoctor
1
@TheDoctor ou aplay</dev/sda(UUOC ;-))
Trauma numérique
7

chat / type / PHP 1

C'est en fait polyglotte. Il fonctionne dans cat(ou Microsoft Cat appelé type) et PHP.

$ xxd file
0000000: 07                                       .

Exécution:

$ xxd -r > file
0000000: 07                                       .
^D
$ cat file # cat could be replaced with type (on Windows) or with php
Konrad Borowski
la source
Quel est le programme? Comment l'exécuter? Ce n'est pas clair.
Nicolas Barbulesco
@ NicolasBarbulesco: Le programme est un byte ( \x07), mais comme c'est binaire, je ne peux pas le coller ici. Vous pouvez l'exécuter en PHP CLI, avec php.
Konrad Borowski
Ce n'est pas clair. Mais ça marche! Avec cat. Le truc est le caractère ASCII 7 "cloche".
Nicolas Barbulesco
Ce n'est pas une tentative sérieuse.
user48538
6

brainfuck, 5 octets

+[.+]

affiche tous les caractères, y compris la cloche

benwaffle
la source
5

R 9

Le caractère de la cloche

cat("\a")
Dason
la source
5

Rubis, 7

$><<?\a

Testé sous Windows avec Ruby 1.9.3.

Roy Tinker
la source
5

DOS, 5

Indirect, nécessite la coopération de l'utilisateur.

pause
boothby
la source
6
Exécutez le programme. Coopérer. Écoute
Boothby
2
Vous devez appuyer sur une touche ... qui émet un son. @mana Il a dit que c'était indirect - pausene faisait pas le son, VOUS l'avez fait.
Riking
2
@Riking, en quoi cela est-il conforme à la partie «Votre programme doit faire en sorte que l'ordinateur produise un son»?
Manatwork
5
Je ne comprends pas les programmeurs sur les sites de casse-tête qui ne peuvent pas penser autrement.
stand by
4
Je ne critiquais pas ta réponse. Je critiquais la question. Une question inutile obtiendra évidemment des réponses inutiles. Votre réponse a alors autant de sens que toute autre réponse à cette question stupide. Donc, je vous donne +1.
5

PowerShell, 24 17

Depuis personne n'a encore posté cette version:

[console]::beep()

UPDATE: Suppression des fréquences afin qu’elle utilise la fréquence et la durée par défaut ( MSDN indique que la valeur par défaut est 800 hertz et 200 millisecondes )

ub3rst4r
la source
Vous pouvez sûrement au moins utiliser des nombres plus petits
Dennis Jaheruddin le
4

Python 9 caractères


produit un bip sonore lors de l'exécution.

print'\a'
Anbarasan
la source
1
Vous pouvez le réduire à 8 caractères si vous le remplacez \apar le caractère de cloche actuel (code ASCII 7).
séisme florn
Mais comment imprimer avec l'aide de la valeur 7?
Anbarasan
1
Vous pouvez taper le caractère de cloche dans votre éditeur avec Alt+07. Vous pouvez également exécuter cet extrait pour créer un fichier python avec la solution à 8 caractères:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake,
Je l'ai maintenant. Merci !
Anbarasan
4

Applescript (4 caractères)

beep

Cela va jouer le bip sonore par défaut de OS X.

Mathias
la source
4

Mathematica 7

Utilisation de la fonctionnalité de synthèse vocale intégrée de Mathematica.

Speak@x

Le fera dire "x"

Pointage
la source
4

top & aplay - 9

top a du rythme!

top|aplay

Il arrive que l’affichage périodique n’alimente pas assez rapidement le puits de son, mais aplaycontinue après avoir grogné un peu ... :-)

... cela fonctionnera sur beaucoup de Linux ...

Prime:

Pendant l’exécution, tapez "s 1 ENTER" pour obtenir plus de battements par seconde. :-)

Faites la fête !!! \ o /


la source
C'est du pur génie ...: D
Mega Man
3

> <> 3

Comme dans toutes les réponses, affiche la cloche (0x07) sur la sortie standard.

7o;
tomsmeding
la source
3

Tcl, 1 caractère

-

remplacer -par le caractère de cloche.
Il imprimera le caractère de sonnerie dans le cadre du message d'erreur. Deux fois.

Et si vous pensez que ce programme n'est pas valide, ajoutez-le avant le caractère de sonnerie:

proc \007 {} {};

C'est un programme valide, je n'ai tout simplement pas défini la commande, car j'aime bien le message d'erreur.

Johannes Kuhn
la source
Est-ce basé sur certaines fonctionnalités de Tcl 8.6? Dans Tcl 8.5, le résultat est différent: pastebin.com/bh73UF6F Ou êtes-vous sous Windows?
Manatwork
Non. La 2e partie devrait montrer qu'il s'agit d'un fichier Tcl valide. Et il devrait bip bip 2x (le message d'erreur contient la commande à exécuter deux fois). Appeler une commande qui n'existe pas n'est pas une erreur pour Tcl, c'est une erreur si elle ne peut pas la trouver. (par exemple parray, qui est chargé lors de la première utilisation)
Johannes Kuhn
Oops. Je t'ai mal compris. Je pensais que vous vouliez dire, cela devrait également sonner avec la procdéclaration. (En ce qui concerne le nombre de bips, mon terminal est probablement en train de faire quelque chose comme il puts [string repeat ".\a" 10]affiche 10 points mais ne
bipe
3

C: 19

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

edit: le fichier d'en-tête n'est pas nécessaire pour "met"

Trevor Hickey
la source
2
Vous pouvez supprimer l'espace entre #includeet <:)
tomsmeding
met (char *); main () {met ("\ a");} est un IMHO plus petit.
FUZxxl
Vous pouvez simplement enlever le #include.
Ugoren
1
@FUZxxl Comment pouvez-vous avoir une opinion sur la taille du code?
Poignée de porte
@DoorknobofSnow À cause du premier amendement?
FUZxxl
2

Ruby 8

 puts"\a"

Testé sous Windows avec Ruby 1.9.3.

Cristian Lupascu
la source