Воспроизвести звук, любой звук [закрыто]


43

Ваша программа должна заставить компьютер воспроизводить звук, любой звук.

Самый короткий код выигрывает не раньше, чем через 10 дней после первого правильного ответа. Если есть галстук, тот, представленный раньше, побеждает.

  • Программа должна работать на разумном, не слишком необычном персональном компьютере.
  • Открытие всплывающего окна, окна сообщения и т. Д. (Например, на веб-странице) не учитывается, поскольку они могут воспроизводить или не воспроизводить звук, в зависимости от множества настроек.
  • Простой ввод неправильной команды или недопустимого символа на консоли и получение предупреждающего звукового сигнала не учитываются, также как компилятор / интерпретатор / ОС, подающий звуковой сигнал об ошибке или сбое, также не учитывается. Ваш код должен быть действительной программой.

1
^ G aka системный звонок или сигнал ОС могут подавляться и во многих системах (например, переключаться на видимый «звонок») и должны обрабатываться как звуки поп-музыки и т. Д. Неправильное решение.

Каждая программа, которая печатает «\ a» в терминал, завершается ошибкой, если xterm использует видимый колокол.
Kernigh

19
rm /вызовет много криков.
cjfaure

Мой левый поклонник некоторое время шумно умирал. Это будет правильный 0-битный ответ?
Эдуар

1
Я думаю, что этот вопрос должен быть вновь открыт. Ответы на шутки, основанные на вращении вентилятора или открытии лотка для компакт-дисков, являются недействительными, поскольку в вопросе говорится «воспроизвести звук». Мне кажется довольно ясным, что вывод должен исходить из динамиков в результате программы, а не ОС, пользователя или аппаратного обеспечения.
mbomb007

Ответы:


20

DC, 2 символа

этот тоже печатает колокольчик:

7P

Запустите $ dc <<< 7Pили сохраните 7Pв файл и запустите $ dc file.

Также:

Befunge, 2 символа

Аналогично, но бесконечно зацикливается и пищит:

7,

1
Не могли бы вы уточнить, что это за язык? Я никогда не слышал об этом, и его название слишком короткое (и очень распространенное сокращение) для эффективного поиска.
vsz

3
Со страницы руководства: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- насколько я знаю, он входит в большинство дистрибутивов Linux / Unix.
Даниеро

Еще несколько примеров, если вам интересно: 1 , 2 и 3 . Видно, что некоторые другие также используют его здесь.
Даньеро

9
Конечно, @vsz dc завершен, как и любой лучший калькулятор, такой как ghc.
FUZxxl

4
Все звуки могут быть отключены. Просто уменьшите громкость.
daviewales

49

Баш (13)

sudo rm -rf /

Чем быстрее жесткий диск, тем лучше звук. Не работайте с твердотельными накопителями.
(Не пытайтесь делать это дома, sudo rm -rf /стирайте все на жестком диске)


7
Я думаю, что нужно прийти с оговоркой - «Не пытайтесь это дома»: D
daniero

22
Да, это звук , когда ваш компьютер г EADS ваш м Айыл г eally е аст (гт -rf).
FUZxxl

70
Подожди, ты ошибся. Задача состоит в том, чтобы заставить компьютер издавать звук, а не пользователя ... хотя я должен признать, что крик был довольно впечатляющим ...
перестал поворачиваться против часовой стрелки

4
Это не обходится без чего-либо --no-preserve-root, кроме, возможно, в древних системах.
nyuszika7h

1
@ nyuszika7h древний, как до 2005 года.
Jwosty

44

* sh (5)

eject

(не работает, если у вас нет CD / DVD или аналогичного привода ..)


Мне нравится этот. Но на моем Mac (Mac OS X) команда не найдена:sh: eject: command not found
Николас Барбулеско

3
Николас: верно, на Mac, «команда» извлечения выглядит намного короче: (:
mykhal

@ mykhal - Если вы пойдете по этому пути, у меня есть решение, которое работает на всех современных компьютерах Mac: Nic
Николас Барбулеско

1
Это не удается с OpenBSD. usage: eject [-t] deviceАргумент устройства не является обязательным! Самое короткое, что работает здесь, eject cd0для 9 символов. Кроме того, если на дисководе нет лотка (как у дисковода со щелевой загрузкой), он не eject cd0издает шум, если в дисководе нет диска.
Kernigh

1
Керни: ты прав. с другой стороны, он мог бы преуспеть во многих системах без звуковой карты или динамика, где большинство других решений не
сработало

37

Befunge, 0

Если я правильно прочитал спецификацию, это бесконечный цикл.
Бесконечный цикл = вы услышите, как ускоряется ваш процессорный кулер.


27

ш 7

w|aplay

Играет короткий шум.

Также 7:

aplay *

сборочный

Еще одно решение без звонка. Результирующий двоичный файл занимает всего 15 байтов.

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

Собрать с nasm sound.asm -o sound.com. Можно попробовать с dosbox sound.com.


9
+1 за то, что вы не просто полагаетесь на терминал для перевода символов BEL в звуковые сигналы.
Илмари Каронен


23

Bash (Mac OS X) 5

say a

хотя стилистически я предпочитаю несколько длиннее

say 'Hello, Code Golf !'

1
Если ваш Mac установлен на английский, вы также можете сделать say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
Томсминг 29.12.12

21
Оооо ... У меня есть SSH доступ к OSX Box ...
Boothby

1
Эта команда работает в AppleScript. Я не знал, что это работает в терминале тоже. Смешно с SSH!
Николас Барбулеско

1
Следствие для Linux: espeak...
daviewales


16

Python 3.3.3, один символ

<bell character>

Сообщение об ошибке будет содержать символ звонка, вызывающий звук.

Python 3.3.3, 10 символов

Если ошибки не допускаются, это решение не будет выводить сообщение об ошибке, только звук.

print('<bell character>')

Почему понижение, этот код на самом деле производит звук.

1
1 символ О_о, хороший +1
Timtech

13

Golfscript 3

'.'

(где на .самом деле это колокольчик)

HEX-представление приведенного выше кода:

27 07 27

2
Ой, Golfscript снова бьет!
vsz

12

Ява - 222

Достаточно этого символа звонка или предопределенных звуковых функций, это делает настоящий звук :)

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
Ява действительно отстой для гольфа
Бутби

1
@boothby не всегда, проверить это при отъезде
aditsu

20
Хорошо, Java отстой для гольфа, за исключением случаев, когда проблема состоит в том, чтобы выбросить ошибки. ;)
Бутби

@boothby Как насчет этого? codegolf.stackexchange.com/a/28818/24965
stommestack

2
@JopVernooij Это не гольф, это закулисный конкурс популярности.
Jwosty

10

DOS Prompt / DOS Script

a:

Требуется 3,5 "дисковод гибких дисков :)


Что это за магия?
seequ

1
Это заставляет DOS пытаться читать с дискеты, что вызывает звук. Однако неправильно, что для этого нужен 3,5-дюймовый дисковод гибких дисков; 5,25-дюймовый дисковод гибких дисков работает еще лучше.
celtschk

Айя. Не было бы 5,25 "нормально b:?
svidgen

1
Попробуйте CD-дисковод с дефектным диском внутри, тоже отлично работает :)
Алехандро

Буква диска в DOS зависела от того, к каким разъемам кабеля был подключен диск (и на более новых машинах настройка BIOS). У моего первого компьютера был только 5,25-дюймовый диск, и мне пришлось подключить его как master (делая его дисководом A), поскольку он не мог загружаться с ведомого устройства.
Dennis

9

J (2)

a.

Это печатает все символы от 0 до 255, включая колокол.

Если я должен сделать это без печати чего-либо еще, это 4 символа:

7{a.

9

Паскаль: 30 символов

uses Crt;begin
Sound(999)
end.

Это использует отсутствие какого-либо правила относительно продолжительности звука. Так что просто включите динамик на 999 Гц и пусть так и будет. (По крайней мере, пока не вызовет другая программа Nosoundили компьютер не выключится.)


И звук продолжает кричать даже после выхода из программы? Мне нравится этот ! :-)
Николас Барбулеско

@NicolasBarbulesco, точно. Это было нормальное поведение всех программ на DOS, в том числе написанных на C или ассемблере.
Манатворк

-2: Изменение до 9 Гц: Sound(9).
Эрик Outgolfer

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, было бы трудно доказать, что звук действительно генерируется. Частотный диапазон человеческого слуха
manatwork

@manatwork Хорошо, добавьте идентичный код с другой частотой, которую можно услышать. Поскольку коды идентичны, это можно доказать. (число только меняется)
Эрик Аутгольфер

8

Mathematica 6

Это вызовет звуковой сигнал системы. На моем компьютере в настоящее время это щебетание.

Beep[]

8

Баш, 22

Еще в 90-х годах мой брат научил меня этому - использовать в компьютерной лаборатории, где есть удаленный доступ и кто-то знает, что он один в этой лаборатории. Дети в наши дни не будут знать, что такое компьютерная лаборатория ... ну да ладно.

cd /dev;cat sda1>audio

1
Я bash: audio: Permission deniedдаже бегаю под судо. :(
Riking

2
Это работало в Debian с 2006 года. Я не могу заставить его работать на моем Ubuntu box: * (
boothby

1
Я думаю, что вы имеете в виду DSP, а не аудио. Ниже приведен аналогичный пример, который я написал, используя / dev / random

3
илиcat /dev/sda | aplay
TheDoctor

1
@TheDoctor или aplay</dev/sda(UUOC ;-))
цифровая травма

7

кошка / тип / PHP 1

Это на самом деле полиглот. Он работает cat(или называется Microsoft Cat type) и PHP.

$ xxd file
0000000: 07                                       .

Исполнение:

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

Что за программа? Как запустить это? Это не ясно.
Николас Барбулеско

@NicolasBarbulesco: Программа имеет один байт ( \x07), однако, поскольку она двоичная, я не могу вставить ее здесь. Вы можете запустить его в PHP CLI, с php.
Конрад Боровски

Не ясно. Но это работает! С cat. Трюк ASCII char 7 «колокол».
Николас Барбулеско

Это не серьезная попытка.
user48538

6

брейкфук, 5 байт

+[.+]

печатает все символы, включая колокол




5

ДОС, 5

Косвенный, требует взаимодействия с пользователем.

pause

6
Запустите программу. Сотрудничать. Слушать.
Boothby

2
Вы должны нажать клавишу ..., которая издает звук. @mana Он сказал, что это было косвенным - pauseне сделал звук, ВЫ сделали.
Riking

2
@Riking, как это согласуется с требованием «Ваша программа должна заставить компьютер воспроизводить звук»?
manatwork

5
Я не понимаю программистов на сайтах-головоломках, которые не могут мыслить нестандартно.
Boothby

4
Я не критиковал ваш ответ. Я критиковал вопрос. Бессмысленный вопрос, очевидно, получит бессмысленные ответы. Ваш ответ будет иметь такой же смысл, как и любой другой ответ на этот глупый вопрос. Итак, я даю тебе +1.

5

PowerShell, 24 17

Поскольку никто еще не опубликовал эту версию:

[console]::beep()

ОБНОВЛЕНИЕ: Удалены частоты, поэтому он использует частоту и длительность по умолчанию ( MSDN говорит, что по умолчанию 800 герц и 200 миллисекунд )


Конечно, вы могли бы по крайней мере использовать меньшие числа
Деннис Jaheruddin

4

Python 9 символов


издает звуковой сигнал при исполнении.

print'\a'

1
Вы можете сократить его до 8 символов, если заменить \aего реальным символом колокольчика (код ASCII 7).
землетрясение

Но как печатать с помощью значения 7?
Анбарасан

1
Вы можете ввести символ колокольчика в свой редактор с помощью Alt+07. Кроме того, вы можете запустить этот фрагмент, чтобы создать файл Python с 8-символьным решением:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake

Понял сейчас. Благодарность !
Анбарасан

4

Applescript (4 символа)

beep

Это будет играть звуковой сигнал по умолчанию OS X.


4

Mathematica 7

Использование встроенного в Mathematica преобразования текста в речь.

Speak@x

Скажу "х"


4

top & aplay - 9

top имеет ритм!

top|aplay

Периодическое отображение иногда не подает звук достаточно быстро, но aplayпродолжается после ворчания ... :-)

... это будет работать на многих Linux ...

Бонус:

Во время работы введите «s 1 ENTER», чтобы получить больше ударов в секунду. :-)

Время вечеринок!!! \ О /


Это чистый гений ...: D
Mega Man

3

> <> 3

Как и во всех ответах, печатает звонок (0x07) на стандартный вывод.

7o;

3

Tcl, 1 символ

-

заменить -на колокольчик
Он напечатает символ колокола как часть сообщения об ошибке. Дважды.

И если вы считаете, что это недопустимая программа, добавьте ее перед символом звонка:

proc \007 {} {};

Это действительная программа, я просто не определил команду, потому что мне нравится сообщение об ошибке.


Это основано на какой-то функции Tcl 8.6? В Tcl 8.5 я получил другой результат: pastebin.com/bh73UF6F Или вы на Windows?
manatwork

Нет. Вторая часть должна показать, что это действительный файл Tcl. И он должен подать звуковой сигнал 2 раза (сообщение об ошибке содержит команду, которая будет выполнена дважды). Вызов команды, которая не существует, не является ошибкой для Tcl, он только один, если он не может ее найти. (например parray, который загружается при первом использовании)
Йоханнес Кун

К сожалению. Я не так тебя поняла. Я думал, что вы имеете в виду, это procтоже должно звучать с декларацией. (Что касается количества puts [string repeat ".\a" 10]звуковых сигналов , вероятно, мой терминал что-то делает, поскольку отображает 10 точек, но издает только один раз.)
manatwork

3

С: 19

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

редактировать: заголовочный файл не нужен для «кладет»


2
Вы можете удалить пробел между #includeи <:)
tomsmeding

put (char *); main () {put ("\ a");} меньше ИМХО.
FUZxxl

Вы можете просто удалить #include.
Угорен

1
@FUZxxl Как вы можете иметь мнение о размере кода?
Дверная ручка

@DoorknobofSnow Из-за первой поправки?
FUZxxl

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.