今回東京都現代美術館で開催されている「音楽とアート」展に出品されている、坂本さんと高谷さんの「collapsed」の音部分のプログラムを担当させていただきました。ただ、展示されているスペースにも、展覧会のカタログにもあまり詳細が語られていることはないので、ここでは自分が担当したパートでどういうことを行なっているのか説明したいと思います。

まず、ハードウェア構成ですが、2台のYAMAHA MIDI PIANO、8台のMusikelectronic RL906スピーカー、各ピアノに仕込んだAMCRON PCC-160バウンダリーマイク、RME Fireface 800オーディオインターフェイス、そしてApple MacBook Proから構成されています。ソフトウェア的には、MacBook Pro上でMax6とともにLaserコントロール用のプログラムが動いています。僕は、Max6を利用しMIDIピアノの制御、並びにMIDIピアノに仕込んだマイクから来た音の音響処理、そしてその出力の制御を担当していました。Laserパートはsine wave orchestraの古舘さんが担当しています。

description_diagram2.png

「collapsed」は3つのテキストをもとに動作しています。テキストはプラトンの「国家」の洞窟の比喩の部分、ダニエル・クインの「イシュマエル」、そしてウィリアム・バトラー・イェイツの「自我と魂の対話」の3つを利用しています。3つのテキストはランダムに選ばれ処理されていきます。

テキストのデータは、それぞれ行単位、単語単位でデータベースに保持されています。データベースエンジンは、Max6からJavaScript経由で扱えるということでsqlite3を使っています。

テキストが選ばれると、テキストから順番に1行取り出されます。ここで、2台のピアノのうちどちらがプライマリでどちらがセカンダリか、ランダムに選択されます。ピアノの関係性が決まると、続いてその行に含まれている単語が順番に取り出されます。

単語はさらに音素(phoneme)に分解されます。今回は、音素の辞書としてカーネギーメロン大学のPronouncing Dictionaryを利用しています(http://www.speech.cs.cmu.edu/cgi-bin/cmudict)。この辞書は、125,000の単語についてそれぞれ音素に分解したデータを持っています。この辞書を、同じくsqlite3形式に変換して、Max6の中からJavaScriptで呼び出しています。選択された単語を元に辞書を検索し、合致すると音素に分解された文字列が得られるようになっています。

description_diagram1.png

今回利用した辞書には84種類の音素が使われていました。それぞれの音素に対して、MIDIピアノで利用している88鍵の範囲のMIDIノートナンバーをあらかじめ固定で割り当ててます。4鍵盤分足りてはいませんが、アルファベットを鍵盤にマップしようとした場合26種類しかなく、また統計的に"e"の文字が最も多く出現するなど傾向がわかっているため、テキストからMIDIへ変換した際に多様性が出てこないということで今回の変換要素には利用しませんでした。

単語の音素が得られると、先ほどのMIDIノートの割り当てでまず音程が決まり、それぞれの音素に対して音の長さ(ゲートタイム)と音の大きさ(ベロシティー)が、指定された範囲の中からランダムに選ばれ設定されます。開発段階では、各音素でそれぞれゲートタイムもベロシティーも固定で割り振っていたのですが、その場合特定の単語は特定のフレーズとして表現されるため、どの単語がMIDIで演奏されているかがわかるようになります。坂本さんとしては可能な限り判別できる要素は省きたいとのことで、ゲートタイムもベロシティーもランダムに割り振ることになりました。

MIDIデータが決まると、それぞれMIDIピアノに送られます。プライマリピアノへは即時送信されますが、セカンダリピアノへは1分後にデータが送られるようになっています。2台のピアノが対話、輪唱しているような状況になるわけです。実際、演奏されているのは各単語の発音が変換されたものなので。

同時に、レーザーのプログラム側に送るデータも準備され、送信されます。レーザー側には単語そのものと、各音素のゲートタイムがOpenSoundControlプロトコルで送られます。各音素のゲートタイムは、レーザー側で壁面に文字が投影される際のタイミングに利用されています。

ひとつの単語が処理されると、次の単語について同様に処理が行われます。そして一行分のデータが処理されると、テキスト内から次の行が取得され、同様に処理が繰り返されていきます。

MIDIピアノで単語が演奏されると、ピアノ内に仕込まれたマイクで音が拾われ、Max6の中で音響処理されます。具体的にはEQとリバーブで音を可能な限りぼかすようにしています。処理された音は、天井付近に設置されている8台のスピーカーへ送られ、再生されます。この時、プライマリピアノの音はプライマリピアノに最も近いスピーカーから順に音が出力され、セカンダリピアノの音はセカンダリピアノに最も近いスピーカーから順に音が再生されるようになっています。もともと展示スペース自体にかなり長めの残響特性があるのですが、その後に微かにモワッとした音が空間を駆け巡ります。

以上のような仕組みで、あのスペースに置かれている2台のピアノはコントロールされています。一見、ランダムに演奏されているだけ、と感じられるかもしれませんが、上記のように全て選択されたテキストに基づいて演奏されています。

この説明を読んでから再度会場に足を運んでいただき、1、2時間ほどソファーに座って体験すると、あるいは関係性がより明確になるかもしれません。

mot collapsed 3

| トラックバック(0)

三日目

昨日はご本人がいらっしゃって、パッチを動かしながら色々と確認。ちょっと認識の違う部分があり、そこがそこそこインパクトのある部分だったので、ほぼ徹夜で改修してみているんだけど、どうもうまくいかない...。jsオブジェクトがハングするときになにもエラーを残してくれないので、そこが一番つらい...。

すでにtwitterの方に画像を流した通り、99年のオペラLIFEで使用したヤマハのカスタムメイドMIDIピアノが2代届く。このMIDIピアノをMaxから制御して色々とやるわけだけど、今日はこの調律から始まって、MIDIの制御ができるかどうかの確認、実際にプログラムを動かして音の感じとか微調整していくことになりそう。

明日、高谷さんチームの古舘さんがいないので、今日はかなり遅くまでレーザー側との調整作業になりそう。

http://twitpic.com/b6dgr0/full
http://www.mot-art-museum.jp/music/

mot collapsed 2

| トラックバック(0)

二日目。

昨日の作業で高谷さんパートでどういう情報が必要なのかを確認したんだけど、変換するマップが決まらないと生成ができないので、とりあえずDBのスキーマ変更やマップのためのテーブルを用意したり、マップさえ決まれば各ノートのdurationを計算してDBに投入するためのスクリプトを書いたりして終わる。

今日はいよいよご本人が会場入りするので、ネット周りの環境とか電源関係とか、昨日実際に会場に入ってみて足りていないものを用意しつつ、自分の作業用にやはりFireface UCXを持って行くことに。午前中になんとか会場入りして、音だけで自走できるところまで仕上げつつ、ピアノとご本人の到着を待つ感じになりそう。

ちなみに、今回の展覧会のサイトなどにLIFE-fiiの画像が使われているけど、LIFE-fiiの展示は行なわれません(^^;;)。「collapsed」と「silence spins」は新作で画像がなかったんでいつの間にかLIFE-fiiの画像が使われていたとのこと(^^;;;)。紛らわしくてすみません...。

http://www.mot-art-museum.jp/music/

mot collapsed 1

| トラックバック(0)

今日から「アートと音楽」展の『collapsed』設営開始。といっても、まだMIDIピアノは入っていないので、高谷さんのパートとの調整+今週のスケジュールというか段取り+まだ完全にパッチが出来上がっていないので、その仕上げ作業、といった感じになりそう。

パッチは本当は9月中に仕上げるつもりだったのが、こんなギリギリまで作業することになってしまいそこそこ焦っているんだけど、なかなかのらない時に画面に向かっていても作業は進まないもので、そのあたり集中力とかほんと散漫...。どうしたものか...。

http://www.mot-art-museum.jp/music/

IMG_1680.jpgIMG_1695.jpg

IMG_1696.jpgIMG_1699.jpg

早朝6時から都内某所の林の中でデバイスのテストをしてきました。こんな感じ。備えなしに乗り込んだら蚊に刺されまくって大変...。耐えられなくて途中で虫よけスプレーを調達してきてもらったりしていました。

arudino用のシールドには新たにopenlog(http://www.switch-science.com/products/detail.php?product_id=389)をのせて、RS-422と両方出記録できるかどうかを試していたんだけど、どうも422の方がうまく出力されてこない。OS側もFedora、Mac OS X Lion、Windows XPと試したけどなぜかなにもデータが流れてこない。色々と手を尽くしても改善しないので、持ち帰って再検証ということに。

ちなみに、openlogの方は、商品ページで謳っているような57600なんてスピードは出ず19200で利用している状況。かなりギリギリではあるけど、一応書き損じは起していないみたい。

いずれにしても、このあたりの問題は連休中になんとかしないと間に合わない...。

ちなみに、前にテストしていたperlでのデータロガーは取りこぼしもなく問題なく利用できることがわかったので、これを少々いじって本番で利用する予定。

それよりも大きな問題は台風。実際の現場は宮崎の諸塚村の山の中なんだけど、羽田から飛び立てるんだろうか...。

IMG_1678.jpg

来週から某所で森林の中の樹の生体電位を測定する、という作業を行なう。ここしばらくその準備を進めているんだけど、予算が大幅カットされたこともあって色々と準備が追いついていない状況。その予算もようやく先週末に目処がついて、色々と動き出しているんだけど、特に、記録した生体電位を音響化する部分について、まだなかなかこれだ!というものが出てきていない。

そこでもんもんとしていても先に進まないので、ひとまず記録のための環境をまずはしっかり準備していくことに。Sensignalの宇野君が作ってくれた、試作のarduinoシールドを使って、いまはシリアルポートからのデータを取りこぼしなくMac OS Xで取得できるかテストしているところ。なんでテストしているかというと、Perlでやっているから(^^;)。ちょっと心配なんだよね。これで問題がなければ機材的にだいぶ楽になる。おそらく問題ないと思うんだけど...。

ものすごく久々なエントリーとなってしまいました...。しかもまだ書きかけです...。

先日、USでGoogleの純正android携帯端末、Nexus Sが発売された。Nexus One発売の時はGoogle自身が販売していたんだけど、今回は販売はアメリカの大手量販店BestBuyにまかせるような形になった。で、このBestBuy、そのTOPページに「国外には発送しないけど海外からの注文はOK」というスタンスであることが書かれている。12/27現在はなぜか日本からアクセスできなくなっているけど...。Nexus Sの販売で海外からの注文が殺到しているのかな。

いずれにしても、海外からでも注文受け付けてくれることがわかったので、早速以前手続きをしていたスピアネット(https://spearnet-us.com/move/)という個人輸入、転送サービスを使ってみることに。

まず、スピアネットにアカウントを作って割り当てられた住所と番号を取得しておく。それをもってBestBuy.comにアクセスしてNexus Sの購入手続きを進める。この際、発送先住所としてスピアネットから割り当てられた住所を入力。電話番号も同じ。Billing Addressは本来は日本の住所を書かないといけないのかもしれないけど、スピアネットの住所をそのまま使った。クレジットカードは日本のカード番号を入れてそのまま問題なく決済された。

決済が完了して注文が確定したら、今度はスピアネットの方に転送依頼を出す。アカウントを使ってログインしたあとに、「転送依頼」のボタンをクリックし、日本への発送方法等を入力する。今回は宅配便を選んでみた。「購入先」は「BestBuy」と入力し、「商品金額の合計」には、送料、税金込みの金額、今回は「$581.66」と入力する。「eBayアイテムID」は今回は関係ないので空欄のまま。「クーポン番号」も特に何もないのでこちらも空欄。その次の「依頼商品商品名称 」には2つテキストフィールドがあるけど、最初のところには商品の詳細とbestbuyのオーダー番号を書いておく。今回の場合は「Google-Nexus S Mobile Phone-Black-BBYM08EG BBY01-374*********」というような感じに。二つ目のフィールドには商品の単価を書いておく。今回の場合は「$529.99」だったかな?

これで依頼を出しておけばひとまずあとはbestbuyからスピアネットの倉庫に配送されるのを待つ。荷物がスピアネットに届くとメールで連絡がきて、その中に日本への発送料決済のためのURLが含まれている。今回の場合は送料+手数料合わせて$32。安い...。決済完了後数日すると発送の連絡がきて荷物のtracking numberと追跡するためのURLが送られてくる。今回は日通のサービスで配送された。

追跡サービスで色々とみつつようやく12/26の昼過ぎにnexus sが届く。関税は取られず、消費税の1,200円のみ請求されて受け取ることができた。最終的にかかった費用は、

本体+加州消費税:$581.66($1=85円で49,441円)
US->日本送料:$32($1=85円で2,720円)
税関での消費税:1,200円

となって合計で53,361円。安いだろう、これは(^^;)。円高ってのももちろん大きな要因だけど。

久々にネタができたのでmemoを。

先日、予約していたiPad WiFi 16GBモデルが家に届いてから、ずっとこれで遊んでいる。やはりちょっと重いけど、画面が大きいというのは全然違う。

そんなiPadでSuperColliderが動くのかどうか試してみることに。まず、SDKは3.2のものが必要なので、最新版をインストールしておく。その後に、ターミナルでsvnを使って最新版ソースコードをcheckout。

svn co https://supercollider.svn.sourceforge.net/svnroot/supercollider/trunk SuperCollider3

現時点でのリビジョンは 10138。

A SuperCollider3/windows/sc3-win-installer-template.wxs
A SuperCollider3/windows/Win32Tests.sc
A SuperCollider3/windows/distrowin.py
A SuperCollider3/windows/WindowsReleaseHowTo.txt
A SuperCollider3/windows/compat_stuff
A SuperCollider3/windows/compat_stuff/getopt.c
A SuperCollider3/windows/compat_stuff/WSA-pthread-compat-stuff.cpp
A SuperCollider3/windows/compat_stuff/getopt.h
A SuperCollider3/windows/compat_stuff/stdbool.h
A SuperCollider3/windows/scsynth.vcproj
A SuperCollider3/README LINUX
U SuperCollider3
Checked out revision 10138.

iPhone/iPad関係のファイルは、以前と同じように「iphone」フォルダの中に収められている。

ipadsc1.png

まずは、「iPhone_Synth.xcodeproj」を開く。開いたら、プロジェクトウィンドウの左上の「概要」ポップアップメニューから以下の項目を選択する。

・アクティブSDKを「iPhone Device 3.2」
・アクティブターゲットを「libscsynth」

ipadsc2.png

続いて、「プロジェクト」メニューから「プロジェクト設定を編集」を選んで設定画面を開く。

ipadsc3.png

ipadsc4.png

コードサイニングの中の「コード署名ID」で自分のIDを選んでから、以下の設定を変更する。

・DeploymentのTarget Device Familyを「iPad」
・DeploymentのiPhone OS Deployment Targetを「iPhone OS 3.2」
・アーキテクチャのベースSDKを「iPhone デバイス 3.2」

ipadsc5.png

ipadsc6.png

設定ができたら設定画面を閉じて「ビルド」メニューから「ビルド」を実行する。手元では警告が11ほど出たが、このままで問題ない。

ipadsc7.png

続いて、「iPhone_Language.xcodeproj」を開く。

ipadsc9.png

まずは、先ほどの「iPhone_Synth.xcodeproj」の設定と同じように、左上の「概要」ポップアップメニューから以下の項目を選択する。

・アクティブSDKを「iPhone Device 3.2」
・アクティブターゲットを「SuperCollider」

ipadsc10.png

続いて、「プロジェクト」メニューから「プロジェクト設定を編集」を選んで設定画面を開く。

ipadsc11.png

先ほどと同じように、コードサイニングの中の「コード署名ID」で自分のIDを選んでから、以下の設定を変更する。

・DeploymentのTarget Device Familyを「iPad」
・DeploymentのiPhone OS Deployment Targetを「iPhone OS 3.2」
・アーキテクチャのベースSDKを「iPhone デバイス 3.2」

設定ができたら設定画面を閉じて、「グループとファイル」の中の「Resources」を展開する。

ipadsc12.png

「Resources」の中にある「SuperCollider_MainWindow.xib」をダブルクリックする。すると、Interface Builderが立ち上がり、iPhoneサイズの「Tab Bar Controller」ウィンドウが表示される。ここで、「File」メニューから「Create iPad Version Using Autosizing Masks」を選ぶ。

ipadsc13.png

すると、iPadサイズの「Tab Bar Controller」ウィンドウが表示され、「Untitled」というプロジェクトウィンドウが作られる。

ipadsc15.pngipadsc14.png

「Untitled」のウィンドウを最前面に持ってきて、「File」メニューから「Save」を選択する。保存する際には、ソースコードの「iphone」フォルダの中の「iPhone Resources」フォルダの中に「SuperCollider_MainWindow.xib」として保存する。

ipadsc16.png

上書き保存(Replace)するかどうか聞かれるので、「Replace」ボタンをクリックして保存する。

ipadsc17.png

保存できたらウィンドウを全て閉じる。

Xcodeに戻って、先ほどの「グループとファイル」の中の「Resources」には他に「SuperCollider_FileTransfer.xib」と「SuperCollider_BrowserPage.xib」というファイルがあるので、これも同様にそれぞれ開いて、「Create iPad Version Using Autosizing Masks」でiPad番のものを生成し、それぞれ同じファイル名で保存する。

ipadsc18.png

Interface Builderのファイルを変更できたら、ビルドを実行する。いくつか警告が表示されるが問題なく完了する。

ipadsc20.png

あとは、アプリをXcodeのオーガナイザを使って自分のiPadに転送する。「グループとファイル」の中の「Products」の中を展開すると「SuperCollider.app」というファイルがあるので、これをDragしてオーガナイザのiPadの項目にDropする。

ipadsc21.pngipadsc22.png

転送が完了したら、早速iPadで起動してみる。特にエディタ画面が、画面が広くなった+iPadのまともなキーボードで入力できる、ということで使い物になるレベルになったのではないかなぁ、と。

ipadsc23.png

ipadsc24.png

ipadsc25.png

http://itunes.apple.com/jp/app/touch-the-museum/id362693348
http://www.itmedia.co.jp/news/articles/1003/29/news049.html
http://www.nmwa.go.jp/
http://www.synetics.jp/

うちの会社でアプリの制作を担当した、国立西洋美術館のiPhone/iPod touch用作品ガイド「Touch the Musem」がリリースされました。先ほどからダウンロードできるようになりました。

コンテンツは、NHKエデュケーショナルさんが制作しています。

なお、アプリの制作にあたっては、株式会社センシグナルさん、そして比嘉了さんに大変お世話になりました。ありがとうございます!

http://www.sensignal.co.jp/
http://structor.jp/

アプリは無償でダウンロードできるので是非お試しください。ダウンロードはこちらから。500MBあるので、実機の場合はWiFiでの接続が必要です。

http://itunes.apple.com/jp/app/touch-the-museum/id362693348

また、4月1日(木曜)の16:00からAppleStore銀座にて「iPhoneアプリで楽しむ国立西洋美術館」というイベントが開催されます。

http://www.apple.com/jp/retail/ginza/

朝6時に戻ってようやくさきほど起きました...。昨日の新高円寺club linerでのセットリストはこんな感じ。前半は自分の素材も使いつつリズムのないもの中心で、四つ打ちを聴きに来ていた人たちにはどう聴こえるか気になりつつも目線を合わせずに展開。後半は、場で求められているようなものを用意してつなぐ、と。

今回はAbleton Liveでやったんだけど、どうしてもwarpかけた音は時々おかしい。まあ、テンポ強引に合わせるよう処理しているんである程度はしかたないけど。Audio HijackでLiveの出力を奪って録音していたので音源もあるんだけど、自分のWEBに載せた時点でそれは著作権的にアウトなのでできません...。こっそり個別に...。

というわけで、以下にリストを。

artist / track name / album
-----
Alvin Lucier/WIRE I/Music on a Long Thin Wire
Kenji Yasaka/live control of BugBrand Postcard Weevil
Kenji Yasaka/drone-1
Kenji Yasaka/icetest-20090407-3.1
Curtis Roads/Now/Point Line Cloud. Electronic Music 1999-2003.
Mangurekan, Elodie Bouchez/Auraton/Replay Debussy
Kenji Yasaka/weevil noise collage
Brian Eno/Three Variations On The Canon In D Major: (i) Fullness Of The Wind/Discreet Music
Ambarchi,Fennesz,Pimmon,Rehberg,Rowe/track 2/Afternoon Tea
hoon/ジムノペディ第3番 エリック・サティ/Cd Baby Love
Glenn Gould/ゴルトベルク変奏曲~アリア/commmons: schola vol.1 [J.S.Bach] Ryuichi Sakamoto Selections
Global Communication/7'39 (Link and E621 Appliance of Science Mix)/Maiden Voyage
Aphex Twin/On/On
System 7/Alpha Wave (Plastikman Acid House Mix)/Alpha Wave
Adam Beyer/Simulated Usage
Angelo Badalamenti & Orbital/Beached (Long Version)/Beached
Orbital/Doctor?/Halcyon
The Advent, Industrialyzer/Terra Nosa

今晩(12/19 土曜)の深夜に、新高円寺のclub linerでDJすることになりました。大学のときの友人の初イベントということで、変な音だしに行ってきます。

詳細はこちら。

http://sites.google.com/site/prestosoundz/

サイト上のフォームに登録するとゲストリストに登録され、入場料が1,500円から1,000円にディスカウントされるようです。

三連休のうち二日もテクノ系イベントに行き、最終日はまたMichael JacksonのThis is Itを。11/21(Sat)は幕張メッセで行われた、Warp20(http://www.electraglide.info/)。11/22(Sun)は、恵比寿Liquidroomで行われた、The ORBのライブ(http://www.liquidroom.net/pickup/2091122)。11/23(Mon)は新宿三丁目WALD9でthis is it。

Warp20の方は、お目当てがLFO以外いないなぁ、と、かなりモチベーション低い状態で向かったんだけど、ついてちょうどWarpのレーベルオーナー、Steve Beckettがまわし始めた頃で、いきなりGalaxy 2 GalaxyのAmazonをかけていて(確かそうだったはず...)つい反応してしまった。そのあとも、Warpのアーティスト中心に比較的古い曲中心にかけてくれていたので、思いのほか楽しめた:)。

そのあとのBattlesは、CDで音を聴いても会場で演奏を聴いてもやはりなんでWarpにいるんだろう、と思ってしまう。悪くないけど、なぜWarp?

O.N.OのDJになってトイレに向かったんだけど、会場に3つしかトイレがなく、どれも男女とも行列状態...。最悪。だいたい10分待ちくらいか。あと、バーカウンターもそこそこ待たされる。ビール売ってるんだけど、缶ビールをコップに入れただけのもの。缶を会場に持ち込ませたくないのはわかるんだけどかなりダメな感じ。それだったら、樽とビアサーバ用意して生ビールにして欲しい...。

Chris Cunninghamは会場内に入るタイミングをのがし入り口付近でスクリーンだけみていたけど、Aphex TwinのPVで使っていた素材+新しいものを使ってかなり激しく展開していた。映像素材も放送禁止系のがいくつかあったり...。

Rei Harakamiは元々は聴くつもりなかったんだけど、そのあとのLFOの場所取りのために潜り込む。PA卓の横あたりを確保できたのであとはのんびりしていようと思ったんだけど、CDとは違って意外と固い音が多いのに驚いて聴いてしまう。ただ、delayのfeedbackがかかりすぎて歪んでいた音がかなり耳への刺激が強く、耐えられずに耳を塞ぐこともしばしば。それ以外の音はけっこう良かったんだけど。MCも、なんかいい感じのおっさん丸出しな雰囲気で面白かった:)。

そして、LFO。いつ以来だかもう覚えていないけど、やはりいいね。PA卓のレベルメーターはほとんど天井に張り付いたまま動いていなかった(^^;)。そのくらいずっとアッパーな感じのまま1時間。個人的には、L.F.O.とTied Upが聴けた時点で大満足。

翌日のliquidroomでの the orb は、その直前までAXISであった多摩美情報デザイン学科情報芸術コースの展覧会レセプションパーティーがあって、既にだいぶ酔った状態でliquidroom入り。だいぶ早く入ったおかげで、ステージ正面のスツールがあるところにすわれたのが救いか。でも、かなり眠くて最初のDJの途中で寝てしまい、次に起きた時は既にThomas Fehlmannが回していた...。そこに途中からAlex Patersonが入ってきて、ベーシックなトラックをThomas FehlmannのMacから、上にかぶせる音ネタをAlex PatersonがレコードやCDなどから出してくる、という構成で展開。the orb's adventures beyond the ultraworldからのトラックを中心に最新アルバムの中の曲などをやっていたけど、little fluffy cloudsをやった時点でもう大満足。あとはもうどうでもいい。ライブ全体としてはかなりフロアよりなアレンジ。固いリズムトラックに有名なフレーズがかぶさってきて、Alex Patersonがいろんなネタをかぶせてくる。けっこう楽しめました。

で、最後はthis is it。2回目だけど十分楽しめた。今週金曜までだから、あともう1回夜中にいってくるかなぁ。

ちなみに、2つのライブの方はチケット2枚ずつ購入したにもかかわらず、結局一緒にいける人を誘うことができず悲しいことに...。人望ないね...。

sketch 7

| トラックバック(0)

素材を並べただけの状態。極端にクリップしているように聴こえる音は細かくつぶさないとだめだな...。

mix1-20091011-1.mp3

sketch 6

| トラックバック(0)

うううん、まだまだだな...。

test3-1-20091008.mp3

how2RjDj 2

引き続き、RjDj Sprint Tokyoの際に得たノウハウの備忘録を。そういえば、先日RjDjがアップデートされていたな。

今回は、シーンをiPhoneに転送する際のもう一つの方法を。RjDj Composers Packに付属するrjzserverを使って実機に転送してみる。RjDj Sprint Tokyoの際には一人でこの方法を使って実機転送しまくっていた。というのも、いちいち rjdj.me のWEBサービスにアップする作業が手順が多くてちょっと面倒だったのと、他人のディスクスペースを公開しないjunkなシーンで埋めることに少々抵抗があったから。おそらく、自分のWAVファイルとかをシーンに組み込んだりしてサイズが大きくなったものは、rjdj.me にアップするよりもrjzserverを使ってローカルで転送した方がアップロード、ダウンロードの時間も節約できるだろう。

今回もMac OS Xをベースに進めていくが、基本的には同じことをwindowsでも実現できるはず。ホスト側のMacと実機のiPhone/iPod touchは同じLANに接続されている方が望ましい。これは、rjzserverはiPhone/iPod touchからみた場合WEBのproxyサーバーとして機能するため。

ちなみに、先日多摩美でレクチャーをしていただいた際にFrank氏本人から聞いた話によると、次期RjDjではファイル転送のための機能を内蔵するため、rjzserverは必要なくなるだろう、とのこと。なので、この手順はいずれ不要になるはず。


1. 実機に転送するシーンを用意する

how2RjDj 1(http://blog.yasaka.com/archives/2009/09/how2rjdj-1.html)の「5. image.jpgとinfo.plist」までで行ったことと同じ。実は、rjzserverを使う場合は .rjz 形式にしなくても rjzserver 側ですべて圧縮、拡張子の変更といった処理を自動的にしてくれる。なので、シーンを作ったら、すぐに rjzserver にアクセスすればiPhone/iPod touchに転送して動作確認できる。これはシーン制作の際には非常に便利。


2. Mac側とiPhone/iPod touchのネットワークを確認

Mac本体とiPhone/iPod touchが同じネットワークに接続されていることを確認する。Mac側であれば、システム環境設定の中のネットワークという項目の中にある「状況」というところにIPアドレスが表示されている。

pd2-1.pngpd2-2.png

iPhone/iPod touch側は、「設定」の中の「Wi-Fi」の中の接続されている無線LANアクセスポイントの名称の矢印をtapするとIPアドレスなどが表示される。

IMG_0253.PNGIMG_0254.PNG

両方とも無線LANで接続されているのであれば、同じアクセスポイントに接続されていることが確認できればOK。そうでない場合は、同じサブネット内にいることが確認できればOK。


3. rjzserverを起動

続いて、Mac側で rjzserver を起動する。Macの場合、RjDj Composer Packのフォルダ内にアプリケーション形式で用意されている。WindowsやLinuxでは、rjzserverというフォルダの中にある rjzserver.py というファイルを python で実行することで起動される。

pd2-3.png

※ここで注意。2009/09/17現在、RjDjComposerPack_mac.zipに含まれているrjzserverのアプリは10.6、つまりSnow Leopardでは動作しない。どうも、使用しているライブラリの依存関係が崩れてしまっているようだ。10.5(Leopard)では問題なく動作している。Snow Leopardでは rjzserver をアプリケーション形式にビルドし直す必要がある。この手順は最後に示す。

rjzserverを起動すると以下のようなウィンドウが表示される。

pd2-5.png

続いて、「File」メニューから「Set scene directory」を選び、rjzファイルが置いてあるフォルダを指定する。

pd2-6.png

今回の場合は、「RjDjComposerPack_mac」直下に置いてあるので、このフォルダを指定する。

pd2-7.png

すると、ウィンドウに「Set .rj scenes directory to /Users/yasaka/Desktop/RjDjComposerPack_mac」と表示され、設定ができたことが確認できる。

pd2-8.png

確認ができたら、rjzserverのウィンドウ内に表示されていた「Listening on」のところに表示されているURLをコピーし、Mac側のWEBブラウザにペースとして表示できるか確認する。僕の手元では、「http://192.168.0.104:8314/」となっていた。

pd2-8.1.png

このURLにブラウザでアクセスし、以下のような画面が表示されればrjzserver側の準備は完了。

pd2-9.png


4. iPhone/iPod touch側のネットワークの設定

iPhone/iPod touch側に rjzserver をプロキシサーバーとしてアクセスするよう設定する。先ほどとiPhone/iPod touchのIPアドレスを確認したときと同様、「設定」の中の「Wi-Fi」の中の接続されている無線LANアクセスポイントの名称の矢印をtapする。IPアドレスなどが表示されるが、画面を下にスクロールしていくとHTTPプロキシという項目がある。

IMG_0266.PNG

初期状態では「オフ」になっていると思うので、まずは「手動」を選択する。すると、「サーバ」、「ポート」、「認証」といった項目が表示される。

IMG_0268.PNG

ここに、rjzserver の動いているMacのIPアドレス、そしてrjzserverが利用しているポート番号を入力する。先ほどrjzserverを起動した際に表示されていた「Listening on」のあとに表示されていたURL部分からIPアドレスとポート番号を取り出す。手元では、「http://192.168.0.104:8314/」となっているが、このうち「192.168.0.104」の部分がIPアドレスで、「:」のあとに続く「8314」という部分がポート番号を表している。

情報が用意できたら、HTTPプロキシとして設定する。「サーバ」の項目にIPアドレスを、そして「ポート」の項目にはポート番号を入力する。

IMG_0256.PNG

入力ができたらホームボタンでSpringBoardに戻る。

HTTPプロキシの設定がうまくいっているか確認するためにSafariを起動する。起動したら、URLの部分に「http://rjdj.me/」と入力する。

IMG_0257.PNG

入力ができたら、「Go」ボタンをtapする。以下のような画面が表示されれば、rjzserver との接続設定は完了。

IMG_0259.PNG


5. iPhone/iPod touchから rjzserver にアクセス

rjzserverで指定したディレクトリにシーンのフォルダが配置されていることを確認したあとに、先ほどiPhone/iPod touchのSafariで開いたURLを再度開く。接続できるとこのような画面が表示される。

IMG_0269.PNG

フォルダのまま、つまり、「test1.rj」として置いてあるはずのシーンが、Safari内では「Install test1.rjz」と、 .rjz 形式で表示されていることがわかる。このリンクをtapすると、RjDjが起動し、シーンファイルがインストールされる。

このように、毎回修正するたびに .rjz 形式のファイルを作成する必要がなく、また rjdj.me のWEBサービスにアップする手続きも不要であるため、頻繁に修正、インストールを繰り返す際には非常に便利。

ちなみに、作業が終わったあと、iPhone/iPod touchのネットワーク設定に再度アクセスし、HTTPプロキシを「オフ」にすることをお忘れなく。HTTPプロキシを有効のままだと他の作業ができないので注意していただきたい。

お試しあれ。


おまけ. Snow Leopardで rjzserver をビルドする

冒頭にも説明したように、RjDj Composers Packに含まれているrjzserver.appはLeopard用にビルドされたもので、Snow Leopardでは動作しない。動かそうとすると、こんな画面が表示される。

pd2-10.png

エラーを見る限りでは、ライブラリ周りの整合性の問題のように見えたので、rjzserver をリビルドする。


1. build-mac.sh を修正

RjDj Composers Pack内の rjzserver というフォルダの中に「build-mac.sh」というシェルスクリプトがある。これをそのまま実行しようとすると最後の方に rjdj.me へ出来上がったアプリをアップロードする部分まで含まれているので、その部分を削る。

まず、テキストエディタで「build-mac.sh」を開く。くれぐれも、「build-mac.sh」をダブルクリックしないように。Mac OS Xに標準のテキストエディットでも開けるはず。以下のようなウィンドウが開く。

pd2-11.png

この内容を、以下のように修正する。

pd2-12.png

つまり、最終的には

#!/bin/sh
svn -r447 co http://svn.makotemplates.org/mako/trunk/lib/mako
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/bin/py2applet -i mako.cache rjzserver.py media/

の3行以外は削除することになる。削除できたら保存する。


2. build-mac.shをターミナルから実行

続いて、「アプリケーション」内の「ユーティリティ」フォルダ内にある「ターミナル」というアプリケーションを起動する。

pd2-13.png

ウィンドウが開いたら、「cd」コマンドで、RjDj Composers Pack内の rjzserver フォルダへ移動する。手元の場合はデスクトップ上にRjDj Composers Packを置いてあるので、

cd ~/Desktop/RjDjComposerPack_mac/rjzserver

という記述になる。ちなみに、この時点で「cd コマンドってなに?」という方は、これ以降続けない方がいいかも...。

移動したら、「ls」コマンドで先ほど修正した「build-mac.sh」ファイルがあるのを確認する。

pd2-14.png

確認できたら、

sh ./build-mac.sh

と実行する。すると、以下のようにいろんなメッセージが表示される。

pd2-15.png

色々と表示されたあとに、最後にこんな感じで再びプロンプトが表示される。

pd2-16.png

Finderでrjzserverフォルダの中を確認し、rjzserverアプリが存在していればビルドは完了。

pd2-17.png

あとは、上記のように起動して設定すれば同じように利用できるはず。ちなみに、ビルドは32bitモードでしか確認していないので、64bitモードでどのようになるかは確認できていないのでご注意を。

twitter

Google Reader

最近のコメント

アイテム

  • description_diagram1.png
  • description_diagram2.png
  • IMG_1699.jpg
  • IMG_1696.jpg
  • IMG_1695.jpg
  • IMG_1680.jpg
  • IMG_1678.jpg
  • ipadsc25.png
  • ipadsc24.png
  • ipadsc23.png

ウェブページ

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。