生成脚本以生成Deep Note


11

THX深沉的音符在音频/视频制作技术的最知名的声音之一。根据其创建者的说法,大约需要20,000行C代码来生成最终结果。我们可以做得更好。

您的任务是用任何一种语言编写脚本,该脚本将产生适合THX声音商标描述的声音(到文件或直接到硬件),如美国专利商标局提供的那样

THX徽标主题由七个小节中的30种声音组成,从200到400 Hz的狭窄范围开始,然后逐渐转移到涵盖三个八度的预选音高。这30个声音以200 Hz至400 Hz之间的音高开始,到第四小节达到跨越三个八度音阶的预选音高。最高音调略有失谐,而最低两个音调的声音数量是原来的两倍。

请注意,“预选音高”必须与实际的THX深音符中的音高大致相同,该音高在E平键中。

以任何语言进行的最短代码都会胜出。


请避免Import[youtube]回答
belisarius博士2013年

“生成”声音通常会阻止从其他位置导入预生成的声音。
Joe Z.

3
规格太宽松。我相信我可以编写一个程序,该程序具有以250 Hz开始的30个波形(任何),播放一秒钟,分成250、500和1000 Hz(三个八度)三组,播放一秒钟然后结束使1000 Hz组失谐。指定它应该是“可识别的”将使获胜者的客观性成为一个问题。我认为这可以作为人气竞赛的更好选择。
shiona 2013年

我现在也在想,这意味着我将发布此问题的第二个版本,而不是普及竞赛。(宽松的规范至少应该提供一些有趣的短期解决方案。)
Joe Z.

2
已经有140个字符的解决方案。
MSalters 2014年

Answers:


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

单击此处收听生成的声音的预览!


很好的尝试,但最终听起来比原始版本
大为

2
我确实做到了;原来使用30个由20000行代码控制的振荡器,该问题在问题中涉及。这个简约的源代码包含少于400个字节...您提供什么?
Mathieu Rodic'3

1
这听起来像Deep Note通过了以1 kHz采样的200 bps MP3编码传递。
Joe Z.

尽管如此,即使尝试回答这个问题也要+1。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.