SinOsc – Sine wave 模擬信號
一安裝ChucK之後,你會發現有這個畫面,按下”Start Virtual Machine”。
然後在淺藍色框內打入下面2句:
SinOsc s => dac; 2::second => now;
按下Shift – Command “+” 或者按下
就已經發到聲了。
這兩句的意思是:
//開一個新的sine wave名叫 "s" 放到dac (digital-audio converter)即是傳送到sound card發聲 SinOsc s => dac; //現在出2秒聲音 2::second => now;
如果想永久地發聲的話,只要加上一個while loop
SinOsc s => dac; while (true) { 2 :: second => now; }
再按下Shift – Command “+” ,聲音就變得永久了。while loop是指當某一項條件達到的話,就會執行{}內的指令。
由於這個Shred一加的時候,這個程式已經變成了true,所以就會有一個恆常的聲音。
Frequency 頻率
加這一句:
SinOsc s => dac; while (true) { 1000 => s.freq; //加這一句 2 :: second => now; }
就會聽到聲音不同了。
s.freq 是指模擬信號S內的頻率,1000是設定頻率為1000Hz。
如果上面SinOsc的名是”b”的話,他的頻率就是 “b.freq”。
SinOsc s => dac; while (true) { Std.rand2f (20.0, 1000.0) => s.freq; //改一改 2 :: second => now; }
每2秒聲音頻率就改變了。
Std.rand2f (20.0, 1000.0)是指從20.0 – 1000.0這兩個float digit入面隨機抽一個數字代入s.freq。
如果想再改快一點的話:
SinOsc s => dac; while (true) { Std.rand2f (20.0, 1000.0) => s.freq; 100 :: ms => now; //改一改時間 }
ChucK可以將時間由秒變做毫秒。ms是指millisecond(毫秒)。
Gain聲頻增益
SinOsc s => dac; while (true) { Std.rand2f (0.0, 1.0) => s.gain; //加這句 Std.rand2f (20.0, 1000.0) => s.freq; 100 :: ms => now; }
s.gain 是指模擬信號S內的聲頻增益。
如果上面SinOsc的名是”b”的話,他的聲頻增益就是 “b.gain”。
最後就給大家一個視頻重溫一下今日的範例。你可以改一些數字去研究一下~
ZeaVanity Adsorbable Vapours liked this on Facebook.
Bryan Chung liked this on Facebook.