Archive for 2月, 2010

ネットワーク環境設定の自動切り替え「Locamatic」

Craftwifeのライブでは、ラップトップ内蔵のAirMacカードを使って、マシンとiPhoneを直で繋いでいます。だからネットワークのない場所でも、ライブをすることができます。いつも、craftwifeというなまえのネットワーク、固定IPを手入力で使っています。でも自宅では、別の名前のネットワークとDHCPを使っています。

ネットワークを切り替えるごとに、システム環境設定のネットワーク設定をするのは、ちょっと面倒。ライブ会場の準備時間はいつも少ないので、現場で設定する手順を少しでも減らしたい… そんなとき、便利なのが、コレ「Locamatic」さん。これで設定しておけば、ネットワーク名に応じて、自動にセットアップしてくれます。

※一度インストールすると、システム環境設定の「その他」に入ってくれます。

Locamatic:
http://www.45rpmsoftware.com/45RPM/Locamatic.html

参考記事「ネットワーク環境切替ソフト特集」:
http://www.advansteps.com/macxsearch/blog/2009/04/0944.html
Locamaticのほかに、
NetworkLocation:http://networklocationapp.com/
locationX : http://homepage.mac.com/locationmanager/

iOSCからのOSCメッセージ

3/6のCraftwife + KURONOZ用のプログラムを作っています。複数のiPhoneからのOSCコマンドをSuperColliderで受信します。SCでは、OSCResponderを使っているのですが、どういう風に記述したら、効率的なのだろう、とずっと考えていました。

iOSC上に3つのボタンがあるとして、それぞれのボタンに別のコマンドネームを割り当てるか(iOSCのデフォルトではそうなっている)、同じコマンドネームを割り当てボタンごとに出力する値を書き換えるか。コードは後者の方が短いし、効率的かな。iOSCは、こういう自由度が素晴らしいですなぁ。

////////////////////////////////////////////////////////////////////////////
// iOSCのデフォルトコマンド名にあった記述法
~oA1 = OSCresponder(nil, “/osc/button1A”, { |t,r,msg|
case

 {msg[1] == 1} {”Abutton01_on2″.postln;}

 {msg[1] == 0} {”Abutton01_off2″.postln;}
}).add;

~oA2 = OSCresponderNode(nil, “/osc/button2A”, { |t,r,msg|
case

 {msg[1] == 1} {”Abutton02_on”.postln; }
 {msg[1] == 0} {”Abutton02_off”.postln; }
}).add;

~oA3 = OSCresponderNode(nil, “/osc/button3A”, { |t,r,msg|
case

 {msg[1] == 1} {”Abutton03_on”.postln; }

 {msg[1] == 0} {”Abutton03_off”.postln; }
}).add;

////////////////////////////////////////////////////////////////////////////
// 私の場合は、下記の様に書いた方が効率よいかな?

~oa = OSCresponderNode(nil, “/osc/deviceA”, { |t,r,msg|
case

 {msg[1] == 0} {”Abutton01_on”.postln;}

 {msg[1] == 1} {”Abutton01_off”.postln;}
 {msg[1] == 2} {”Abutton02_on”.postln; }

 {msg[1] == 3} {”Abutton02_off”.postln; }
 {msg[1] == 4} {”Abutton03_on”.postln; }

 {msg[1] == 5} {”Abutton03_off”.postln; }
}).add;

3/6 神戸「Craftwife + KURONOZ」によせて


今回コラボレーションするKURONOZ(クロノズ)は、黒野靖子さんによるパフォーマンス作品。彼女と同じ水色のワンピース、黒髪のウィッグと黒のダテ眼鏡をつけたクロノと呼ばれる彼女の模倣品<モデル>たちが増殖するこの作品は、私に複製・大量消費社会、個性の喪失、マスメディアといった、Craftwife自身が抱えている問題意識を感じさせます。

彼女と一緒に、KURONOZにとって、Craftwifeにとって重要なことは一体なんだろうか、という双方が大事にしている部分を、お互いに考え、再発見しながらの制作をしてきました。KURONOZが面白いのは、コスチュームを纏えば「だれでもクロノに成ることができる」ということです。男性でも、外国人でも、子供でも。一方、Craftwifeへの加入には、既婚である事、プログラミングができること、少しでもドイツ語ができること、など厳しい条件があります。Craftwife + KURONOZでは、KURONOZのアノニマス性をとりいれ、「だれもが演奏に参加できる」というシステムを構築することを考えました。Craftwifeは「iPhoneでテクノポップを奏でるバンド」という部分を大事にし、結果「iPhoneを使って、誰でもテクノポップ音楽の演奏に参加できる」パフォーマンスをします。複数のiPhoneによる即興のアンサンブルです。※1

これは、今の私を取り巻く大量生産消費社会、ファッション産業と音楽産業に対するメッセージでもあります。外国への労働の外注と沢山のショッピングモールは、多少のお金を払えば誰しもが同じ服飾を手に入れる事を可能にし※2、パーソナル・コンピュータにより容易に誰もがぬりえ感覚の音楽を作ることが可能になった2000年以降。おそらく2010年以降の音楽は、聴く者と作る者、といった関係性が大きく変わるのではないかと予測します。Craftwife + KURONOZは、音楽を創るのではなく、かつて聴取者と呼ばれた人たちと音楽を奏でるためのシステムを提供するのです。

今回のパフォーマンスは、黒野さんと私、そして公募した4人のクロノ※3による6人のアンサンブル。16:00より15分程度、4階のギャラリーにて行います。美術館内であることや機材面から、ライブハウスで聴けるような大音量のCraftwifeを期待すると、残念なものになるかもしれません。しかし本当の意味での、ミニマルで、美しく楽しいテクノポップミュージックを演奏します。16:30からは展覧会のレセプションパーティが予定されていますので、こちらも是非ご参加ください。

※1:iPhoneを使ったアンサンブル例は他にあるが、どれも音楽的な面白さを追求しきれていないと思う。その証拠に、一部は古典的な楽器と一緒に演奏している。私はあくまでiPhoneのみをつかった演奏をしたい。

※2:私は川久保氏の3ケタジーンズ発言に共感しています。

※3:演奏者は、YMOトリビュートO−SETSU−Yでキーボードを務めたSaya Nishida(彼女はCraftwifeのライブ写真も撮影している、素晴らしい音楽家、写真家である)から、全く演奏経験のない主婦の方まで。

CRAFTWIFE+KURONOZ「Models」
上演日時:2010年3月6日(土) 16:00~(15分程度)
16:30より、神戸アートコレクション2010のレセプションパーティーがあります。
会場:神戸ファッション美術館 4Fギャラリー(交通案内
六甲アイランド内、六甲ライナー「アイランドセンター駅」下車すぐ

Pbind/Patternの内容を変える

春がくるのかしら、と思うような天気から、冷たい雨の白い冬の空。
この雨は、暖かい日をよんでいるのだろうか。今日は祭日。

午前中にiPressさんの原稿をチェックしました。写真のわたし、プクプクですが、なかなか楽しい記事になっています。2月中に全国のソフトバンクショップなどで無料でいただけるフリーペーパーです。また、配布が始まったらお知らせします。。

さて、Pbind/Patternの内容を、コードを走らせて音を鳴らしながら、要素をダイナミックに変える方法は以前書いたかも。

Pattern系のクラス自体を書き換えるような場合(PseqとPrandを切り替えて使う、など)は、PatternProxyを使った1の方法、そうではなく、リストの要素のみを書き換えたい場合は、2番目の方法がよいかな。

// SCデフォルトのinstrumentはいつになったら、
// テストしやすいものに変わるのだろう、苦笑。
SynthDef("simpleSine", {arg freq=440, amp=0.5;
Out.ar([0,1],
SinOsc.ar(freq) * EnvGen.ar(Env.perc, doneAction:2) * amp)
}).store;

//方法1///////////////////////////////////
~playerA_deg = PatternProxy(Pseq([0,1,2,3,4],inf));

p = Pbind(
\instrument, \simpleSine,
\degree, ~playerA_deg,
\dur ,0.25,
\octave, 7
).play

// Patternを変える
~playerA_deg.source = (Pseq([2,3,4,5],inf));
~playerA_deg.source = (Pseq([0,1,2,3,4,5],inf));
~playerA_deg.source = (Prand([0,1,2,3,4,5],inf));

//方法2 ///////////////////////////////////
~playerA_deg= List[2,2,2,2];

p = Pbind(
\instrument, \simpleSine,
\degree, Pseq(~playerA_deg, inf),
\dur, 0.25,
\octave, 7
).play;

// Listの内容を変える
~playerA_deg[1] = 5
~playerA_deg[3] = 7

ファッションと音楽~水色のワンピースはテクノポップにどのような影響を与えるのか。4

音楽は、時間軸がなければ成立しない。
服に時間を与えるとそれは、ファッションショーになる。
それは、わたしにとって不思議で未知の世界。
だけれど、実は、いま私たちが着ている服と、確実に繋がっているのです。

Youtubeで見ることができる、Craftwifeが好きなショーを紹介しまショー。

Viktor & Rolf:A/W 2002
以前のブログでも紹介した、Viktor & Rolfの演出はどれも面白い。
色をテーマとした彼らの「ブルー」のショー。モデルたちが身につけた服の青い部分に、映像がクロマキー合成される。

Diesel:”Liquid Space” S/S 2008
半透明のスクリーンに映像を投影。現実拡張的な効果が幻想的。

Alexander McQueen:”Weird Science” S/S1999
真っ白なドレスにロボットアームがペイント。科学技術の暴力的な側面、性の弱さと強さを感じる。

Hussein Chalayan:S/S? 2007
変形する服は、時間の移り変わりだけでなく、服飾による身体の変容を思わせる。

センド式エフェクタ。

こんな記事を書いてくださっている方がおります、ズバリ

「スパコ基礎文法最速マスター」
http://d.hatena.ne.jp/sc3onlinux/20100206/1265449076

大学受験の参考書のようなタイトルが素敵。多謝。がんばれー。

さて、むかし多分日本語フォーラムで教えてもらった方法。
エフェクタノードにsend量を決めて、エフェクタのかかり具合を変えるような感じかな。
うーん。どうだろう?SynthDefにOutを複数持つ事ができるのを教えてもらい感激。
とりあえず、メモとして残す。


// エフェクト側、20chを受け取る
SynthDef("patternefx_Ex", { arg out, in, delaytime = 0.4;
var audio, efx;
audio = In.ar([20,21],2);
efx=CombN.ar(audio, 0.5, delaytime, 2, 1);
Out.ar([0,1], efx);
//Out.ar([0,1], audio+efx);
}).load(s);

// 音源側、エフェクタに送る量を決定
SynthDef(\fx_test, {arg gate=1, fx=0.5, fxout=20, amp=0.1,freq=200, pan=0, out=0;
var env, output,source;
env = EnvGen.kr(Env.perc(0.001, 0.2), gate, doneAction:2);

source = SinOsc.ar(freq, 0, amp);

output = source * env;
output = output*(1-fx);
source= source * fx;
Out.ar(fxout, source);
Out.ar(out,Pan2.ar(output, pan))
}

).store;

//変数宣言
~textFxAmt = 0.0;
// シーケンス
Pbind(\instrument,\fx_test, \fxout, 20, \dur,2, \freq, 800, \amp, 0.5, \fx, Pfunc({~textFxAmt})).play

//エフェクタノード
~fx = Synth("patternefx_Ex");
~fx.set(\delaytime, 0.25)
~fx.set(\delaytime, 0.5)
~fx.free

// エフェクタへのsend量を決定
~textFxAmt =0.0;
~textFxAmt =0.1;
~textFxAmt =0.9;
~textFxAmt =1.0;

シェバード・トーン(無限上昇音階)

上がりすぎ。

// shepard tones
// alberto de campo
(
var ampTable, freqTable, b1, b2;

ampTable = Signal.hanningWindow(1024).squared;

// freqTable = Signal.newClear(1024).waveFill({ arg i; 0.5 ** i * 20000}, 0, 10);

freqTable = Signal.newClear(1024).waveFill({ arg i; 0.5 ** i * 20000}, 10, 0);

b1 = Buffer.loadCollection(s, freqTable);
b2 = Buffer.loadCollection(s, ampTable);

{
var freqs, amps, phasor, ratescale, rate, phases;
ratescale = 1024 / 44100 / 10;
rate = 0.1; // once per 10 sec
phasor = Phasor.ar(0, rate * ratescale, 0, 1024);
phases = (0..9) * 0.1 * 1024 + phasor;

freqs = BufRd.ar(1, b1.bufnum, phases);
amps = BufRd.ar(1, b2.bufnum, phases);

Mix.ar(SinOsc.ar(freqs) * amps) * 0.1;
}.play;

)

Get Adobe Flash playerPlugin by wpburn.com wordpress themes