musicの最近のブログ記事

iTunesイントロ再生AppleScript

とある方の依頼で、「iTunesのライブラリをランダムに最初の2秒再生し続けていくプログラム知らない?」というものがきて色々探してみたんだけど、どうもいいのが見つからないので、

http://stackoverflow.com/questions/14674517/how-to-set-itunes-11-in-shuffle-or-repeat-mode-via-applescript

http://veadardiary.blog29.fc2.com/blog-entry-4587.html

を参考にして、AppleScriptで、シャッフルをONにしてランダムに選曲したものを指定した間隔で再生し続けていくものを作ってみました。

変数のplayTimeが再生時間、skipTimeは頭から何秒スキップして再生開始するか指定できるようにしてあります。依頼のあったリクエストの場合はplayTimeが2でskipTimeが0というようなことになります。

Mac OS X 10.7+日本語環境+iTunes 11.0.4

でしか確認していないです。英語環境だとうまく動かないかも。iTunesが11以外のバージョンでもうまく動かないかも。

使ってみると、iTunesの中で埋もれていた曲が色々とみつかって、けっこう面白いです。

random30secDigestJ.scpt.zip

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/

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

音楽三昧な三連休

三連休のうち二日もテクノ系イベントに行き、最終日はまた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 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

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

CD impression 20090531

本当はいま頼んでいるCDが届いてからと思っていたんだけど、なかなかこないのでとりあえず。今月はあまり買ってないかな...。

Various/休日音楽...△
(http://www.della.co.jp/club/catalog/index.php?code=DLDH-1835)
細野さんの歌謡曲ボックスを探していてたまたま見つけたCD。ご近所の小池光子さんと細野さんが一緒に歌っている曲が目について購入したんだけど、目的の曲以外はちょっと微妙...。

細野晴臣/細野晴臣の歌謡曲20世紀ボックス...◎
(http://www.20thbox.com/)

坂本龍一/tokyo 031909...◎
(http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=309201832&s=143462)
国際フォーラム二日目の公演。とりあえず、残りの二つも含めて聴きにいった日のものをiTunesで購入してみた。いずれも、行った公演のお土産的な感覚で購入して、あとから聴き返せるというのは非常にいいと思う。個人的には、DRM付きのAAC 128Kbpsではなく、もっと値段高くてもいいのでDRMなしのAAC 256Kbps(iTunes Plus形式)だったらよかったのになぁ、と。まあ、日本の音楽業界の状況からすると、iTunesからDRMが消えることはしばらくはなさそうだけど...。

坂本龍一/tokyo 042809...◎
(http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=314433776&s=143462)
初台オペラシティーの武満ホールで行われた公演。今回いった中では、選曲はこの日がベスト:)。武満ホールは音が気になっていってみたんだけど、思いのほか残響音が長くて驚く。ライヒの公演の時はあまり気にならなかったんだけど。

坂本龍一/tokyo 042909...◎
(http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=314669722&s=143462)
最終日の人見記念講堂で行われた公演。会場の音は意外とここがよかったかも。

坂本龍一/2009 Tour book...◎
(http://www.commmonsmart.com/detail/?Goods=221&Color=0&pcid=1)
会場で売っていた、今回のツアーパンフに2枚CDがついていたんだけど、これが意外と選曲も含めていい。

Cornelius/CM3...
(http://wmg.jp/artist/cornelius/WPCL000010658.html)

Cornelius/sensous syncronized show(DVD)...
(http://wmg.jp/artist/cornelius/WPBL000090122.html)
もう一度ちゃんとみる必要があるんだけど、どうも音が会場での感じと違い過ぎで違和感を感じる...。

Various/commmons: PEEP Ryuichi Sakamoto...
(http://www.commmonsmart.com/peep/?peepno=1&pg=1)

Various/commmons: PEEP Reiko Masuda...
(http://www.commmonsmart.com/peep/?peepno=1&pg=1)

Pet Shop Boys/Yes,Etc...○
(http://www.emimusic.jp/intl/psb/disco/tocp66876.htm)
ちょっとドラムの音が重いというか暑苦しく感じるのは僕だけでしょうか(^^;)。それ以外は相変わらずの音でなかなかいい。前作Releaseを超えてはいない気もするけど。

Depeche Mode/Sounds Of The Universe...◎
(http://www.emimusic.jp/intl/depechemode/disco/tocp66877.htm)
ネットでひろってきてかなりよかったので、ちゃんとCDで購入。細かいところでなっているヤバいシンセの音がいいです。でも、全体としてちゃんとdepeche modeカラー。

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のレビューを、と書かれていましたが、さて、どうしたものか...

sketch 4 ?

久々にmonomeを引っ張りだしてセットアップしてmlrで遊んでみた時の様子。CMJKのcoldsleepのシンセのフレーズとYMOのlight in darknessのハイハットのフレーズを引っ張りだしてmlrでぱちぱちボタンをいじってパターンを作ったもの。sketchともいえないようなレベルなので「?」つき...。

ちなみに、我が家にビデオカメラやXactiのような動画カメラがなかったので、デジカメでとったもの。音が悪いのはデジカメのマイクの性能とCODECが悪いため...。

sketch 3

sketch 1とsketch 2は、某雑誌の募集に間に合わせようとやってみていたものだったんですが、やはり締めきりにまにあわず...。まあ、でも、素材としては面白いので練り続けていくつもりです。

で、今回のは、仕事でデータの復旧を試みているハードディスクにコンタクトマイクを貼付けて録った素材が非常に面白かったので、とりあえず録ったやつにpanをふってmasterにozone 3でEQとリバーブ、コンプをかけてまとめたもの。これはこれで面白いけど、各素材からいい音を取り出して利用したいところか。ただ、ちょっとリバーブが深すぎたかな...。

収録状況はこんな感じ。

P1000937.jpg


screams-20090427-1.mp3

twitter

ウェブページ

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