메트로놈 만들기


36

소개

며칠 전에 나는 무언가를위한 메트로놈이 필요했습니다. 사용할 수있는 앱이 없어 App Store에서 앱을 다운로드했습니다. 앱의 크기는 71MB입니다 !!!
틱 토크 제작을위한 71MB ...?!
그래서 코드 골프가 마음에 들었고 여러분 중 일부가 이것을 향상시킬 수 있는지 궁금합니다.

도전

소리를내는 코드를 골라주세요. 어떤 종류의 소리와는 관련이 없습니다. 필요한 경우 일부 사운드 파일을 생성하지만 시스템 경고음도 작동합니다. ( 내가 만든 소리가 있습니다 ... 특별한 것은 없습니다. )

입력 : 메트로놈 출력의 분당 비트 수.

이것은 골프가 아닌 Java 버전입니다! 작업을 보여주기 위해서입니다.

public class Metronome {
  public static void main(String[] args) throws InterruptedException {
    int bpm = Integer.valueOf(args[0]);
    int interval = 60000 / bpm;

    while(true) {
        java.awt.Toolkit.getDefaultToolkit().beep();
        // or start playing the sound
        Thread.sleep(interval);
        System.out.println("Beep!");

    }
  }
}

규칙

외부 라이브러리를 사용할 수 없으며 언어 자체의 도구 만 허용됩니다.
소스 코드의 바이트 만 카운트됩니다 ... 사운드 파일은 아닙니다.

이것은 이므로 바이트 수가 가장 적은 제출이 승리합니다!

편집하다:

예 출력 : 이런 일이에 대한 출력 될 것이다 그래서 120 BPS : 링크


1
I / O에 대한 몇 가지 예를 추가 할 수 있습니까 (소리를 녹음하고 업로드하고 여기에 링크를 게시하십시오)?
애디슨 크럼

2
질문 : "외부 라이브러리"라고 말하면 언어로 제안 된 라이브러리가 포함됩니까? (이것을 사용하지는 않지만 Vitsy에 쉘이나 JS에 액세스 할 수있는 예제가 있지만 JS가 내장되어 있음)
Addison Crump

3
리더 보드 스 니펫 을 추가 할 수 있습니까 ?
애디슨 크럼

1
다운로드 한 앱의 대부분이 예쁜 그래픽과 사운드 효과라고 생각합니다. 마치 화면을 모두 흰색으로 돌리지 만 수십 MB를 계속 사용하는 손전등 앱과 같습니다.
Darrel Hoffman

1
정확성에 대한 요구 사항은 무엇입니까? 샘플에서 beep()콘솔 출력은 모두 IIRC와 정확히 일치하지 않습니다. sleep()정확한 꿀벌로 도 알려져 있지 않습니다 .
Num Lock

답변:


19

Mathematica, 26 바이트

Pause[Beep[];60/#]~Do~∞&

Do일반적으로 사용되는 좁은 의미에서 루프 "를"각 코드의이 부분을 반복 i에서 xy... 또는 단지 코드의 조각 반복 n번. 숫자 대신 n무한 루프를 만들 수 있지만 무한대를 줄 수 있습니다. 루프 본문은 Pause[Beep[];60/#]기입 단지 golfy 방법 인 기능 인자이다.Beep[];Pause[60/#]#

솔루션이 결국 호출 스택을 폭파시킬 수 있다면 재귀 솔루션으로 1 바이트를 절약 할 수 있습니다.

#0[Beep[];Pause[60/#];#]&

나는 그것이 ~Do~∞가능하다는 것을 몰랐다 . For루프는 29 바이트로 저를 얻었다. (또한 개인적으로 26 바이트 버전이 유일하게 유효한 것으로 생각합니다.)
LegionMammal978

@ LegionMammal978 불행히도 변수 ~Do~∞에서 올 때 작동하지 않는 것 같습니다 . (나는 당신의 진실 기계를 골프를 칠 때 그것을 사용해 보았습니다.)
Martin Ender

1
Attributes[Do]포함 HoldAll, 그래서 내 생각 엔 _~Do~∞특별한 평가 패턴이 있습니다.
LegionMammal978

@ LegionMammal978에 대한 오류 메시지가 있기 때문에 변수는, 더 많은 일 것 같아 Do[...,a]어디 a무한 보유가 실제로 전화를 보여줍니다 Do[...,{a}].
Martin Ender

14

Pyth, 11 10 9 바이트

에 대해 알려 주신 Adnan 에게 감사합니다 #.

#C7.dc60Q

영원히 ( #), Char 코드를 인쇄하십시오 7. 그런 다음 휴면 ( .d) 60초를 ( c) 입력 ( Q) 으로 나눈 값 입니다.


@Adnan 잊어 버렸습니다. 감사.
PurkkaKoodari

공간이 필요하십니까?
lirtosiast

@ThomasKwa 네. IIRC 7.는 숫자로 구문 분석됩니다.
Conor O'Brien

5
오. #pythnoob
코너 O'Brien

2
내가 시도했을 때 .d를 자지 못했습니다. 그것은 인쇄 유닉스 시간 유지
busukxuan

8

자바 스크립트, 36 45 42 41 34 바이트

@RikerW 덕분에 1 바이트 절약

@ETHproductions 덕분에 1 바이트 절약

n=>{for(;;sleep(60/n))print("\7")}

이것은 기능입니다.

를 사용 `\7`하면 SpiderMonkey가 8 진 리터럴이 더 이상 사용되지 않는다고 불평합니다.

대안, 31 바이트

n=>{for(;;sleep(60/n))print``}

문제는 인쇄 할 수없는 파일이 제거되었지만 작동하는 것입니다.


젠장, 난 그냥 이런 식으로 게시하려고했다. 다른 접근 방식을 사용하기 때문에 여전히 노드와 모두를 사용하기 때문에 게시 할 것입니다.
애디슨 크럼

내가 질문 한 방식에서 그것을 본다면 재귀 솔루션은 불가능합니다. 메트로놈은 작업과 작업을 위해 만들어졌으며 일정 시간이 지나면 충돌하지 않습니다.
PEAR

@PEAR 변수가 증가하지 않기 때문에 충돌이 발생하지 않습니다. 충돌을 일으킬 수있는 유일한 것은 내가 생각 걸릴 수도 최신 컴퓨터> 50-100년을 제외하고 터미널 버퍼입니다
Downgoat

어떤 환경에서 운영됩니까? chrome과 Node.js를 시도했지만 작동하지 않습니다.
starbeamrainbowlabs

@starbeamrainbowlabs 이것은 자바 스크립트 쉘 (SpiderMonkey)을 사용합니다
Downgoat

8

배쉬, 53 55 41 바이트

14 바이트 를 면도 해주신 @Dennis에게 감사 합니다 1

좋아, 진실 시간 : 나는 골프 배쉬에 끔찍하다. 어떤 도움이라도 대단히 감사하겠습니다.

echo " ";sleep `bc -l<<<60/$1`;exec $0 $1
      ^ That's ASCII char 7

신성 쓰레기 1 개 아무도 데니스를 능가 할 수 있습니다.


while 1가능?
PEAR

@PEAR Nupe-이미 시도했습니다.
Addison Crump

while printf \\a혹시?
Neil

bash가 정수 나누기를 사용하기 때문에 작동하지 않습니다. 을 사용해야 bc합니다.
스파게티

1. BEL 문자는 Bash에 특별하지 않으므로 따옴표가 필요하지 않습니다. 2. 입력을 CLA로 읽는 경우 필요하지 않습니다 read. 3. echo코드 0과 함께 존재하므로 대신 해당 명령문을 사용할 수 있습니다 true.
Dennis

7

자바 스크립트 ES6 (브라우저), 43 바이트

이것은 규칙을 확장시킬 수 있습니다.

x=>setInterval('new Audio(1).play()',6e4/x)

이 기능에 이름 (예 F=x=>...:)을 지정 하고이 페이지 의 브라우저 콘솔에 입력 하십시오 . 그런 다음 bps를 사용하여 함수를 호출하고 F(60)마술이 일어날 때까지 기다리십시오. :-)

왜 이것이 작동합니까? 음, OP의 샘플 사운드 파일 인 b.html이라는 파일과 같은 폴더에 1있습니다. 이것이 규칙 내에 있는지 확실하지 않습니다 (쉘 버전과 비슷하다고 생각합니다. 특정 환경에서 실행해야합니다).

보다 안전한 버전, 57 바이트

위의 코드가 어떤 이유로 든 허용되지 않으면 대신 다음을 시도하십시오.

x=>setInterval('new Audio("//ow.ly/Xrnl1").play()',6e4/x)

모든 페이지에서 작동합니다!


이것은 흥미로운 솔루션입니다. 파일을 다운로드하고 이름을 바꿀 때 더 짧습니다.
PEAR

@PEAR 짧아 지지만 실행하려면 동일한 폴더에 사운드 파일이있는 자체 웹 페이지가 필요합니다.
ETHproductions

아, JavaScript xD ... 맞아요
PEAR

@PEAR 거기, 내가 해냈어. 이 새로운 솔루션이 규칙 내에 있습니까?
ETHproductions

허. 특정 웹 페이지에서 JS임을 지정할 수 있습니다. 기존의 통역사이므로 유효한 언어입니다.
애디슨 크럼

6

05AB1E , 31 바이트

암호:

I60s/[7ç?D.etime.sleep(#.pop())

N 초 동안 대기하는 내장 기능이 있으면 11 바이트 일 수 있습니다. 불행히도, 그렇지 않습니다. 설명은 다음과 같습니다.

I                               # Push input
 60                             # Push 60
   s                            # Swap the top 2 items
    /                           # Divide the top 2 items
     [                          # Infinite loop
      7ç                        # Push the character \x07
        ?                       # Output it, which give a sound
         .e                     # Evaluate the following as Python code
           time.sleep(       )  # Wait for N seconds
                      #         # Short for stack
                       .pop()   # Pop the last item

ISO 8859-1 인코딩을 사용합니다.


이 첫 번째 05AB1E 답변 중 하나는이를 보는 것은 매우 이상한 보이는 o.Ô해야 time.sleep하고 .pop()그런 코드의 중간에. ;)
Kevin Cruijssen

6

osascript, 39 바이트

on run a
repeat
beep
delay 60/a
end
end

말 그대로 beep라는 명령이 있습니까? eeee!

제한된 라이센스로 인해 Mac OS X에서만 실행 가능하지만 실행하려면 다음을 수행하십시오.

osascript -e "on run a
repeat
beep
delay 60/a
end
end" bpm

6

파이썬, 68 67 57 바이트

@FlagAsSpam 덕분에 1 바이트 절약

@Adnan 덕분에 9 바이트 절약

import time
a=input()
while 1:print"\7";time.sleep(60./a)

또한 줄 끝을 UNIX 형식으로 변환 한 후 2 바이트가 덜 걸렸습니다.

이전 버전에서는 실제로 bpm을 명령 줄 인수 (66 바이트)로 사용합니다.

import sys,time
while 1:print"\7";time.sleep(60./int(sys.argv[1]))

4
당신은 할 수 print"\7";없습니까? 확실하지 않지만 작동한다고 확신합니다.
애디슨 크럼

@Andan 아니오, input ()은 사용자에게 입력을 요청합니다. 그것이 유효한 입력으로 간주되는지 모르겠습니다. 어쨌든 숫자로의 변환도 필요합니다.
webwarrior

1
어떻 a=input()a교체 int(sys.argv[1])? 필자는 항상 Python 2가 입력을 자동으로 평가하므로 int 변환이 필요하지 않다고 생각했지만 잘못되었을 수 있습니다.
Adnan

@Andan은 input()실제로 자동 평가를 수행합니다. 그 기능을 잊어 버렸습니다. 그것은 오히려 비유 론적입니다-아마도 옛날의 유산 일 것입니다.
webwarrior

완전히 제거하면서 time.sleep(60./a)으로 교체 할 수 있습니까 ? time.sleep(60./input())a=input()
박수


4

Vitsy, 14 바이트

a6*r/V1m
<wVO7

상세 모드 (인터프리터 예정) :

0:                              // a6*r/V1m
push a; // 10
push 6;
multiply top two; // 60
reverse stack; // bpm on top
divide top two; // bpm/60
save/push permanent variable; 
push 1;
goto top method; // goes to 1
1:                              // <wVO7
go backward; // infinite loop, from the bottom of 1
wait top seconds;
save/push permanent variable; // pushes the bpm in terms of seconds of delay
output top as character;
push 7;

기본적으로 w연산자를 사용하여 bpm/60무한 루프에 싸여 지정된 초 수만큼 기다립니다 . 그런 다음 ASCII 문자 7 ( BEL) 의 터미널 출력으로 노이즈를 발생시킵니다 .


멋져 보이지만 어떻게 테스트 할 수 있습니까? :)
PEAR

@PEAR 통역사 를 다운로드 해야합니다 (제목에 링크하지 않은 경우). 파일로 저장하고로 실행하십시오 java -jar Vitsy.jar <filename>.
애디슨 크럼

4

C #, 118 바이트

class A{static int Main(string[]a){for(;;System.Threading.Thread.Sleep(60000/int.Parse(a[0])))System.Console.Beep();}}

기본 솔루션.


ASCII 문자 7을 인쇄하지 않는 이유는 무엇입니까?
애디슨 크럼

@FlagAsSpam 더 길다 : 시스템 경고음은을 사용 System.Console.Beep();하고 문자 인쇄는을 사용합니다 System.Console.Write('<\a character>');.
LegionMammal978

우와 그것은 문자를 많이 쓰는 것입니다.
애디슨 크럼

4

자바, 103 82 바이트

21 바이트를 줄인 @Justin에게 감사드립니다!

오 이런

void x(int b)throws Exception{for(;;Thread.sleep(60000/b))System.out.print('\7');}

샘플 프로그램의 방법 및 골프 버전.


System.out.print('\7');대신에 java.awt.Toolkit.getDefaultToolkit().beep();?
저스틴

@Justin \은 정규식 문자를 이스케이프 처리하기위한 것입니다.
애디슨 크럼

1
백 슬래시는 이스케이프 시퀀스가 ​​아닙니다. '\7'벨 문자는 인쇄 될 때 소리를냅니다
Justin

@ 주 스틴 허. 나는 항상 큰 따옴표를 사용할 때 그것에 오류가 발생했습니다. 내 실수. 감사! : D
Addison Crump

3

GMC-4 머신 코드, 21.5 바이트

GMC-4는 Gakken이라는 회사에서 제공하는 4 비트 컴퓨터로 간단한 명령어 세트와 컴퓨터에서 어셈블리 언어의 원리를 가르칩니다. 이 루틴은 빅 엔디안 10 진수 (즉, 니블 당 1 자리)로를 0x5D통해 데이터 메모리 주소 를 입력합니다 0x5F.

이 알고리즘은 기본적으로 입력을 메모리에 추가하고 최소 600이 될 때까지 0.1을 기다린 다음 무한 루프에서 600을 빼고 신호음을 울립니다. GMC-4에는 많은 레지스터 스왑 기능이 있지만 레지스터 복사 기능은 없기 때문에 어려운 방법입니다.

16 진수 (두 번째 줄은 메모리에 위치) :

A24A14A04 80EC AF5A2EF AE5A1EF AD5A0EF 8A6 F2AF09 86ADEEE9F09
012345678 9ABC DEF0123 4567890 ABCDEF0 123 456789 ABCDEF01234

조립시 :

    tiy 2     ;ld y, 0x2
    AM        ;ld a, [0x50 + y]
    tiy 1
    AM
    tiy 0
    AM
start:
    tia 0     ;ld a, 0x0
    cal timr  ;pause for (a+1)*0.1 seconds
    tiy F
    MA        ;ld [0x50 + y], a
    tiy 2
    cal DEM+  ;add a to [0x50 + y]; convert to decimal and carry.
    tiy E     ;do the same for the second digit
    MA
    tiy 1
    cal DEM+
    tiy D     ;and the third.
    MA
    tiy 0
    cal DEM+
    tia A
    M+
    jump beep
    jump start
beep:
    tia 6
    tiy D
    cal DEM-
    cal SHTS  ;'play short sound'
    jump start

기권:

나는 실제로 GMC-4를 소유하지 않는다. 이 프로그램을 온라인의 문서로 꼼꼼하게 확인했지만 실수했을 수 있습니다. 나는 또한 엔디안을 모른다. GMC-4가 빅 엔디안 인 것처럼 보이지만 확실하지 않습니다. 누구나 GMC-4를 소유하고 있으며 GMC-4의 엔디안을 확인 / 확인할 수 있다면 대단히 감사하겠습니다.


3

C, 48 바이트

void f(int b){while(printf(""))Sleep(60000/b);}
                            ^ literal 0x07 here

Windows 전용 솔루션 (Sleep () 함수)

또한 (ab) printf ()는 무한 루프 조건으로 사용하기 위해 인쇄 된 문자 수를 반환한다는 사실을 사용했습니다.

printf () 호출에서 큰 따옴표 사이에 문자가 있지만 어떤 이유로 여기에 표시되지 않습니다. 의심스러운 경우 Sublime Text 2 또는 Notepad ++에 복사하여 붙여 넣으면 문자가로 표시됩니다 BEL.

이것은 C ++ 솔루션으로 시작하지만 좀 C의 C-부분 집합으로 떨어졌다 ++ (당신이 알고 있기 때문에하는 것은 Sleep()조금보다 짧은 std::this_thread::sleep_for(std::chrono::milliseconds())등) printf()보다는 짧은 std::cout<<).


3

AppleScript 94 바이트

나는 내가 꽤 늦었다는 것을 알고있다. 그리고 이것은 나의 첫번째 포스트 다. 그러나 무엇이든.

디스플레이 대화창 ""기본 답변 ""
x를 60000으로 설정 / 결과 텍스트 반환
반복
삑 하는 소리
지연 x
종료

언 골프 드 :

디스플레이 대화 상자 ""기본 답변 ""
x를 60000으로 설정 / (결과 텍스트 반환)
반복
    삑 하는 소리
    지연 x
끝 반복

이봐, 새로운 답변 :) 불행히도 나는 Mac이 없다면 당신의 게시물을 시험해 볼 수 없습니다;)-그러나 감사합니다
PEAR

@PEAR 천만에요. :)
당신은

프로그래밍 퍼즐과 코드 골프에 오신 것을 환영합니다. 좋은 대답입니다, +1 계속 답하십시오!
wizzwizz4

2

VBScript, 113 66 바이트

a=InputBox("")
Do
WScript.Echo(Chr(7))
WScript.Sleep(60000/a)
Loop

이 프로그램은 충분히 간단합니다. 입력을 받고 BEL 문자를 반향하고 기다립니다. 프로그램의 거의 절반을 면도 해주신 Niel에게 감사드립니다!


무슨 일이야 WScript.Echo CHR(7)? 또한, 당신은 의미 60000했습니까?
Neil

@ 닐 아, 예. 그것들을 잊었다.;
Conor O'Brien

2

루비, 37 33 바이트

m=->b{loop{puts"\7"
sleep 6e1/b}}

꽤 직설적 인.

이것은 람다 함수입니다. 60bpm을 원하면 다음을 수행하십시오 m[60]..


이론적으로 $><<?\a경고음도 작동해야합니다. 그리고 proc의 이름을 지정할 필요가 없습니다 (뚱뚱한 화살표 기능을 가진 모든 JavaScript 솔루션도 할당되지 않은 채로 둡니다) ->b{loop{$><<?\a;sleep 6e1/b}}[60]. 익명으로도 호출 할 수 있습니다 .
manatwork

@manatwork 루비 2.x 만 가지고 있으므로 테스트 할 수 없습니다 ?\a. Ruby 1.x가 있습니까? 그렇다면 이것이 작동하는지 테스트 할 수 있습니까?
Justin

글쎄, 나는 Ruby 1.9.3을 가지고 있으며 코드는 오류가 발생하지 않습니다. 그러나 테스트에 또 다른 문제가 있습니다. 시스템에서 경고음이 들리지 않습니다. 루비 나 다른 것도 없습니다. 무엇을 한 번만 설정하십시오.
manatwork

2

apt, 30 바이트

6e4/U i`?w Au¹o('../1').play()

?문자 그대로 바이트해야한다 9A. 온라인으로 테스트하십시오! (처음 몇 비트를 지연시키는 팝업이 유감입니다. 곧 제거 될 예정입니다.)

작동 원리

6e4/U i"new Audio('../1').play()  // Implicit: U = input bps
6e4/U                             // Calculate 60000 / U.
      i                           // Set a timed event every that many milliseconds,
       "new Audio('../1').play()  // running this code every time.
                                  // ../1 is the path to the file used in my JS entry.

2

볼거리, 18 바이트

R I F  H 60/I W *7

BPM을 변수 I로 읽은 후 F {다음에 두 공백 사용}는 무한 루프입니다. 60 초 / BPM 동안 정지 한 다음 $ CHR (7) {Ascii : BEL}을 표준 출력에 기록하여 필요한 오디오 출력을 제공 한 다음 무한 루프에서 다시 시작하십시오.


2

자바, 321 자

아주 좋은 데요 MIDI를 지원하는 시스템에서만 작동합니다.

import javax.sound.midi.*;import java.util.*;class A{public static void main(String[] a) throws Exception{int d=new Scanner(System.in).nextInt();Synthesizer b=MidiSystem.getSynthesizer();b.open();MidiChannel c=b.getChannels()[0];c.programChange(116);while(true){c.noteOn(0,100);Thread.sleep((int)(d/.06));c.noteOff(0);}}}

.


외모의 좋은,하지만 이것은 나를 위해 작동하지 않습니다 : pastebin.com/0CbGYkU0
PEAR

@PEAR가 수정되었습니다. 나는 캐스트를 잊었다.
username.ak

@PEAR and import
username.ak

@PEAR, 소리가 나지 않아 일부 작전을 교환했습니다
username.ak

2

ChucK , 90 바이트

두 틱마다 켜고 끄는 화이트 노이즈.

60./Std.atoi(me.arg(0))*1000=>float s;while(1){Noise b=>dac;s::ms=>now;b=<dac;s::ms=>now;}

설명

60./Std.atoi(me.arg(0)) //Convert the input to an int and divide 60 by it
*1000                   //Multiply by 1000 (in order to avoid s::second)
=>float s;              //Store it as a float in variable s
while(1)                //Forever,
{Noise b=>dac;          //Connect a noise generator b to the audio output
s::ms=>now;             //Wait for s milliseconds
b=<dac;                 //Disconnect b from the audio output
s::ms=>now;}            //Wait for s milliseconds

비트에서 사운드를 켠 다음 비트에서 끄도록 설정됩니다.

98 93 바이트 버전 (fancier)

화이트 노이즈가 틱당 10 밀리 초 동안 재생되었습니다.

60./Std.atoi(me.arg(0))*1000-9=>float s;while(1){Noise b=>dac;10::ms=>now;b=<dac;s::ms=>now;}

이것은 일정한 소음을 켜고 끄는 대신 클릭으로 만들어졌습니다.


2

펄 5, 36 바이트

{{$|=print"\a";sleep 60/$_[0];redo}}

서브 루틴; 로 사용

sub{{$|=print"\a";sleep 60/$_[0];redo}}->(21)

sleep초 단위이므로 분당 60 회 이상 경고음을 울릴 수 없습니다 (필요한지 확실하지 않음). 또한 동일한 바이트 수를 유지할 수는 있지만 다음과 같은 작업을 수행하여 전체 프로그램을 가질 $|=<>;{print"\a";sleep 60/$|;redo}수 있습니다 (지금은 테스트 할 수 없음).
ChatterOne

문서에 따르면 @ChatterOne이 맞습니다 sleep. 그러나 그것은 나를 위해 일했습니다.
msh210

1

Jolf, 7 바이트, 비경쟁

이 매우 훌륭한 도전을 한 후에 소리를 추가했습니다.

TΑa/Αaj
T       set an interval
 Αa      that plays a short beep (Α is Alpha)
   /Αaj  every 60000 / j (the input) seconds. (Αa returns 60000)

이 소리를 지우려면 출력에주의하십시오. 그 숫자가이라고 가정하십시오 x. 다른 Jolf 명령을 실행 ~CP"x"하면 간격이 지워집니다.


1

Zsh , 32 바이트

<<<$'\a'
sleep $[60./$1]
. $0 $1

선행 bash 답변을 기반으로하지만 sources 대신 execs를 사용합니다. $0:a원본 파일이 실행되는 방식으로 인해 TIO 링크 소스 가 있지만 파일이 없으면 작동합니다.

온라인으로 사용해보십시오!


당신은 파티에 늦었지만 이것은 정말 훌륭한 해결책처럼 보입니다!
PEAR

나는 늦었다는 것을 알고있다. 그러나 나는 오늘 골프와 같은 느낌이 들었다. 재미를 위해 음악 태그를 확인하기로 결정 하고이 도전을 발견했습니다. 좋은 하나, btw!
GammaFunction

0

Bash + bc + > <> , 44 바이트

> <> 인터프리터를 사용하면 틱 시간을 정의 할 수 있습니다.

python fish.py -t $(bc -l<<<"2/$1/60") -c 7o

> <> 코드는 문자를 7o출력 BEL하며 시스템 경고음을 발생시킵니다. 중단 될 때까지 반복됩니다.
-t값은 (2 / RPM) / 60으로 설정되어 전체 코드가 RPM * 초당 60 회 재생됩니다.


게시 후 일정 시간이 지난 후 새로운 답변을 보내 주셔서 감사합니다. 작동하지 않습니다 :( 시스템 또는 다른 문제가 있는지 확실하지 않습니다. GitHub에서 fish.py를 다운로드하여 commad (openSUSE)를 실행했습니다.이 오류가 발생했습니다 : (standard_in) 1 : 구문 오류 사용법 : fish .py [-h] (<스크립트 파일> | -c <code>) [<options>] fish.py : 오류 : argument -t /-tick : 하나의 인수가 예상 됨
PEAR

당신이 가지고 bc설치되어 있습니까? $(bc -l<<<"2/$1/60")출력을 생성하지 않은 것 같습니다 . 대답의 언어 목록에 추가하겠습니다. 아직 답변을 완전히 테스트 할 수 없었기 때문에 어떤 종류의 오류도있을 수 있습니다.
Aaron

0

SmileBASIC, 26 바이트

INPUT B$BGMPLAY@8T+B$+"[C]

9 개 이상이면 더 많은 바이트를 사용하지만 모든 일반 미디 악기를 재생할 수 있습니다.


0

Stax, 17 바이트

ü7»♥O╚⌂╥☻≈OyM╜Δ∩`

또는 포장 풀기 :

4|A48*x/W2|A]pc{| }*

프로그램은 명령 행 도구를 통해 기본 설정으로 재생 될 때 메트로놈 노이즈를 생성하는 바이트를 출력합니다. 입력은 bpm으로 사용됩니다

예:

example-stax-interpreter metronome.stax -i "60" | aplay

원하는 bpm에서 끔찍한 경고음이 들립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.