音频编程语言提交!
输出b
以AIFF格式写入文件。Windows Media Player无法打开它,但是在VLC Media Player中可以正常工作。生成的文件a
是OSC文件。
c=0;d=0;f={c=c+d;d=0.2;[c,[\s_new,\w,1001,0,0,\freq,800]]};g={c=c+d;d=0.2;[c,[\n_free,1001]]};h={c=c+d;d=0.6;[c,[\s_new,\w,1001,0,0,\freq,800]]};i={c=c+d;d=0.6;[c,[\n_free,1001]]};x=[f.value,g.value,f.value,g.value,h.value,g.value,h.value,g.value,h.value,i.value,h.value,g.value,h.value,g.value,h.value,g.value,h.value,g.value,h.value,i.value,f.value,g.value,h.value,g.value,h.value,g.value,h.value,g.value,h.value,i.value,f.value,g.value,f.value,g.value,f.value,g.value,f.value,g.value,f.value,i.value];Score.recordNRT(x,"morse.osc","Morse2015.aiff");SynthDef("w",{arg freq=440;Out.ar(0,SinOsc.ar(freq,0,0.2))}).writeDefFile;
我创建了一些SuperCollider函数:f
生成一声短促的哔哔声,g
一小声中断,h
一声长哔声和一声i
长休。SuperCollider需要每个正弦波的起始位置而不是长度,因此我必须创建函数来生成具有正确起始位置的波,并且每次需要正弦波时都必须调用这些函数。(我无法将特定长度的wave存储在变量中以供重用)。该\w
定义在代码块的末尾创建。
在我的Windows计算机上,它没有将音频文件保存在与代码相同的目录中,而是保存在以下目录中:
C:\Users\MyName\AppData\Local\VirtualStore\Program Files (x86)\SuperCollider-3.6.6
结果托管在Dropbox上
带缩进的代码:
c = 0;
d = 0;
f = { c=c+d;d=0.2;[ c, [ \s_new, \w, 1001, 0, 0, \freq, 800 ] ] };
g = { c=c+d;d=0.2; [ c, [\n_free, 1001]] };
h = { c=c+d;d=0.6; [ c, [ \s_new, \w, 1001, 0, 0, \freq, 800]]};
i = { c=c+d;d=0.6;[ c, [\n_free, 1001]] };
x = [ f.value, g.value, f.value, g.value, h.value, g.value, h.value, g.value, h.value, i.value,
h.value, g.value, h.value, g.value, h.value, g.value, h.value, g.value, h.value, i.value,
f.value, g.value, h.value, g.value, h.value, g.value, h.value, g.value, h.value, i.value,
f.value, g.value, f.value, g.value, f.value, g.value, f.value, g.value, f.value, i.value
];
Score.recordNRT(x, "morse.osc", "Morse2015.aiff");
SynthDef("w",{ arg freq = 440;
Out.ar(0,
SinOsc.ar(freq, 0, 0.2)
)
}).writeDefFile;