Створіть сценарій для створення глибокої ноти


11

THX глибока нота є одним із найбільш упізнаваних звуків в аудіо технології виробництва / відео. За словами його творця, для отримання кінцевого результату знадобилося близько 20 000 рядків коду С. Ми можемо зробити краще, ніж це.

Ваше завдання полягає в тому, щоб написати сценарій будь-якою мовою, яка створюватиме звук (у файл або безпосередньо на апаратному забезпеченні), який відповідає опису торговельної марки звуку THX, як це передбачено офісом США з патентів та товарних знаків :

Тема логотипу THX складається з 30 голосів за сім заходів, починаючи з вузького діапазону, від 200 до 400 Гц, і повільно перемикаючись на попередньо вибрані смоли, що містять три октави. 30 голосів починаються на частотах від 200 Гц до 400 Гц і надходять до попередньо вибраних смол, що охоплюють три октави четвертою мірою. Найвищий крок трохи знижується, тоді як удвічі більше голосів найнижчих двох тонів.

Зауважте, що "попередньо вибрані смоли" повинні бути приблизно такими ж, як і у фактичній глибокій примітці THX, яка знаходиться в ключі E плоскою.

Виграє найкоротший код для будь-якої мови.


Будь ласка, уникайте Import[youtube]відповідей
доктор belisarius

"Генерування" звуку, як правило, не дозволяє імпортувати попередньо генерований звук з інших місць.
Джо З.

3
Специфікація занадто вільна. Я вважаю, що міг би написати програму, яка має 30 форм хвилі (будь-яку), що починаються з 250 Гц, грати на секунду, розділити на три групи, 250, 500 та 1000 Гц (три октави), грати на цю секунду і закінчувати з відривом групи 1000 Гц. Визначення того, що воно повинно бути "впізнаваним", зробить об'єктивність переможця проблемою. Я думаю, що це буде краще працювати як конкурс на популярність.
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
Я справді; в оригіналі використовується 30 осциляторів, керованих 20000 рядками коду питання, про яке йдеться в питанні. Цей мінімалістичний вихідний код містить менше 400 байт ... Що ви пропонуєте?
Матьє Родік

1
Це звучить так, як "Глибока нота" пройшла через кодування MP3 у 200 к / с, відібрана на частоті 1 кГц.
Джо З.

Але +1, навіть намагаючись відповісти на це запитання.
Джо З.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.