- 2009/03/01 18:38
- SuperCollider
今までは左側からばっかり聞こえていたので耳が痛い。。
是非両耳から聞こえてほしい。
{[SinOsc.ar(440, 0, 0.2), SinOsc.ar(442, 0, 0.2)] }.play;
OK、きこゆる。
マルチチャンネル(ステレオ含む)で音を鳴らすにはArrayを使う、と。
Arrayには以下のように、いろんな型のオブジェクトを突っ込むことが可能。
a = [1, 2, \num, "a", true, SinOsc];
そして要素の取得はatメソッドもしくはお馴染みの[]を使う。
a.at(0);
a[0];
例えば上記のaは要素が6個。なのでアクセス出来るのは0-5まで。
ここであえて10にアクセスするとどうなるか。
nilが返ってくる。
また、ステレオで鳴らすには、SinOsc自体を別々に配列にするんじゃなく、以下のような方法もある。
{SinOsc.ar([440, 442], 0, 0.2)}.play;
これの方が随分楽だしスッキリしてるし良いですね。
また、Pan2オブジェクトを使用してシームレスに左右に音を振るようなことも可能。
{Pan2.ar(PinkNoise.ar(0.2), SinOsc.kr(0.5))}.play;
Pan2オブジェクトでは-1(左)から1(右)を引数としてとる。
なので、以下の場合、ちょっと左の方が強い音がなる。
{Pan2.ar(PinkNoise.ar(0.2), -0.3)}.play;
ここはそんなに難しくなかったけど、またあとでいろいろ出てきそうなので一応メモ。
- Newer: sc – SynthDef
- Older: sc – いろいろ