Deep Note를 생성하는 스크립트 작성


11

THX 깊은 노트는 오디오 / 비디오 생산 기술에서 가장 인식 할 수있는 소리 중 하나입니다. 작성자에 따르면 최종 결과를 생성하는 데 약 20,000 줄의 C 코드가 필요 했습니다. 우리는 그보다 더 잘할 수 있습니다.

귀하의 임무는 미국 특허청에서 제공하는 THX 사운드의 상표 설명에 맞는 사운드 (파일 또는 하드웨어에 직접)를 생성하는 모든 언어로 스크립트를 작성하는 것입니다 .

THX 로고 테마는 200 ~ 400Hz의 좁은 범위에서 시작하여 3 옥타브를 포함하는 미리 선택된 음정으로 천천히 전환되는 7 가지 소절에 대한 30 가지 음색으로 구성됩니다. 30 가지 음색은 200Hz와 400Hz 사이의 피치에서 시작하여 네 번째 소절로 3 옥타브에 걸쳐 미리 선택된 피치에 도달합니다. 가장 높은 피치는 약간 디튠 된 반면 가장 낮은 두 피치의 음색 수는 두 배입니다.

"미리 선택된 피치"는 E 플랫 키에있는 실제 THX 딥 노트의 피치와 대략 동일해야합니다.

어떤 언어로든 가장 짧은 코드가 승리합니다.


Import[youtube]답변을 피하십시오
Dr. belisarius

사운드를 "생성"하는 것은 일반적으로 미리 생성 된 사운드를 다른 곳에서 가져 오는 것을 금지합니다.
Joe Z.

3
사양이 너무 느슨합니다. 나는 250Hz에서 시작하는 30 개의 파형 (모든)을 가지고 1 초 동안 재생하고 250, 500 및 1000 Hz (3 옥타브)의 3 개 그룹으로 나누고 1 초 동안 재생하고 끝내는 프로그램을 작성할 수 있다고 생각합니다. 1000Hz 그룹을 디튠합니다. "인식 가능"하도록 지정하면 승자의 객관성이 문제가됩니다. 나는 이것이 인기 콘테스트로 더 잘 작동 할 것이라고 생각합니다.
shiona

나는 지금 너무 생각하고 있는데, 이는 인기 콘테스트 인이 문제의 두 번째 버전을 게시한다는 의미입니다. (느슨한 사양은 적어도 몇 가지 흥미로운 짧은 솔루션을해야한다.)
조 Z.에게

2
이미 140 자 솔루션이 있습니다.
MSalters

답변:


2

C, 323 바이트

#include<math.h>
#define A y=-2*y*y*y+3*y*y
main(i,j,o,e){e=44100;write(1,"RIFF´9WAVEfmt      D¬  ±    data9",44);float r[30],x,y,k,v;for(i=0;i++<30;r[i]=.5-(9*i%7)/7.);for(i=0;i++<9*e;){x=2.*M_PI*i/(0.+e),k=y=1-i/(8.*e),v=0,A,A,A,y=y>1?1:y;for(j=0;j++<30;o=j%6,v+=(7-o)*.1*sin(x*(20<<o)*(1+y*r[j])));write(1,&v,4);}}

(다른 것들 중에서도 NUL 문자를 텍스트 상자에 붙여 넣을 수 없었습니다. 여기에서 원본 파일을 보거나 다운로드 할 수 있습니다 )

용법:

gcc deep-note.c -o deep-note
./deep-note > deep-note.wav

생성 된 사운드의 미리보기를 들으려면 여기를 클릭하십시오!


좋은 시도, 그러나 그것은 원래보다 크게 단순화 된 소리로 끝납니다
qwr

2
나는 정말로한다. 원래는 질문에서 언급 된 문제의 20000 코드 라인에 의해 제어되는 30 개의 발진기를 사용합니다. 이 미니멀리즘 소스 코드에는 400 바이트 미만이 포함되어 있습니다. 무엇을 제공합니까?
Mathieu Rodic

1
이 음은 Deep Note가 1kHz로 샘플링 된 200bps MP3 인코딩을 통과 한 것처럼 들립니다.
Joe Z.

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