สร้างสคริปต์เพื่อสร้าง Deep Note


11

THX ทราบลึกเป็นหนึ่งในเสียงที่รู้จักมากที่สุดในเทคโนโลยีการผลิตเสียง / วิดีโอ ตามผู้สร้างมันใช้รหัส Cประมาณ20,000 บรรทัดเพื่อสร้างผลลัพธ์สุดท้าย เราทำได้ดีกว่านั้น

งานของคุณคือการเขียนสคริปต์ในภาษาใด ๆ ที่จะสร้างเสียง (ไปยังไฟล์หรือไปยังฮาร์ดแวร์โดยตรง) ที่เหมาะกับคำอธิบายเครื่องหมายการค้าของเสียง THX ซึ่งจัดทำโดยสำนักงานสิทธิบัตรและเครื่องหมายการค้าของสหรัฐอเมริกา :

ชุดรูปแบบโลโก้ THX ประกอบด้วย 30 เสียงในเจ็ดมาตรการเริ่มต้นในช่วงแคบ ๆ 200 ถึง 400 Hz และค่อย ๆ เบี่ยงไปที่สนามที่เลือกไว้ล่วงหน้าซึ่งครอบคลุมสามอ็อกเทฟ 30 เสียงเริ่มต้นที่ระดับเสียงระหว่าง 200 Hz ถึง 400 Hz และมาถึงระดับเสียงที่เลือกไว้ล่วงหน้าซึ่งประกอบไปด้วยสามอ็อกเทฟโดยการวัดที่สี่ ระดับเสียงสูงที่สุดจะถูกลดทอนเล็กน้อยในขณะที่มีจำนวนเสียงสองเสียงในระดับต่ำสุดสองเท่า

โปรดทราบว่า "สนามที่เลือกไว้ล่วงหน้า" จะต้องเหมือนกับสนามในโน้ต THX จริงซึ่งอยู่ในคีย์ของ E Flat

รหัสที่สั้นที่สุดที่จะทำในภาษาใดก็ได้ชนะ


โปรดหลีกเลี่ยงImport[youtube]คำตอบ
Dr. belisarius

หากต้องการ "สร้าง" เสียงโดยทั่วไปจะขัดขวางการนำเข้าเสียงที่สร้างไว้ล่วงหน้าจากที่อื่น
Joe Z.

3
สเป็คหลวมเกินไป ฉันเชื่อว่าฉันสามารถเขียนโปรแกรมที่มีรูปคลื่น 30 รูป (มี) ที่เริ่มต้นที่ 250 เฮิร์ตเล่นเป็นวินาทีแยกเป็นสามกลุ่ม 250, 500 และ 1,000 เฮิร์ต (สามอ็อกเทฟ) เล่นที่สองและจบ ด้วย detuning กลุ่ม 1000 Hz การระบุว่าควร "จดจำ" จะทำให้ความเป็นกลางของผู้ชนะเป็นปัญหา ฉันคิดว่ามันจะทำงานได้ดีขึ้นในฐานะการประกวดความนิยม
shiona

ฉันกำลังคิดอย่างนั้นตอนนี้ซึ่งหมายความว่าฉันจะโพสต์ปัญหาที่สองซึ่งเป็นการประกวดความนิยมแทน (สเป็คหลวมควรทำเพื่อแก้ปัญหาสั้น ๆ ที่น่าสนใจอย่างน้อย)
Joe 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
ฉันทำอย่างแน่นอน; เดิมใช้ออสซิลเลเตอร์ 30 ตัวควบคุมโดยรหัส 20,000 บรรทัดคำถามที่อ้างถึงในคำถาม รหัสแหล่ง minimalist นี้มีน้อยกว่า 400 ไบต์ ... คุณมีอะไรให้
Mathieu Rodic

1
อันนี้ฟังดูเหมือน Deep Note ผ่านการเข้ารหัส MP3 200 bps ที่ตัวอย่างที่ 1 kHz
Joe Z.

ถึงกระนั้น +1 ก็ยังพยายามตอบคำถามนี้
Joe Z.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.