2009.12.03
巷ではベラボーに音が良いと評判のSuperCollider(しかもタダ)、2、3年前ぐらいにインストールしたけどコードを書いて音を出すというのに戸惑いを隠せないまま放ったらかしにしてたけど、最近flashでas書くようになってオブジェクト指向プログラミングなる物を学んで、そのまま勢い付いてSuperColliderもイケるような気がしてきた今日この頃。
名前かっこいいと思って英辞でSuperColliderを訳したら、大型の衝突型粒子加速器と出ました、、
なんでしょう?
・とりあえず音を出してみる。
音を出すにはまずサーバーを起動させて。
(
s = Server.internal;
Server.default = s;
s.boot;
)
サーバーって言うぐらいなんで、ネットワーク越しにほかのコンピューターから操作出来るみたいですね、flashとも連携できるみたいです。
って言うか音制作用みたいなflashあればいいのにってflash始めた頃思ってました。
とりあえずタイムラインがシーケンスになってて、でフレームスクリプトで音鳴らしたりエフェクトかけたり、Tweenerでボリュームとかピッチとかテンポとか、それでパブリッシュしたらmp3完成とか!
でもswfで書き出してボタンとかmouseXとかでフィルタいじったりエフェクトのパラメータとか変えたりできても楽しそうかも。
で、本題!
440HZで位相0で音量0.5のサイン波の生成。
{SinOsc.ar(440, 0, 0.5)}.play;
でenterキーで再生!
playで音が出るなんて、flashみたいでいいですね!
音を止めるにはcommand + ピリオド!
[]囲んででステレオ再生、
{SinOsc.ar([440,540],0,0.2)}.play;
{SinOsc.ar(440, 0, 0.5)}.scope;
でモニタ(タイトル下の画像)
ノコギリ波は
{Saw.ar([440,441],0,0.5)}.play;
矩形波は
{Pulse.ar([440,441],0,0.5)}.play;
変数に代入して
var x;
x = {SinOsc.ar([551,668],1,0.2)};
鳴らす!
x.play;
シンセ”hoge”を定義してみる。
(
SynthDef.new(“hoge”,{
arg freq=440;
var osc;
osc= [SinOsc.ar(freq , 0 ,0.2), SinOsc.ar(freq+2 , 0 ,0.2)];
Out.ar(0,osc)
}).send(s);
)
send(s);で定義したSynthDefをサーバーに送って、
s.sendMsg(“/s_new”,”hoge”,1000,1,0)
sendMsgの所で最初のSynthDef.newの所で定義した”hoge”をnewするって感じでしょうか。
そのあとの1000はID番号で後の1と2はよくわかりません、なにぶん勉強中なもので!
とりあえず音鳴ってるからよしとして、
s.sendMsg(“/n_free”,n);
でストップ。
s.quit;
でサーバーの停止。
っと、簡単ですねココまでは。
ASで言うところのgotoAndPlay()を覚えたぐらいでしょうか?
千里の道の第一歩です、頑張って歩いていこうと思います。
2年半くらい前、web屋になろうと心に決めて学校行くため貯金始めたぐらいから音楽から遠ざかってたから、またちょこちょこ色々触ってみる事にします。
あと、ChucKも気になる!
まだサンプル改造して喜んでる段階なんですけどSuperColliderの音を聴いていると、時々脳が揺れてるような気がしたり急に動悸が激しくなったりと、生きてる実感たっぷりなすてきな日々なわけで、とりあえず音が人体に及ぼす影響なんてのを考えてしまう今日この頃です。
以上、「新米flasher SuperCollider奮闘記」でした。
https://dis.ne.jp/blog/topics/385.html/trackback