密度的峰谷
途经一个媒介密度的峰谷:这是声音的本性。声音或震动可以在任何材料上发生。震动是材料交互的压缩和解压缩:就像池塘表面的涟漪。峰意味着更高的密度,谷则是更低的密度。当声音被生成(假设从一个扬声器),前移的动作创造波峰,后退的动作创造波谷。前移压缩空气,后退解压之。
途经一个媒介密度的峰谷:这是声音的本性。声音或震动可以在任何材料上发生。震动是材料交互的压缩和解压缩:就像池塘表面的涟漪。峰意味着更高的密度,谷则是更低的密度。当声音被生成(假设从一个扬声器),前移的动作创造波峰,后退的动作创造波谷。前移压缩空气,后退解压之。
我现在正在想一段旋律。为交流这段旋律我能怎么做呢?如果你坐我旁边我可以唱给你听。不仅因为你认识音,而且你还很可能立马回忆起1960情节喜剧中的角色。但因为你不在这里,我将不得不选择其他的语言。如下:
不同操作系统的区别并非拼读那么简单。使用Linux, Windows, Unix, 或 OS X存在着有根据的讨论。我们的实验室是基于Mac建立的。我所工作过的所有大学的实验室以及专业的工作室都使用Mac。这并不意味着你应该拥有一台,但你应该知道我们为什么使用它们。
OK,这是SC系列的第二部教程,非常全面深入,适用于SC重度(中毒)患者。来自David Michael Cottle写的Computer Music with examples in SuperCollider 3。它在SC官网以及其他(我所能找到的)地方的链接已经无法打开,要取得这本教材,你可以给他发信(d.cottle@utah.edu),说明你是干嘛的,为什么想学SC就可以了。因为这是他的一个希望,出于尊重他的想法,我就不上传这份教程了。起初我翻译了这本书部分我认为重要的段落,但后边越来越觉得这是一本不可多得的好书,于是决定做全书的翻译。绝大部分内容(尤其是后半部分)现已翻译完毕,等我慢慢更新。希望各位学习愉快。
在开始本课之前,请确保你已载入了上一课的\bleep SynthDef。
目前为止,调度一直由为一个特定的时间调度一个函数来达到。为了遍历一个程序不同的阶段,一个具备一定量执行阶段的函数是很有帮助的。通过.value,它并非一次性被全部评估,但能够在每个多阶段中“产出(yield)”它的当前值。
Scheduling
一些相关的帮助文档
[SystemClock]
[TempoClock]
[AppClock]
// 载入我先——这个声音将被用于记下来的调度小样 // 我们现在运用SynthDef和Synth,这很重要 // 注意doneAction! ( SynthDef(\bleep,{ arg out=0, note=60, amp=0.5, pan=0.0; var freq, env; freq = note.midicps; env = EnvGen.ar( Env([0,1,1,0],[0.01, 0.1, 0.2]), levelScale:amp, doneAction:2 ); Out.ar(out, Pan2.ar(Blip.ar(freq) * env, pan) ) }).load(s); )
这个SynthDef使用了一个doneAction为2的包络,这使得一个合成器由定义制造,并且在包络结束后释放(deallocate)自身。这至关重要,否则在我们载入它后它会永远挂在那!
你可以非常方便的建立一个重复机制。全局的SystemClock以秒进行调度。SystemClock是最值得信赖的时钟。
// 从距现在0秒开始一个进程,之后每1秒重复一次 ( SystemClock.sched(0.0,//从距现在0秒开始一个进程,即,立马 {//一个表明你希望调度什么的函数 Synth(\bleep); 1 //每10秒重复一次 } ) )
(最后从函数返回的东西是函数被调用的间隔时间;你可以返回一个数字,或nil;nil将停止调度)