Xây dựng tập lệnh để tạo Deep Note


11

Các THX lưu ý sâu là một trong những âm thanh dễ nhận biết nhất trong công nghệ sản xuất audio / video. Theo người tạo ra nó, phải mất khoảng 20.000 dòng mã C để tạo ra kết quả cuối cùng. Chúng ta có thể làm tốt hơn thế.

Nhiệm vụ của bạn là viết một tập lệnh bằng bất kỳ ngôn ngữ nào sẽ tạo ra âm thanh (thành tệp hoặc trực tiếp đến phần cứng) phù hợp với mô tả nhãn hiệu của âm thanh THX, do văn phòng Sáng chế và Nhãn hiệu Hoa Kỳ cung cấp :

Chủ đề logo THX bao gồm 30 giọng nói trong bảy biện pháp, bắt đầu trong phạm vi hẹp, 200 đến 400 Hz và từ từ chuyển hướng sang các nốt được chọn trước bao gồm ba quãng tám. 30 giọng nói bắt đầu ở các nốt trong khoảng 200 Hz đến 400 Hz và đến các nốt được chọn trước kéo dài ba quãng tám theo thước đo thứ tư. Âm cao nhất hơi bị lệch trong khi có gấp đôi số giọng của hai âm thấp nhất.

Lưu ý rằng "các nốt được chọn trước" phải gần giống với các nốt trong nốt sâu THX thực tế, nằm trong phím của E phẳng.

Mã ngắn nhất để làm như vậy trong bất kỳ ngôn ngữ nào sẽ thắng.


Xin vui lòng tránh Import[youtube]câu trả lời
Tiến sĩ belisarius

Để "tạo" âm thanh nói chung sẽ loại trừ việc nhập âm thanh được tạo trước từ nơi khác.
Joe Z.

3
Thông số kỹ thuật quá lỏng lẻo. Tôi tin rằng tôi có thể viết một chương trình có 30 dạng sóng (bất kỳ) bắt đầu ở tần số 250 Hz, phát trong một giây, chia thành ba nhóm, 250, 500 và 1000 Hz (ba quãng tám), phát trong một giây và kết thúc với việc kích nổ nhóm 1000 Hz. Việc chỉ định rằng nó phải "dễ nhận biết" sẽ làm cho tính khách quan của người chiến thắng trở thành một vấn đề. Tôi nghĩ rằng điều này sẽ làm việc tốt hơn như là một cuộc thi phổ biến.
shiona

Bây giờ tôi cũng đang nghĩ vậy, điều đó có nghĩa là tôi sẽ đăng phiên bản thứ hai của vấn đề này, đây là một cuộc thi phổ biến. (Thông số kỹ thuật lỏng lẻo nên thực hiện cho một số giải pháp ngắn thú vị, ít nhất.)
Joe Z.

2
Đã có một giải pháp 140 ký tự .
MSalters

Câu trả lời:


2

C, 323 byte

#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);}}

(trong số những người khác, các ký tự NUL không thể được dán trong hộp văn bản; bạn có thể xem hoặc tải xuống tệp gốc ở đây )

Sử dụng:

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

Nhấn vào đây để nghe bản xem trước của âm thanh được tạo ra!


cố gắng tốt, nhưng cuối cùng nghe có vẻ đơn giản hơn nhiều so với bản gốc
qwr

2
Tôi thực sự làm; bản gốc sử dụng 30 bộ dao động được điều khiển bởi 20000 dòng mã câu hỏi được đề cập trong câu hỏi. Mã nguồn tối giản này chứa ít hơn 400 byte ... Bạn cung cấp gì?
Mathieu Rodic

1
Điều này nghe có vẻ như Deep Note đã được truyền qua mã hóa MP3 200 bps được lấy mẫu ở tần số 1 kHz.
Joe Z.

Tuy nhiên, +1 cho thậm chí cố gắng trả lời câu hỏi này.
Joe Z.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.