Buat skrip untuk menghasilkan Deep Note

11

The THX catatan yang mendalam adalah salah satu suara yang paling dikenal dalam teknologi produksi / audio video. Menurut penciptanya, butuh sekitar 20.000 baris kode C untuk menghasilkan hasil akhir. Kita bisa melakukan lebih baik dari itu.

Tugas Anda adalah menulis skrip dalam bahasa apa pun yang akan menghasilkan suara (ke file atau langsung ke perangkat keras) yang sesuai dengan deskripsi merek dagang dari suara THX, sebagaimana disediakan oleh kantor US Patent and Trademark :

Tema logo THX terdiri dari 30 suara lebih dari tujuh ukuran, mulai dari kisaran sempit, 200 hingga 400 Hz, dan perlahan-lahan beralih ke nada yang sudah dipilih sebelumnya yang mencakup tiga oktaf. 30 suara dimulai di nada antara 200 Hz dan 400 Hz dan tiba di nada yang dipilih sebelumnya yang mencakup tiga oktaf dengan ukuran keempat. Pitch tertinggi sedikit dicegah sementara ada dua kali lipat jumlah suara dari dua pitch terendah.

Perhatikan bahwa "pitch yang dipilih sebelumnya" harus kira-kira sama dengan pitch dalam nada mendalam THX yang sebenarnya, yang merupakan kunci flat E.

Kode terpendek untuk melakukannya dalam bahasa apa pun menang.

Joe Z.
sumber
Harap hindari Import[youtube]jawaban
Dr. belisarius
Untuk "menghasilkan" suara biasanya tidak akan mengimpor suara pra-dibuat dari tempat lain.
Joe Z.
3
Speknya terlalu longgar. Saya percaya saya dapat menulis sebuah program yang memiliki 30 bentuk gelombang (apa saja) yang dimulai pada 250 Hz, memainkannya selama satu detik, membaginya menjadi tiga kelompok, 250, 500 dan 1000 Hz (tiga oktaf), memainkannya untuk yang kedua dan berakhir dengan detuning grup 1000 Hz. Menentukan bahwa itu harus "dikenali" akan membuat objektivitas pemenang menjadi masalah. Saya pikir ini akan bekerja lebih baik sebagai kontes popularitas.
shiona
Saya juga berpikir begitu sekarang, yang berarti saya akan memposting versi kedua dari masalah ini yang merupakan kontes popularitas. (Spek longgar harus membuat beberapa solusi pendek yang menarik, setidaknya.)
Joe Z.
2
Sudah ada solusi 140 karakter .
MSalters

Jawaban:

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

(antara lain, karakter NUL tidak dapat ditempelkan di kotak teks; Anda dapat melihat atau mengunduh file asli di sini )

Pemakaian:

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

Klik di sini untuk mendengarkan pratinjau suara yang dihasilkan!

Mathieu Rodic
sumber
Selamat
2
Memang saya lakukan; aslinya menggunakan 30 osilator yang dikendalikan oleh 20.000 baris kode, pertanyaan yang disebutkan dalam pertanyaan. Kode sumber minimalis ini mengandung kurang dari 400 byte ... Apa yang Anda tawarkan?
Mathieu Rodic
1
Yang ini terdengar seperti Deep Note yang berhasil melewati encoding MP3 200 bps yang disampel pada 1 kHz.
Joe Z.
Namun, +1 bahkan untuk mencoba menjawab pertanyaan ini.
Joe Z.