umbrella_process blog

‘SuperCollider’ カテゴリーのアーカイブ

SuperColliderの音をUstream Producerに流す方法

2010年03月22日

結論から言うとSuperColliderに限らず様々な用途に使える手段のようですが、こういう検索をする人の役に立つかなと思ってブログに書くことにします。

soundflowerという仮想オーディオデバイスを使うと、SuperColliderの音をsoundflowerに流し、その音をsoundflowerを入力デバイスとしてUstream Producerに入れることができる、と。説明難しいですね。SuperCollider側の設定も必要なく、非常に簡単なので試してみてください。

  1. soundflowerをインストールする。
  2. システム環境設定>サウンドで、入力・出力ともにSoundflowerにする。
  3. SuperColliderを起動する。うまく行っていれば起動時のメッセージでInput deviceとOutput DeviceがSoundflowerになっていることを確認できます。特に設定の必要はありませんでした。
  4. Ustream Producerを起動し、Live Inputを右クリックして、こちらでもSoundflowerを選択する。
  5. 以上。

こちらの記事を参考にさせていただきました。

http://veadardiary.blog29.fc2.com/blog-entry-1038.html
http://www.moongift.jp/2009/05/soundflower/

SuperColliderのネタ探し中

2010年01月17日

Twitterで音楽を奏でる!というのを研究してるんだけど、方向性に行き詰まってsupercollider.jpの過去ログをだらだら見ていたらL-systemの話題があった。otophiliaさんの話題はいつも高度だ。
L-system Base

短い文字列を再帰的に処理して複雑にするという意味では、Twitterから取得できるのは「短い文字列」だから面白いかもしれない。でもこれを耳で聴いて理解するには聴音能力が必要で一般の人には分かりづらいから今回は見送る…
だれでも参加できるというコンセプトのためには、分かりやすい必要がある。しかも、1分くらい遅れて反映されても分かる変化が…色々悩んでいます。

しかし、imoutoid = otophiliaのコードを音にして公開したら需要あるのかな?
ジムノペディのコード・リミックスと、Demand UGenを試してみたコード、ACIDサウンドに挑戦したコードの3つくらいが、かろうじてまだ実行できるみたい。

彼の代名詞とも思ってた実行コード中の変数をぐりぐり変化させるという変態コードのotophiliaNumModifierは、もう今のバージョンのSCでは使えないみたいだし。

[SuperCollider] GUI Overview and Introductionを流し読む

2009年06月28日

SuperCollider3.3になってアップデートされたというGUIのヘルプファイル、「GUI Overview and Introduction」を、翻訳する時間もスキルも無いので、あくまで流し読みます。

——

Basic usage: Kits and Syntax

GUIを扱うには2つの基本的なクラスがあるらしい。SCWindowJSCWindow
SCWindowはMacで、JSCWindowはそれ以外かな?

Basic Usage: Windows, Containers and Decorators

ウィンドウの作り方はほぼ変わらずというか変えなくてもよくて、Windowと書けばMacならSCWindowが呼び出されると言うことのようです。

(
// Window returns the window class for the current kit
w = Window( "my name is...", Rect( 128, 64, 340, 360 ));
w.front;
)

Window内のパーツの配置の仕方は、ひとつずつ座標を指定するやり方と、作ったパーツ順に自動的にWindow内に詰めて流し込むやり方がある。CSSで言ったら position: absolute; か float: left; のような感じ。当然フロートの方がらくちん。
やりかたはこれでOK

w.view.decorator = FlowLayout(w.view.bounds);

流し込むエリアもCompositeViewで複数設定できるらしい。知らなかった…
そもそもWindow自体CompositeViewのサブクラスなんだとか。

(
w=Window.new.front;
w.view.decorator = FlowLayout(w.view.bounds); // notice that FlowView refers to w.view, not w

v=CompositeView(w, Rect(5,5,190,390));
v.background = Color.rand; 					// set the color
v.decorator = FlowLayout(v.bounds);

14.do{ Slider(v, 180@20).background_(v.background) };

)

vで設定した範囲内にスライダーが流し込まれます。

Window Coordinates

ミニ情報的な感じで。SuperColliderのウィンドウはスクリーンの左下が基準なので何かと扱いづらい。そんなときはウィンドウの高さを取得すればいいよ、と。

(
w=Window.new("A Precisely Placed Window",
Rect(100, Window.screenBounds.height-300, 300, 200 )

).front;
)

ウィンドウの高さを取得して、そこから300px引いた数値を基準点とする。ウィンドウの高さが200pxなので、画面の上端からは100px離れてるよ、と。

Actions: Performing Things with a GUI Widget

アクションを設定するには。スライダーなどのGUIのactionメソッドに書く。

(
w = Window ("A Slider");
a = Slider (w, Rect(40, 10, 300, 30));
a.action={ |sl| sl.value.postln }; // set the action of the slider
w.front
);

SuperColliderの「|sl|」という引数の受け方がいまいちなじめないが…
アクションを追加するにはaddActionメソッド、削除するにはremoveActionメソッドを使う。

// adding and removing an action:
f = { |sl| "--------*******-------".postln; };
a.addAction(f);
a.removeAction(f);

この辺はすごく分かりやすい。

Asynchronous GUI Techniques: Communicating with the Sound Server

GUIとサウンドサーバの間の非同期通信。必要性・内容ともにいまいちつかめず。
ただ、サンプル中のNumberBoxと言うクラスは便利ですね!
NumberBoxで生成したテキストフィールドをクリックし、上下へのドラッグや上下矢印キーの入力で、テキストフィールド内の数字を増減できる。何かと使えそう。

——–

ううむ。次はGUI Classesを流し読みます。

SuperCollider 3.3.1リリース

2009年06月27日

1曲作るたびに心が離れ、しばらく経つとやりたくなる、
それがSuperColliderというシロモノでございます…

もともとプログラミングには全く縁のなかったド素人なのでまったく着いて行けていないのですが、いつのまにかヴァージョン3.3.1がリリースされていました。

SuperCollider » Blog Archive » SuperCollider 3.3.1 released (Safari 4 compatible)

Safari4を入れている際のバグ修正がメインらしい。
3.3のリリースのお知らせを読むと色々活発に修正されているようです。

SuperCollider » Blog Archive » SuperCollider 3.3 released

最も注目されているのがGUIのアップデート。
より易しい構文で書ける様になったらしい。

SCのGUI周りは使いやすいとは言えない感じだったので、どのように変わったのかな。
とりあえず2005年に書いたGUIを使ったコードが動いたのでひと安心。