soundの最近のブログ記事

mot collapsed 音響パート詳細

今回東京都現代美術館で開催されている「音楽とアート」展に出品されている、坂本さんと高谷さんの「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

三日目

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

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

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

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

mot collapsed 2

二日目。

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

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

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

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

mot collapsed 1

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

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

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

Forest Symphony作業記 20110716

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でのデータロガーは取りこぼしもなく問題なく利用できることがわかったので、これを少々いじって本番で利用する予定。

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

Forest Symphony制作記 20110712-1

IMG_1678.jpg

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

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

久々にネタができたので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

prestoでのセットリスト

朝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円にディスカウントされるようです。

sketch 6

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

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モードでどのようになるかは確認できていないのでご注意を。

how2RjDj 1

http://tokyomax.jp/rjdj/
http://rjdjtokyo.tumblr.com/

数日たちましたが、芸大の芸術情報センターで行われた、RjDj Sprint Tokyoにいってきた。初日だけだけど。二日目の内容が気になるところではあるけど、とりあえず初日で一通り自分でRjDjのシーンを作るための手順などは説明されていたので、備忘録的な意味で自分でまとめてみた。


1. 環境構築

自分の環境はMac OS Xなので、すべてMacベースで話を進めていく。同じものがWindows用にも用意されているので、ほぼ同じような手順で進められるとは思うけど。あと、PureData自体についての説明は省略するので、他のサイトなどで確認を。

まずは以下のものを用意します。

・Pd-extended (http://puredata.info/downloads)
RjDjのエンジン部分でもあるPureData本体をダウンロードする。RjDjのサイトでは、vanilla版を使うように、という説明が書かれていますが、iPhoneのタッチパッドのシミュレーションや描画のシミュレーションなど一部でgemなどを使ったりすることがあるので、extendedの方がよさそう。

・RjDj Composers Pack(http://more.rjdj.me/~fbar/cop/)
RjDjComposerPack_mac.zip というファイルをダウンロードする。ただし、2009/09/13現在の時点で一部足りないファイルがあるので、 pd-missing.zip もダウンロードする。いずれは一つのファイルにまとめられるはず。

ダウンロードできたら、まず、Pd-extendedをインストール。dmgファイルをダブルクリックすると、ライセンス確認の画面がでてくるのでOKをクリックし、チェックサムの確認が終わったあとに以下のようなウィンドウが表示される。このうち、Pd-extendedのアイコンをApplicationフォルダのアイコンにドラッグ&ドロップしてコピーします。これで完了。当然、デスクトップにマウントされているディスクイメージは取り出しておく。

pd1.png

続いて、RjDj Composers Packを解凍。pd-missing.zipの方も解凍。それぞれ、出来上がったフォルダをみるとこんな感じ。

pd1.1.pngpd1.2.png

このうち、pd-missing.zipを解凍して出来上がったpdフォルダの中身すべてを、RjDjComposerPack_macフォルダの中のpdフォルダの中にコピー。最終的には、RjDjComposerPack_macフォルダの中のpdフォルダはこんな感じに。

pd1.4.png

ここまで用意ができたら、次はPdの方の環境設定。先ほどApplicationフォルダにコピーしたPd-extendedを起動する。起動すると、こんな画面が表示されるはず。

pd2.png

続いて、Pd-extendedメニューからPreferencesを選んで、さらにその中のPathを選択する。

pd3.png

PD search path for patches and other filesというウィンドウが表示される。

pd4.png

表示されたら、Newボタンをクリックする。Add a new pathというファイル選択画面が表示されるので、先ほど解凍したRjDj Composers Packの中のpdフォルダを選択してChooseボタンをクリックする。

pd5.png

すると、選択したフォルダの場所が新たにPD search path for patches and other files画面の中に追加される。これは、RjDj関連のファイルをPd-extendedから参照できるようにするために登録している。

pd6.png

あとは、Applyをクリックして、OKボタンをクリックしてウィンドウを閉じる。

設定が正しいか確認するために、RjDj Composers Packの中のexample_scenesの中のHelloWorldWorldWorld.rjフォルダ内にある _main.pd というファイルを開く。以下のように、soundinputとsoundoutputのところに緑のvolumeスライダーが表示されていれば正しく設定されている。

pd7.png

確認ができたら、いま開いた _main.pd を閉じる。以上で環境設定が完了。


2. テンプレートを複製する

RjDj Composers Packには、シーン制作のための基本ファイルセットをまとめたテンプレートが用意されている。SceneTemplate.rj というフォルダがそれだ。シーンを作る際にはこのテンプレートを複製することから始めることになる。Scene Template.rj を選択して、ファイルメニューから複製を選ぶ。

pd8.png

複製されたフォルダの名称を変更する。ここでは、test1.rj というフォルダ名に変更する。必ず、フォルダ名のあとに .rj をつけるように。あと、日本語文字は使わず、半角の英数字のみで名称を付けるようにした方が安全かも。

pd9.png

テンプレートとして用意されているファイルの中身は以下のとおり。

・_main.pd
シーン作成するファイル。RjDjに転送された際、このファイルが自動的に読み込まれて実行される。この中に、音響処理部分を記述することになる。ファイル名を変更すると読み込まれないので注意すること。

・image.jpg
RjDjに読み込まれた際に表示されるイメージファイル。320x320のサイズのものであれば問題ないので自分の好きなものに置き換えることが可能だが、ファイル名は必ずimage.jpgとしておくこと。

・info.plist
XMLで記述された、シーンの基本情報。author(制作者名)、description(シーンの概要)、name(シーンの名称)、そしてcategoryを記述するようになっているが、現在のところcategoryは使われていないらしい。Mac OS Xだとこのinfo.plistをダブルクリックするとProperty List Editorというアプリケーションが起動されるので、この中でそれぞれの項目を編集することになる。Mac OS X以外の環境では、テキストエディタでこのファイルを読み込み、該当する箇所を編集することになる。これもファイル名は変更しないこと。

pd10.png

・LICENSE.txt
シーンのライセンス形態を説明しているファイル。どうやらGPLが採用されているようだ。GPL以外のライセンスで公開したい時にどうするのかは実は確認できていないので、機会があれば聞いてみたい。

・rj
フォルダの中に様々なPdのアブストラクトファイルが含まれている。これは、RjDjチームが用意しているライブラリで、シーン制作を非常に容易にしてくれている。このライブラリはかなりよくできているので、シーン制作以外の時にもかなり有益なものになるはず。

pd11.png


3. _main.pdを開く

先ほど作成したtest1.rjの中の_main.pd をPd-extendedで開く。以下のような画面が表示される。

pd12.png

soundinput と soundoutput があるので、その間に音響処理のための部分を構築すれば、iPhone上のRjDjに読み込まれた際に、マイクからの音(soundinput)を処理してそのままイヤホン(soundoutput)に結果を出力する、というシーンが作れるわけだ。

右側にいくつかボタンがあるが、declareで始まっているものは、_main.pd と同じ階層にあるファイルと、rjフォルダの中にあるファイルを参照するために必要なものなので削除しないように。pd LICENSEは、クリックすると作成したシーンがGPLライセンスベースであることを説明するウィンドウが表示される。これも基本的にはそのまま残しておく。

一番下にあるOVERVIEW というボタンをクリックすると、以下のようなウィンドウが表示される。

pd13.png

これは、テンプレート内に用意されていたrjフォルダ以下にあるライブラリの機能を説明している。例えば、effectsのeをクリックするとRjDjライブラリで用意されている様々な音響効果のアブストラクトが表示され、それぞれ簡単な説明がついている。

pd14.png

effectsの中の e_fbdelay というアブストラクトオブジェクトをクリックすると、その中の構造が表示される。

pd15.png

これだけではどのように使っていいかわからないので、いったん e_fbdelay.pd の画面を閉じて、今度はcontrolキーを押しながら e_fbdelay というオブジェクトをクリックしてみる。マウスボタンが2つある場合は、右クリックするとでてくると思う。すると、Properties、Open、Helpという項目からなるポップアップメニューが表示される。

pd16.png

この中のHelpを選ぶと、そのe_fbdelayのヘルプウィンドウが表示される。ここには、それぞれの入出力がどういう役割を持っているか、そしてその横にサンプルのパッチが用意されている。

pd17.png

このように、RjDjで用意されているライブラリにはすべてヘルプファイルが用意されているので、そのオブジェクトをどう使うかわからない場合は、まずはそれぞれのヘルプファイルを参照するといいだろう。


4. _main.pd を編集

実際に何らかの音響処理をするシーンをまずは用意してみよう。先ほど、RjDjライブラリの中から参照した、e_fbdelayというフィードバックディレイの効果をつけてくれるオブジェクトを使ってみる。iPhoneのマイクから入力されたサウンドソースを、左右それぞれ違うディレイタイムを設定して、ディレイ音が左右からパラパラと出てくるようなものを考えてみた。以下のような感じでパッチを用意してみる。

pd17.3.png

e_fbdelayは二つの引数を指定する。一つはディレイバッファの識別名称。もう一つは、最大のディレイタイムで単位はミリ秒。今回の場合、同じディレイバッファを違うディレイタイムで処理すればいいので、識別名称は同様のものを用意している。最大ディレイタイムは左右で違うディレイタイムを設定できるよう変えてある。

実際のディレイタイムの指定は、e_fbdelayオブジェクトの2番目のインレットにシグナル形式で値を渡す。そのため、ナンバーボックスのあとに sig~ が用意されている。ヘルプファイルを参照すればわかるが、それ以外のパラメータについては3番目のインレットに送ることで設定できる。ここでは、feedbackを0.3という値に設定。さらに、feedbackしすぎてハウリングを起こす傾向にあるので、最終的な出力をしぼってあげるために 0.1 をシグナルにかけることにした。

pd17.4.png

なお、ディレイタイムなどそれぞれの値はloadbangオブジェクトで起動時に設定されるようにしておかなければならない。iPhone上のRjDj内では基本的にはいま見えているオブジェクトやナンバーボックスなどは表示されないので。後ほど説明する加速度センサーやタッチパネルの情報を使って値を変更することはできるが、それ以外は基本的にボリュームスライダしかないので注意が必要。

調整ができたら_main.pdを保存して閉じる。


5. image.jpgとinfo.plist

_main.pdが用意できたら、続いてはimage.jpgとinfo.plistを編集する。image.jpgの方は、特に何もなければデフォルトのRjDjのイメージがそのまま利用されるが、なにか他の画像に差し替える場合は320x320のJPEG形式で画像ファイルを用意し、ファイル名をimage.jpgに修正して既存のものと差し替えることになる。

info.plistの方は、author、description、nameをそれぞれ編集する。手元では以下のようにしてみた。

pd18.png


6. rjz形式のファイルを用意する

実際にRjDjに転送してシーンとして利用するには、編集したtest1.rjフォルダをrjz形式に変更する必要がある。rjz形式というのは、.rjフォルダをzipでアーカイブした形式をさす。なので、Mac OS Xの場合は、test1.rjフォルダをコントロール+クリック、あるいは右クリックして「"test1.rj"を圧縮」という項目を選ぶことでzip形式にアーカイブできる。

pd19.png

出来上がったアーカイブはそのままだと「test1.rj.zip」というようになっているので、Finderで最後の .rj.zip の部分を .rjzに変更する。と、やりたいところなのだが、このままだとちゃんと拡張子がrjzとなっていない可能性が大きいので、次のようにして.rjzとなるよう変更する。

test1.rj.zipをコントロール+クリック、あるいは右クリックして「情報をみる」を選ぶ。

pd20.png

「"test1.rj.zip"の情報」というウィンドウの中の「名前と拡張子」という項目を開く。「拡張子を隠す」という項目にチェックがついていたらこれを外し、ファイル名のところを「test1.rjz」となるよう修正してウィンドウを閉じる。これで問題なく .rjz 形式のファイルが用意できる。

pd21.png


7. rjzファイルをiPhone上のRjDjに転送

あとは、iPhone上のRjDjにrjz形式のシーンファイルを転送して実際に動くかどうか試す、ということになる。RjDjでは、シーンファイルを転送するための方法が二つある。一つは、rjdj.me で用意されているWEBサービスを使う、というもの。もう一つは、RjDj Composers Packに付属のrjzserverというproxyサーバーを利用する方法。

ここでは、rjdj.meで用意されているWEBサービスを利用する方法について紹介する。

http://rjdj.me/sharescene/ にアクセスしてアカウントを作成する
すでにrjdj.meにアカウントがある場合は飛ばしていいが、ない場合はまずはアカウントを作る。URLにアクセスすると、画面の右上の方に「signup」というリンクが用意されているので、これをクリックする。

pd22.png

すると、アカウント作成のための画面が表示されるので、「desired username」には希望するユーザー名を入力し、あとはメールアドレスとパスワードを入力する。なお、日本語が考慮されていないシステムであるため、各項目は必ず半角英数字で入力するように。

pd23.png

入力できたら、「get inside」ボタンをクリックする。うまくアカウントが作成されると「Welcome! You are now logged into RjDj.」というメッセージとともにこんな画面が表示される。これでアカウント作成は完了。

pd24.png

・再度、http://rjdj.me/sharescene/ にアクセス
アカウント作成後、再度 http://rjdj.me/sharescene/ にアクセスすると、先ほどと違って今度はシーンアップロードのための画面が表示される。このフォームに必要な情報を入力して、rjdj.meのWEBサービスにシーンファイルをアップロードすることになる。

pd25.png

・必要項目を入力
まず、「Rjzfile」というところにアップロードするシーンファイルを指定する。フィールドの横にあるボタンをクリックして、先ほど用意したtest1.rjzを選択する。

「Name of your scene」には、シーンの名称を付ける。今回はテストのためのアップロードなので、「test1」としておく。ここにあまり長いものをつけると、ダウンロードの際のURLが長くなるのでなるべく簡潔に。なお、先ほどのアカウント作成の時と同様に、ここでも日本語の文字は使わず、すべて半角英数字で入力するように。

「Notes for people downloading this scene.」には、簡単にどういうシーンなのか記述する。今回はテストシーンなので「test scene using e_fbdelay」としてみた。くどいようだが、ここも半角英数字で入力するように。試しに日本語で記述してみたが、エラーになってアップロードができなかったので。

次の二つあるチェックボックスについて、最初のものは、アップロードするシーンを一般公開する際にチェックをつける。ここにチェックをつけると、RjDjチームの方でシーンのチェックが入り、問題がなければ、http://rjdj.me/music/ にあるような形で一般公開され、誰でもダウンロードができる状態になる。今回はあくまでもテスト用のアップロードなので、チェックは外す。

二つ目のチェックボックスは、アップロードしたシーンを有償ダウンロードにしたい場合にチェックをつける。ここにチェックをつけると、RjDjチームからメールでコンタクトがあり、販売するにあたっての手続きが進められることになる。今回はあくまでのテスト用のアップロードなので、チェックはつけない。

最後の「Notes for the RjDj team」は、RjDjチームへなにか連絡事項があれば記入する。今回は当然何もないので空欄のままでいい。

pd26.png

・アップロード
以上、用意ができたら最後に「upload」ボタンをクリックする。シーンファイルのサイズによって異なるが、多少時間がかかるので、途中で止めたりせずに少し待つ。うまくアップロードされると、以下のような画面が表示される。

pd27.png

ここで注意したいのが表示されているURL。今回は、「Name of your scene」に「test1」と入力したので、 URLが

http://rjdj.me/sharescene/test1/

というようになっている。シーンの名称に指定した文字列がそのままURLに反映されるため、スペースを入れたり、変な記号を使うことはさけた方が安全。ちなみに、自分の場合は、パッチ制作の時点で何回かアップロードし直す必要があったので、

http://rjdj.me/sharescene/test1-5/

というURLになってしまった...。test1の方をダウンロードすると激しくハウリングを起こすので使わない方がいい...。

さらに、このURL が実際のシーンのダウンロードの際に必要となる。今回の場合、シーンは一般公開されないため、このURLをどこかにコピーするかメモしておかないとわからなくなるので注意が必要。このURLをiPhone/iPod touchで読んでいるメールアドレスに送る、というのが最も簡単な方法かも。

以上で、rjdj.meのWEBサービスを使ったシーンファイルのアップロードが完了する。


8. 実機で確認

アップロードしたシーンを実際に実機で動かし動作するか確認してみる。先ほどのURLをiPhone/iPod touchのメールアドレスに送り、メッセージ内のURLをtapするか、Safariを起動してURLを入力してアクセスする。

IMG_0241.jpg

アクセスすると、installというボタンがあるので、これをtapする。

IMG_0242.jpg

すると、RjDjが起動してファイルのダウンロードが開始される。

IMG_0243.jpg

無事ダウンロードできると、Installed test1というメッセージが表示される。

IMG_0244.jpg

これで、シーンのインストールは完了。あとは、シーン一覧の中にあるtest1という項目をtapして実際にシーンを動かしてみる。

IMG_0248.jpg

さて、無事うまく動いているだろうか???

iSuperCollider.jpg

先日、赤松さんのブログにiPhoneで動くiSuperColliderの現状、というエントリーが上がっていて、iPhoneでSuperColliderが動くことを知った。

http://akamatsu.org/aka/?p=3220

これは自分でも試してみなければ、とソースコードからビルドしてみて見事動いたので、ここに手順を。

大前提として、iPhone Developer Programに参加していて、有効なprovisioningファイルを用意できていること、svnやln、cdなどunix系のことを知っていることが必要だろう。ということで、

1. まずはソースコードを入手する

http://supercollider.sourceforge.net/developers/

に書いてあるようにsvnでソースコードを取得する。ターミナルを立ち上げて、

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

を実行する。すると、ファイルが次々とダウンロードされて、

A SuperCollider3/Packager/background.png
A SuperCollider3/Packager/OPTIONALS_README_SOURCE.txt
A SuperCollider3/Packager/dmg_without_optionals.ds_store
A SuperCollider3/Packager/USAGE
A SuperCollider3/Packager/optional
A SuperCollider3/Packager/pkg-dmg
A SuperCollider3/Packager/OPTIONALS_README_OSX.rtf
A SuperCollider3/Packager/dmg_with_optionals.ds_store
A SuperCollider3/Packager/package
A SuperCollider3/Plugins.xcodeproj
A SuperCollider3/Plugins.xcodeproj/project.pbxproj
U SuperCollider3
Checked out revision 9349.

というような感じで終了する。「SuperCollider3」というフォルダができていると思うので中身をみると、以下のような感じに「iPhone_Language.xcodeproj」と「iPhone_Synth.xcodeproj」、そして「iPhone Resources」というようにiPhone関連のファイル、フォルダがあるのがわかる。

090814-0001.png

2. iPhone_Synthを開いて初期設定

まずは、二つあるiPhone関係のプロジェクトファイルのうち、iPhone_Synthの方からビルドする。ダブルクリックしてXcodeを起動すると、左上の「概要」の部分が「Simlator - 2.2 | Degbu ...」となっていると思うので、これを変更する。

・アクティブSDKを「iPhone Device 3.0」
・アクティブな構成を「Release」
・アクティブターゲットを「libscsynth」

というように変更する。

xcode1.png

さらに、右上の方にある「情報」アイコンをクリックし、「ビルド」タブを開いて以下の項目を確認する。

・"Code Signing"の中の「コード署名ID」で正しいプロビジョニングファイルが選択されているか
・"Deplyment"の中の「iPhone OS Deployment Target」が「iPhone OS 3.0」になっているか
・"アーキテクチャ"の中の「ベースSDK」が「iPhone Device 3.0」になっているか

090814-0003.png

これらの確認、変更ができたらウィンドウを閉じる。

3. libscsynthをビルド

先ほど「概要」のアクティブターゲットを「libscsynth」に設定してあるが、それ以外に「iscsynth」というターゲットも用意されている。まずは「libscsynth」の方からビルドする。アクティブターゲットとして選択したあとに、「ビルド」をクリックする。

いくつかwarningが出るが、右下に「問題なく完了しました」とでればlibscsynthのビルドは完了。

090814-0004.png

4. iscsynthをビルド

続いて、おなじiPhone_Synthプロジェクトの中の「iscsynth」をビルドする。まずは「概要」のアクティブターゲットを「iscsynth」に変更する。

xcode2.png

アクティブターゲットを変更したら、中央のファイル一覧の中から「libsndfile.a」という項目を探す。おそらく一番右端のチェックボックスにチェックがついていると思うので、これを外す。そして、その下の「libsndfile_iphone.a」という項目にチェックをつける。

090814-0005.png

変更したら、「ビルド」をクリックする。右下に「問題なく完了しました」と表示されればOK。

5. iPhone_Languageをビルド

いよいよ本体の方のビルド。先ほどのiPhone_Synthプロジェクトを閉じて、iPhone_Languageの方を開く。

090814-0006.png

こちらも「概要」の部分に変更を加える。

・アクティブSDKを「iPhone Device 3.0」
・アクティブな構成を「Release」

というように変更する。今回は、アクティブターゲットは1つしかないので変更の必要はない。

xcode3.png

そして、右上の方にある「情報」アイコンをクリックし、「ビルド」タブを開いて以下の項目を先ほどと同様に確認する。

・"Code Signing"の中の「コード署名ID」で正しいプロビジョニングファイルが選択されているか
・"Deplyment"の中の「iPhone OS Deployment Target」が「iPhone OS 3.0」になっているか
・"アーキテクチャ"の中の「ベースSDK」が「iPhone Device 3.0」になっているか

これらの確認、変更ができたらウィンドウを閉じる。

そして、最後に「ビルド」ボタンをクリックする。いくつかwarningがでるが、右下に「問題なく完了しました」と出ればビルドが完了する。

090814-0007.png

6. ファイルを実機に転送

自分のiPhone 3GSは現在3.0.1が動いている。本来であれば最後に本体をビルドするときは「ビルドして実行」を選べば勝手にアプリが実機に転送されて動き出す、ということができるのだが、3.0.1が動いている場合はちょっと工夫しないといけない。

解決方法の1つとしては、「iPhone 構成ユーティリティ」というアップルが配布しているプログラムを利用する方法。プログラム自体は、こちらからダウンロードできる。

http://support.apple.com/downloads/iPhone_Configuration_Utility_2_0_for_Mac_OS_X?viewlocale=ja_JP

これを使って、ビルドして出来上がったファイルを実機に転送するわけだ。ビルドした実行ファイルは、ソースコードが入っている「SuperCollider3」フォルダの中の「build_iphone」というフォルダの中にできている。

090814-0008.png

この中にある「SuperCollider」というアイコンをiPhone構成ユーティリティーにdrag&dropして実機へのインストールを進めることができる。

もう1つの解決策としては、

/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

の中に3.0.1用のシンボリックリンクを作る、というもの。上記のフォルダをみると、「3.0 (7A341)」というフォルダは存在するが、3.0.1のためのものが見当たらない。そこで、ターミナルで、

cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/
ln -s "3.0 (7A341)" 3.0.1

と2つコマンドを実行してあげることで、3.0.1のためのサポートを用意してしまう。このように変更したあとに実機をつないで、Xcodeを立ち上げて、iPhone_Languageを開き、「ビルドして実行」をクリックすると、実機の方にアプリが転送されてアプリが立ち上がるはず。

090814-0009.png

最初にこの画面が表示され、

IMG_0202.PNG

続いてこの画面が表示されればOK。

IMG_0203.PNG


7. 音が出るか試す

このままでは何も確認できないので、実機の下の方に表示されているメニューバーから「Browser」を選び、「patches」という項目を選ぶ。

IMG_0204.PNG

その一番最初に「accelerometer.rtf」という項目があるので、これをtapする。

IMG_0200.PNG

すると、「Editor」が開いてSuperColliderのコードが表示される。

IMG_0205.PNG

下の方にある「Execute」をtapし、下にあるメニューバーの「Post」を選択。「Speakers」というボタンがあるので、これをONにして、本体を傾けたり揺らしたるすると、動きにあわせて音がなるはず。

IMG_0201.PNG

停止するときは、「Speakers」をOFFにして、その隣の「X」ボタンをtapすれば実行が止まる。

この事例でわかるように、最初からiPhoneの加速度センサのためのクラスが用意されているあたりがかなりいいですな:)。ま、実際のところ僕自身はSuperColliderではまったくコード書いたことないのだけど...。

というわけで、iPhone Standard Developer Programに入っていて実機を持っていればこちらはすぐに試すことができる。Developer Programに入ってない人は、近くにいる人の頼んでビルドしてもらって、provisioningファイルとともに実行ファイルを受け取ってインストールしてみるしかないのが現状か。

いずれにしても、いままでiPhone側でOSCを送信してコントローラとして使うことは多かったけど、SuperCollider自体がiPhoneで動いてしまうのはかなり楽しい。先ほども書いたように、僕自身はSuperCollider使いではないので、書ける方々は是非ともiPhoneをターゲットとしたパッチを書いて公開してほしい。

ultimate ears triple.fi 10vi

P1000995.jpgP1000994.jpg

http://www.ultimateears.com/_ultimateears/store/products/triplefi10vi.php
http://www.logicool.co.jp/index.cfm/speakers_audio/earphones/devices/5660&cl=jp,ja&reloadcache=wlogi

ここ数ヶ月金欠状態が続いていたためずっと我慢していたんだけど、どうも最近AppleのIn-Ear Headphones with Remote and Mic(http://store.apple.com/jp/product/MA850G/A?fnode=MTY1NDA1MA&mco=NzAzMDg3NA)の音が好きになれず、かといってSonyのMDR-NC500D(http://www.sony.jp/headphone/special/mdr-nc500d/index.html)を使うには季節的にもちょっと厳しい状況が続き、衝動買いを控えていたこともありついに我慢も限界に。

んで、いろんなレビューを読んで気になっていたUltimate Earsのtriple.fi 10を買ってしまった:)。しかも、iPhone用にボタンとマイクがついている10vi。amazonで4.6万円。イヤホンの値段とは思えないね(^^;)。

P1000996.jpg

ものが今朝届いて、早速24bit PCM音源を再生してみる。いやあ、すごい。前に親友から「モニタスピーカみたいだ」と聞いていたけど、ほんとそんな感じ。極端に味付けされたドンシャリな傾向はなく、かといって低域から広域までしっかりのびて落ち着いて聴ける。思わずそのままアルバムを1枚聴き込んでしまった。

バランスドアーマチュア型のイヤホンはこれが初めてではなく、10年近く使っていたEtymoticのER-4B(http://www.etymotic.com/ephp/er4.aspx)や、AppleのIn-Earもそうなんだけど、ER-4Bと同じくらいにいい感じです。元々は、ER-4Bをどこかで紛失したのがいけなかったんだが...。

ちなみに、triple.fi 10は本体とケーブルが脱着できるようになっているので、オプション販売されているケーブルと交換すれば通常の10proと同じ状態になるのもうれしい。

いずれにしても、値段相応にしっかりした音しているし、iPhoneのリモコン操作も通話もできるので、かなり気に入っているところ。これからエージングしてさらにどこまでよくなるのかが楽しみ。

sketch 5

audiomulch20b4.png

先月から、audiomulch(http://www.audiomulch.com/)というツールのベータテストプログラムにエントリーして使っていて、とりあえず簡単なパッチを組んで生成してみた音。上の画像のとおり、非常に単純(^^;)。元の音はサイン波で、それを色々と加工している。flangerで位相がぐちゃぐちゃになっているあたりが心地よいかな。

am2b4-20090527.mp3

audiomulch自体は、まだ大学にいた頃に見つけてMax/MSPよりもモジュールの粒度が荒いけど、結構使いやすいということで、ライブとかでよく使っていた。ちなみに当時はwindows only。audiomulch 2.0は、windows/Mac OS X両方で動くというので、数年ぶりにいじってみているんだけど、昔使っていたあの環境がOS X nativeで動いてくれるのは非常にうれしい :)。昔のパッチも、若干修正することで動いてくれているし。

http://www.audiomulch.com/200preliminary_information.htm

正式リリースは6月とのことなので、リリースされたらデモ版でお試しを。

#関係ないが、某所で某氏がAN4のレビューを、と書かれていましたが、さて、どうしたものか...

twitter

ウェブページ

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