続・Max7日記 (7)
長嶋 洋一
2018年8月14日(火)
「今週は論文執筆週間」と決めてスタートしたものの、フト思い出した情報とか、次々に届く情報とか、東京オリンピックで亡霊のように再浮上した「サマータイム」に関する 日本時間学会 理事の厖大な議論メイルとか、どんどん溜まってきてしまった。 例えば、先週の MaxSummerSchool2018 の三輪さん講演に関するメモとして
と謎の数式を大きく書いておくことは、後期の講義のために必須である。 そして、 ICEC2018 の最終チェック原稿として、Springerから このように 届いた・・・というメモも、ここにひっそりと書いておく必要がある。 さらに、12月には完全にバッティングすることが確定していた以下の2つの学会研究会/大会についても、発表申し込み期間となったので決断が求められた。Diatonic[C-D-E-F-G-A-B] = ( 7 * random(7) + 5 ) % 12 Pentatonic[F#-G#-A#-C#-D#] = ( 7 * random(5) + 6 ) % 12
そこで悩んだ末に、やはりここは JASMIM だろう・・・ということで、以下のように一気に「概要」を作って送ってしまった。 採択されるかどうかは10月上旬まで不明であるが、ここはやはり広島に行ってみたい。日本音楽知覚認知学会 http://jsmpc.org/ 2018年12月8日(土)・9日(日) 龍谷大学 深草キャンパス 日本音楽即興学会 http://jasmim.net/ 2018年12月8日(土)・9日(日) エリザベト音楽大学
この他にも、以下のようなまったく当たり前のニュースが届いたりしていた。 とりあえず忘れないようにここに置いておこう。即興的コンピュータ音楽における「現代音楽」の意義 The Significance of "Contemporary Music" in Improvisational Computer Music 70年ほどの歴史を持つコンピュータ音楽の世界においては、コンピューティングパワーの発展とともに「非実時間的」音楽 (打ち込みによる作曲と自動演奏システムによる再生)はその比重が低下し続けており、あらゆる意味で音楽のライヴ性が 拡張するとともに即興性の意義も拡大している。 事前に用意された音楽演奏情報(シーケンスや音響データ)をライヴ生成する場合であってもセンサ(新楽器)による即興的 コントロールが活躍しているし、音楽音響情報をアルゴリズムに従ってライヴ生成する「リアルタイム作曲」が主流となった 現代、伝統楽器の演奏音響すら事前に録音するのでなくコンサート中にライヴサンプリングしつつその場でプロセッシング (音響信号処理)することが普通になった。音楽音響の生成アルゴリズム自体をライヴ演奏中に書き換えていく「ライヴ・ コーディング」における即興性は、音楽の推移や結果を予測できない可能性/危険性すら提起して、大きく注目されている。 1978年から続くコンピュータ音楽の国際会議ICMCや関連学会(SMC/NIME)のコンサートセッションはその時代の Computer Musicの先端が集うショーケースであるが、過去(1990年代迄)には所謂「現代音楽」的な音楽が主流であった ものの、音楽のライヴ性が拡張する流れとともに、例えばコンサートホールの開催だけでなく、クラブやディスコで開催される コンサートセッション(商業音楽はほぼ皆無)が増え続けるなど、時代の進展とともに音楽ジャンル/スタイルも拡大している。 かつてクラシック音楽の領域で「実験音楽」・「前衛音楽」・「現代音楽」と並び称されていたこのジャンルを「消えゆくもの」と 揶揄する専門家もいるが、「現代音楽風の音楽を自動生成するAI」の時代となって、改めて即興的コンピュータ音楽に おける「現代音楽」の意義を海外でのアプローチなどの事例から考察してみたい。
そして、ここでフト、先週のMaxSummerSchool2018の抽選会で当たってしまった「Lightpad Block」、最新のiOSのiPhoneかなんかで専用アプリを入れないとまったく使えないものらしい、というブツについて、とりあえずお盆休み明けに高見さんと実験するためには充電しいておかないと・・・と このように 充電してみた。 そして、駄目モトで「roli.com」という このメーカのサイト に行ってみると、案の定、専用アプリをインストールするとこれがタッチ操作のノイズジェネレータになるよ・・・というような情報がわんさかあった。 そして この資料 の中に、「OSX」というタームを見かけて、つまりは「Bluetooth to MIDI」というのを使えると知って、あっさりとLightpad BlockがそのままMax7で使えてしまった(^_^)。 以下はその手順(備忘録)である。プログラミング言語を用いて書かれた「ソースコード」はあらかじめ定められた規則に従って記述する必要があり、匿名で公開されたコード から個人を識別することは困難に思えるかもしれません。ところが、実際にはコードにも個人の特徴が色濃く表れており、機械学習を用いて コードのサンプルから個人を識別できることが判明しました。 ドレクセル大学のコンピューターサイエンス准教授であるレイチェル・グリーンシュタット氏と、ジョージ・ワシントン大学でコンピューター サイエンスの准教授を務めるアイリン・カルスキン氏は、プログラミング言語で書かれたコードは完全に匿名のものではなく、機械学習を 用いて個人を識別可能だという研究結果を発表しました。 2人は機械学習のアルゴリズムにコードサンプルを分析させ、用いた言葉の選択やコードの長さ、コードのまとめ方といったあらゆる特徴を 抽出しました。次に2人は抽出された特徴の中から、開発者個人を識別するのに役立つ特徴のみを選別し、コードから個人を特定する時に 注目するべきリストを絞り込んだとのこと。コードの書き手は通常の文章と違い、一定の規則に従ってコードを書き進めなければならないという 制約がありますが、それでもコードから個人を識別可能な特徴を抽出できるようです。 また、コードサンプルは非常に長いものである必要があるわけでもなく、グリーンシュタット氏らが発表した2017年の論文(PDF)によれば GitHubに公開されたほんの短いコードの断片であっても、特定の開発者とそれ以外の開発者を識別できるとのこと。加えて、すでに0と1で 表される機械語にコンパイルされたコードからでも、個人の識別が可能だとカルスキン氏は述べました。 カルスキン氏らの研究チームは、Googleが開催するプログラミングコンテストのGoogle Code Jamで書かれたコードをもとに、100人の 開発者が書いたコードをアルゴリズムに識別させました。すると、実に96%の精度で個人を識別することができたとのこと。また、識別する 開発者数を600人にまで拡大した場合でも、83%の精度で個人を識別できたとしています。 グリーンシュタット氏とカルスキン氏は、プログラミングを勉強する学生が他のコードを盗用したのかどうかを判断する場合や、マルウェアの 開発者を特定する時などにコードから個人を識別するAIが役立つとしています。また、関係のない第三者を装って行われたサイバー犯罪に 対しても、背後にいる人物の存在をあぶり出すことができるとのこと。 一方でオープンソースプロジェクトに匿名で参加しているプログラマーや、匿名でコードを公開しているプログラマーのプライバシーが 脅かされる可能性もあります。「コード開発者の身元を100%隠すことは、一般的に考えて難しいと理解する必要があります」とグリーン シュタット氏は述べており、将来的にはコードから個人を識別不可能にするツールが開発されるかもしれないが、しばらくは匿名で公開した コードから個人を特定される危険性があるとしました。 また、グリーンシュタット氏らはプログラミングの初級者と上級者では、上級者のほうが個人を識別しやすいという事実も発見しました。 これは、初心者がコードの一部をプログラミング練習サイトからコピーしてくる場合があって特徴が出にくいのに対し、上級者になればなるほど コーディングがこなれてきて、個人間に差異が出やすいためだそうです。他にも、2人はコードのサンプルが「簡単な問題を解決するために 書かれたコード」である場合よりも、「複雑な問題を解決するために書かれたコード」である場合のほうが個人の識別精度が向上することも 突き止めました。 グリーンシュタット氏らが行った予備調査では、カナダ人の書いたコードと中国人の書いたコードを90%以上の精度で判別できるなど、コード から得られる情報は予想以上に多いようです。記事作成時点では、コードによる個人の識別は指紋による個人識別のように100%に近い 精度を持っているわけではありませんが、今後さらに識別精度が向上していくだろうと考えられています。
- Lightpad Blockの電源ボタンを押すと左右のLEDが点灯してBluetoothペアリングモードになる
- MacのBluetoothをONにする。「Bluetooth環境設定」は不要
- 「Audio MIDI設定」のMIDIセットアップを出す
- その中にある「Bluetooth」を叩くとLightpad Blockが出てくるので「connect」する
- これでMaxパッチの「midiin」のリストにLightpad Blockが登場する
- Lightpad Blockからのdefault情報は「チャンネルプレッシャー」と「ピッチベンド」のみ
- 「チャンネルプレッシャー」と「ピッチベンド」は、それぞれデータが届くたびにMIDIチャンネルがインクリメント(% 16)される
- なので「midiparse」の出力をそのまま受ける(チャンネルを問わない)のがカンタン
YouTube そしてさらに このページ を発掘していくと、以下のようなページに行き着いてしまった。 これは素晴らしい。 なんとデビット・ジッカレリ自身が、「Max7でLightpad Blockを活用するパッケージ」を作ってくれていたのである。 「プレゼンテーションモード」に続いて、「パッケージ」という新しい世界にまたまた遭遇した。
そして、上記の情報から「File > Open Package Manager」という、Max固有のダウンローダで「BLOCKS」をゲット出来るとわかったものの、SUACのプロキシを通過しない(Max7自身のオーソライズにのみ特化して追加されていた仕様)ことを確認した。 こうなると仕方ないので、学会出張などの臨時措置として、UQモバイルの「1 day」ユーザ登録を久しぶりに行って、24時間572円を支払って「研究室から直接インターネットにアクセス」という緊急ルートを開設して、このパッケージをゲットした。 ついでなので、ここに並んでいた以下の40個ほどのパッケージも手当たり次第にゲットしてみた、 それぞれの中身を研究するのは、まただいぶ後日となりそうである。
2018年8月15日(水)
SUACお盆休みの最終日である。 朝から頑張って論文書きをして、午後にちらっと昨日の続きでLightpad Blockと遊んでみた。 詳細が分からないまま試行錯誤しているのだが、昨日からだいぶ理解が進んで、以下のようにセンサとして情報をゲットするのと、ディスプレイとしてLEDを点灯させるのと、共存するところまでは出来た。
- ディスプレイ全体を「15×15」のマトリクスとして1つのボタンにする。ノートは48
- ディスプレイが4つの「7×7」のマトリクスのボタンになる。ノートは48、49、50、51
- ディスプレイが16個の「3×3」のマトリクスのボタンになる。ノートは48からクロマティックに63まで
- ディスプレイが16個の「3×3」のマトリクス領域に分割され、ダイアトニックスケール部分だけが有効になる。ノートは48からダイアトニックに2オクターブ
どうやらLightpad Blockには上のような4つのモードがあって、本体横のボタンで順に切り替わるようである。 本当はLEDをビットマップフルカラーで表示させることも出来そうなのだが、まず当面はこのあたりで十分だろうか。
2018年8月16日(木)
それは今年もやってきた。 過去のたった一度の善行の決心から、毎年毎年、このような「寄付してちょうだい」メイルが何度も何度も来る、という繰り返しである。 今日、届いたのは、たぶん今年4回目の「My final email」という以下であった。
This is Jimmy, signing off. I won't ask again. I'm feeling the pressure. Millions of people across the world read Wikipedia, but only 1% of readers give. We have so much work to do to protect Wikipedia's future, but this is my last chance to get you involved in 2018. I'm asking you, sincerely: please take one minute to renew your donation to Wikipedia. If all our past donors simply gave again today, we wouldn't have to worry about fundraising for the rest of the year. We’re a nonprofit. We’re independent. We don’t run ads or sell services to our readers. Though our size requires us to maintain the server space and programming power of a top site, we are sustained by the support of our donors who give an average of about ¥2000. This year, will you take one minute to keep our work going? Thank you, Jimmy Wales Wikipedia Founder前回まではシカトしていたのだが、遂に今回、上のようにまた2000円を寄付した。 まぁ、この業界にいればWikipediaは常にお世話になっているし、オープンソース文化の灯を消さないためにも、このぐらいは仕方ないと言えば仕方ない。 ちょうど先々月あたりに「ココナラ」でゲットした(筈である)金額をそのまま寄付、という感じになった。 さっそく間髪を入れずに以下のメイルが届いた。 これでまた来年も目をつけられるんだろうなぁ。(^_^;)
Dear YOICHI, Thank you for supporting Wikipedia and the Wikimedia Foundation with your gift of ¥ 2000. Your contribution keeps Wikipedia independent. I’d like to tell you why your gift is so important. Wikipedia is a global project. At the Wikimedia Foundation, engineers and staff strive to make your Wikipedia experience useful and engaging. We work to make Wikipedia accessible on any internet connection, across any device, no matter where you are. We stand up for the future of the open internet and fight to protect your privacy. We are passionate about making free knowledge available to everyone on the planet. We’re a small team with a big mission, so your contribution matters. Every day, you make critical decisions based on what you read on the internet. Wikipedia is a vital resource because it offers free, neutral, and unbiased information written by people from all around the world. Wikipedia would not be possible without a shared commitment from our readers, our editors, and donors like you. Your support of Wikipedia allows us to stay neutral, unbiased, and entirely independent. You know you can rely on us, because Wikipedia can’t be bought. We are here for you, and you are here for us. By donating you are safeguarding the sum of human knowledge now, and for generations to come. Thank you for supporting Wikipedia. We hope you will continue to stand on the side of knowledge. With gratitude, Katherine Maher, Executive Director, Wikimedia Foundationそして、先週のMaxSummerSchool2018で東京藝大の会場(隣の席の椅子の下)に忘れてきてしまった機材一式の入ったSUAC袋が、お盆休み明けの今日、ようやく無事に届いた。 これで土曜日の奈良学園大のオープンキャンパスに「PAW-eight」と「PAW-double」を持参するのにも間に合った・・・と思っていたら、奈良学園大の辻下先生から連絡があり、8/18はいつもと違って午後にイベントがあって午前のみの開催なので、今回はパス、という事になった。 こうなれば、土日はみっちり論文執筆できる。
2018年8月17日(金)
SUACがお盆休みだったのでアマゾンからの配送が止まっていて、下の本を受け取ったのは昨日だったが、帰宅して昨夜はこの本を一気に読み切ってしまった・・・というか、一気に引き込まれて読み込んでしまった。 実に素晴らしい、まだ日本にこういう政治家がいたのだ、という感慨とともに、大部分の保身と誤魔化しで生きている「政治屋」に改めてガッカリした。 この本をきちんと邪念なしに読んで、その上で反論する政治家がどれだけいるのだろうか。 800円もしない本である。 コーヒー2杯を我慢するだけでこの貴重な文化財が入手できる。 若者には是非とも、読んで欲しいと強く希望する。
ちょっと前の天気予報ではこの週末は雨模様で、晩に実習指導の前田さん高見さんと行こうと予定していたビアガーデンは駄目か・・・と凹んでいたが、なんと天気が前倒しに推移して、朝から抜けるような好天、まさに晩はビアガーデン日和となってテンションが上がった。 そしてインタラクション領域・3回生のゼミ配属情報が届いて、僕のゼミには平田クン永田さんにくわえて長田さんも来ることになった。 これで後期の長嶋ゼミは、馬ブンさん(M2)・西村くん/山本さん/木村さん(4回生)・長田さん/永田さん/平田くん(3回生)という顔ぶれとなり(木村さんは準ゼミ)、デザイン学科としてはビジュアルサウンド領域の西村くん以外は全てインタラクション領域の学生となった。 前期末には早朝の工房使用で頑張った2回生の持田さんからも、後期に向けて履修相談のアポが入ってきた。
そこで盛り上がったテンションを受けて、来週の広島広大での音楽情報科学研究会・夏のシンポジウムのプレゼンを このように 一気に作ってしまった。 後半はどこかで見たような・・・というより全てそのまま再利用である。 前半は上のように、6月の「音学シンポジウム」(東大)の会場で内職に作った聴覚的錯覚を実際に体験するMaxパッチのお話、そして後半は今月冒頭に東京女子大で講演してきた「PAW-double」のお話に加えて、「音楽情報科学」を受講した5人の「PAW-double」を活用したMaxパッチの実例を「初演」として見せる・・・ということで、もう準備万端だぁ(^_^)。 そしてあとは終日、みっちり論文執筆の続きを進めた。 もう単行本ならとっくに1冊、書き終えているような分量だが、まだまだである。
2018年8月24日(金)
なんと上の日記から1週間後となってしまった。 先週末の土日月はみっちり論文執筆、火曜日から昨日の木曜日は 音楽情報科学研究会・夏シンポ だったが、台風19号と台風20号のコンビに翻弄されて珍しくカメラを持たずに行き、さらに自分の発表と座長でいつものメモを書くこともなく過ぎ去って、もう金曜日である。 某検討ミーティングの結果、来週の日曜日を目標に、あと1週間、この論文執筆の修行をさらに続けることにしたので、Max日記はしばらく(欧州ツアーに出かけるまで)お預けとなりそうな模様である。
そして広島出張中にもあれこれとまた新しい話がメイルで舞い込んできたが、ここでは省略する。 ICEC2018 の大会委員長からは、ある発表者が会議期間中ずっと滞在しないので、彼の発表セッションとNagashimaの発表セッションをswapして欲しい・・・という依頼が来て、僕はその翌日に帰国するので「OK」したところ、上のように最終日20日の午後のセッションに配置転換されていた。 まだテキストの表の部分が直っていないというバグを見つけたので知らせておいた。 これで今回の渡欧ツアーは、いちばん最後のICE2018の初日にチュートリアルがあり、最終日にぺーパー発表のプレゼンがある、という予定が確定した。 いつもだと途中で発表を終えて「打ち上げモード」に入れるが、今回は最後まで気が抜けないことになった。
2018年8月30日(木)
月火水と集中して論文執筆に没頭してきてなんとか目処が立ってきたこの日、ある学生からの質問に応じてちょっと回り道をすることになった。 お題は「トランジスタの使い方」というものである。 これまで、数限りなく色々なシステムを製作してきたが、たいてい基本的にはホストにMaxがある環境で、そこにGainerとかArduinoとかAKI-H8とかPropellerとかmbedとかRaspberry Piとかのマイコンボードがインターフェースしていて(ここはディジタル)、さらにそれらマイコンボードの外側に、多種のセンサとかアクチュエータとかディスプレイ等が繋がっている。 この周辺回路の部分になると世界は「アナログ」となり、ここで僕が多くの場合にOPアンプを使っている理由は「アナログ回路をかなりディジタル的に扱える」ためである。 ただし、わざわざOPアンプを使うほどのこともない場合などには、いよいよバイポーラトランジスタの出番となる。
そこで、いつも部品を速攻で欲しいときにお世話になっている、「電子部品のアスクル」と呼んでいる RSコンポーネンツ のサイトで「バイポーラトランジスタ」と検索すると、上のように冒頭から超定番の「2SC1815」が出てきた。 メーカ型番が「KSC1815」であっても、これは間違いなく、アナログで電子工作をするならコレ、という「2SC1815」の互換品である。 昔は「2SC372」が王道の定番だったというのを知っているのは年寄りだけかなぁ。 以下のように、研究室の部品棚を見てみると、ダーリントン接続でペアで使う「2SA1015」と並んで、ものすごい数の「2SC1815」のストックがあった。 何かと便利に使うので、ストックはいくらあってもいいのだ。
そして学生の質問に対しては、この「日記シリーズ」の中とかであちこちに出てくる僕のシステム製作例(回路図)を調べていくと、どのような時にバイポーラトランジスタを使うかがわかってくるので、スグに回答しないのでまずは自力で調べてみて、とメイルした。 「OPアンプを使うかトランジスタを使うか」が瞬時に判断できれば一人前なので、これは夏休みの課題としては格好のテーマだろう。 間違って壊したところで10円ぐらいなので、「間違って接続されたバイポーラ半導体が『死ぬ』時のあの臭い」(^_^;)を経験することも大事なのだ。 以下の箇条書き(思いついたら追加の予定)は、とりあえず「謎のメモ」としておこう。
そして定期的に届くCycling'74からの情報として、今回は以下のような、ちょっと面白いものが2件あった。 一つは JavaScripting: The Buffer Object というもので、どうもbuffer~に格納されたサンプルデータの読み出しをJavascriptで記述してpeek/pokeするらしい。 さらにもう一つは Software Overview: Delta Sound Labs' Stream Plug-In というもので、なんとGranular Synthesisをやってくれるplug-inらしい。 これは両方とも、来週からの渡欧ツアーの合間にチェックしてみることにしよう。
- マイコンのディジタル出力でリレーをドライブするのは厳しいので電流増幅する
- マイコンのA/D入力に与えるのにちょっとだけレベルの低いセンサ出力を増幅する
- 3.3Vレベルの信号を5V系に入力させる(レベルシフト)
- ディジタル信号を論理反転する(わざわざ6回路入りICの74HC04を使わない)
- Arduinoを使うまでもない、LEDの「じわじわ点滅」(時定数で充放電)回路
そして、久しぶりに EURASIP RFID 2018 Workshop のページを見たところ、 このように プログラムが公開されていた。 どうやら発表応募が少なかったらしく、当初の案内では9/11と9/12の2日間という予定だったので、出来れば9/12だけでも聴講できれば・・・と思っていたが、なんとワークショップは実質9/11だけ(Brunoに夕方到着するので行けない)になっていて、9/12の午前は「皆んなで観光」と書かれていた。 これでBrunoの予定からRFID2018が完全に消えて、Brnoでの訪問先は「Brno Technical Museum」と「Mendel Museum of Masaryk University」だけが候補として残った。 あとは現場に行って、ホテルに置かれた案内マップとかを見て考えよう。
2018年8月31日(金)
朝からあれこれとメイルが届いて対応したりする中、ようやく研究室にスーツケースを持ち込んで、およそのパッキングが終了した。 今回の渡欧ツアーの予定が以下のように確定したのは、 続・Max7日記(5) の「2018年4月30日(月)」のところだったので、ちょうど4ヶ月前であり、かなり忘却の彼方である。 それからほとんど旅程とか現地情報とかも放置していたので、この週末に急いで立て直さないといけない。
今週になってまたまた発生した台風21号は、以下のようになかなか微妙な位置にいる。 僕はいつものように、日本を発つ9/4(火)の前日9/3(月)の午後に浜松を発って、セントレアの東横インに前泊して、朝イチのフライトで羽田に飛んで、そこから午前に出発するフランクフルト行きのANAに乗り継ぐのだが、この国内線が台風で飛ばない可能性が心配なのだ。 そこでANAマイレージクラブに電話して問い合わせたところ、「台風が近づいているのでセントレアでなく東京に行って前泊して、羽田からの国際線から搭乗する」ように変更連絡出来るかどうか、という質問への回答は明確に「出来ません」(;_;)だった。 過去に何度もあるように、国際線から成田/羽田に到着して、その後にセントレアまで乗り継ぐ国内線をそこでキャンセルして新幹線で浜松に帰る、というのとは別で、国際線のフライトがセントレアから完全に組まれているらしい。
上の進路予想図のうち、国内の2件と3つ目のヨーロッパ予想まではほぼ同じ感じで、なんとかセントレア→羽田のフライトまで大丈夫な感じだが、4つ目の米軍予想はかなり悲観的で(^_^;)、これだとセントレアも無理だし羽田の国際線も厳しい。 もう少しだけ、本州の南にある太平洋高気圧が頑張って、米軍予想が外れてくれることを祈るしかない。
そして午後には、慌てず騒がず、持参する最新データ(Webサーバに置いたコンテンツを含む研究室の「お仕事Mac」の全HDDデータを今回の出張に持参)を整理してUSBメモリにバックアップする・・・といういつもの長期出張前の作業に没頭した。 夕方になって新しい進路予想図が出てきたが、そこであちこち調べて判明したのは、「米軍の台風進路予想図の時刻表示の"Z"というのはUTC(ほぼGMT)基準なので、日本時間JSTに換算するには9時間プラスする」という事実だった。 これだと日本も欧州も米軍も進路予想図はほぼ同じ感じになるので、まぁギリギリ大丈夫か、というところで、まぁあとは週明けまで見守りモードである。2018年9月1日(土)
台風はほぼ予想通りに進んでいるので見守るしかなく、週末に入って余計なメイルも届かなくなったので、一昨日Cycling'74から届いた JavaScripting: The Buffer Object と Software Overview: Delta Sound Labs' Stream Plug-In で遊んでみることにした。 後者はとりあえずサンプルパッチがあったのでゲットして叩いてみると、2つのコントローラは見事に出てきたものの、以下のようにこのパッチだけでは「vst~」が呼び出したいプラグインが無いというエラーで、何も起きなかった。
そこでリンクから「There's an elegant recent entry to the field from Delta Sound Labs - their Stream plug-in. It's currently in beta and available without charge from the Delta Sound Labs' website, and well worth your time. If you would like to access Stream VST, you just send an email to beta@deltasoundlabs.com with the subject “Stream VST Beta,” and you're off to the races.」という記述に従ってこのメイル先に“Stream VST Beta”というタイトルのメイルを送っていたのだが、とても淡白な(^_^;)メイルが来て、その内容に従ってこの「Delta Sound Labs」にメンバーとしてログインするパスワードを設定した。
そして Delta Sound Labs のサイトに行ってみると、 ベータ版のプラグイン はメンバーとしてログインしたところでだけリンクが見えていてゲットできたのだが、このzipを解凍した「Stream.vst」を置いて再びパッチを叩いてみると、今度は「vst~」がちゃんとプラグインを呼び出したものの、中身が何か壊れている(バグ?)らしく、以下のようにまたエラーが出てきて、結局のところ、何も手出し出来ないという事が判明した。 うーーーむ、残念。(^_^;)
こうなれば残念ながらGranular Synthesisは棚上げして、 JavaScripting: The Buffer Object の方をやってみることにした。 こちらはほとんど「中身が見えている」のだが、MaxSummerSchool2018で仲井さんが紹介してくれたパッチ(テクニック)と通じるところがあり、「これをゴージャスに仕上げたら面白い電子音響音楽が出来るのでは」(1998年に作曲公演した、以下のようなMaxパッチとKymaバッチで作っていた作品 Mycoplasma を、重厚長大なKymaとか使わずに出来るのでは)、というアイデアもあるので、掘り下げる価値があるのだ。
解説を眺めてみると、どうやらこのページの著者が過去に「MaxでJavascriptを」という3部作を書いていて、その第3弾の The Compleat ROBO, Part 3: Recording Cleanup というページも有効らしい・・・と判明してきた。 こちらはFIFOパッファに連続的にサンプリングするという話題なので、ここを理解して改造すると、なんだかGranular Samplingが出来そうな気もする。
var buff = new Buffer("loop"); function bang() { post("Channels: " + buff.channelcount() + '\n'); post("Frames (samples): " + buff.framecount() + '\n'); post("Length (in ms): " + buff.length() + '\n'); }まずは上のように、「buffer~」を「loop」という名前で用意して、初期サウンドデータがちょうど入るサイズに定義した。 そして「groove~」を使えば、無限にループして再生する。 そこに上のような「checkLoop.js」をパッチと同じところに置いて、「js」オブジェクトでそのJavascriptファイル(plain text)を指定すると、記述に従って、bang入力に対してMax consoleにパラメータを表示した。 ちょっと不思議だったのは、「buffer~」でパラメータを指定していないのでこれだけだとモノラルかと思ったら、初期サウンドデータがステレオであれば自動的に「loop」のChannel=2となった事である。 この「loop」を指定している「groove~」の出力はモノラルのまま、なのに。(^_^;)
var buff = new Buffer("loop"); function bang() { post("Channels: " + buff.channelcount() + '\n'); post("Frames (samples): " + buff.framecount() + '\n'); post("Length (in ms): " + buff.length() + '\n'); } function reverse() { var j = 0, k = buff.framecount() - 1; var tmp; while (k > j) { for (var i=1; i<=buff.channelcount(); i++) { tmp = buff.peek(i, k, 1); buff.poke(i, k, buff.peek(i, j, 1)); buff.poke(i, j, tmp); } j++; k--; } post("Sample reversed!\n"); }そして次に、上の「reverseLoop.js」をパッチと同じところに置いて、「js」オブジェクトにはキーワードの「reverse」を与えると、 このように なんとJavascript内にあるように、波形メモリの全データを読み込んで逆順に書き込むことで、「逆回し再生」を、いつもの手法(読み出しポイントと終了ポイントを逆に指定する再生)でなくて、本当にやってしまえた。 これは凄い。(^_^;)
var buff = new Buffer("loop"); function bang() { post("Channels: " + buff.channelcount() + '\n'); post("Frames (samples): " + buff.framecount() + '\n'); post("Length (in ms): " + buff.length() + '\n'); } function reverseSegment(start, length) { var st = start; var en = start + length; if (en >= buff.framecount()) { en = buff.framecount() - 1; } var tmp; while (en > st) { for (var i=1; i<=buff.channelcount(); i++) { tmp = buff.peek(i, en, 1); buff.poke(i, en, buff.peek(i, st, 1)); buff.poke(i, st, tmp); } st++; en--; } } reverseSegment.local = 1 function reverse() { reverseSegment(0, buff.framecount() - 1); post("Sample reversed!\n"); } function scramble(num) { var v = (num || 1); if (v < 1) return; for (var i=0; i<v; i++) { var st = Math.floor(Math.random() * buff.framecount()); var ln = Math.floor(Math.random() * (buff.framecount() * .25)); reverseSegment(st, ln); } post("Scrambled ... "); if (v == 1) post("1 time.\n"); else post(v + " times.\n"); }さらに、上の「scrambleLoop.js」をパッチと同じところに置いて、「js」オブジェクトにはキーワードの「scramble」とか「scramble 5」を与えると、 このように 波形メモリの全データを、どんどん適当な幅で反転しては書き換えていく、という荒技を簡単に実現できた。 音楽情報科学研究会の夏シンポで報告した「segment reverse」も想起されたが、こちらは大元の波形データをどんどん書き換えてしまうので、「あとで戻す」というのは不可能なところが潔い。
そしてここで作業していて気付いたことだが、 Maxは起動されている間に、パッチで何もしていないのにインターネットのどこかと裏で通信していて、相当数のパケットを刻々と消費し続けている という現象を発見した。 どうもMaxプログラミングしつつWebに上げたりYouTubeへの接続が重かったり・・・というので調べていて発見したのだが、記憶ではこれまで、こんな事は無かった。 もしかすると、9月にはMax8への乗り換えキャンペーンをするCycling'74が、Maxの裏モードとして仕込んでいたモジュールを発動させて、刻々と「Max7ユーザの挙動(利用度)をCycling'74に報告している」か、あるいは裏で刻々とMax8をダウンロードしていて、「Maxを起動してみるといつの間にかMax8になっていてライセンス差額を請求される」か、という恐ろしい未来が垣間見えてしまった。 果たしてどうなるか。
var buff = new Buffer("loop"); function bang() { post("Channels: " + buff.channelcount() + '\n'); post("Frames (samples): " + buff.framecount() + '\n'); post("Length (in ms): " + buff.length() + '\n'); } function reverseSegment(start, length) { var st = start; var en = start + length; if (en >= buff.framecount()) { en = buff.framecount() - 1; } var tmp; while (en > st) { for (var i=1; i<=buff.channelcount(); i++) { tmp = buff.peek(i, en, 1); buff.poke(i, en, buff.peek(i, st, 1)); buff.poke(i, st, tmp); } st++; en--; } } reverseSegment.local = 1 function zeroSegment(start, factor) { var en = start + (buff.framecount() * factor); if (en >= buff.framecount()) { en = buff.framecount() - 1; } for (var i=start; i<en; i++) { for (var j=1; j<=buff.channelcount(); j++) { buff.poke(j, i, 0); } } } zeroSegment.local = 1; function reverse() { reverseSegment(0, buff.framecount() - 1); post("Sample reversed!\n"); } function scramble(num) { var v = (num || 1); if (v < 1) return; for (var i=0; i<v; i++) { var st = Math.floor(Math.random() * buff.framecount()); var ln = Math.floor(Math.random() * (buff.framecount() * .25)); reverseSegment(st, ln); } post("Scrambled ... "); if (v == 1) post("1 time.\n"); else post(v + " times.\n"); } function glitch(num, fac) { var v = (num || 1); var f = (fac || .05); if (v < 1 || f < 0.0 || f > 1.0) return; for (var i=0; i<v; i++) { var st = Math.floor(Math.random() * buff.framecount()); zeroSegment(st, f); } post("Glitched ... "); if (v == 1) post("1 time.\n"); else post(v + " times.\n"); }そして最後は、上の「glitchLoop.js」をパッチと同じところに置いて、「js」オブジェクトにはキーワードの「glitch 2 0.1」などを与えると、 このように 波形メモリの全データの中で、適当なところをゼロデータ(無音)にする、という処理まで加わった。 まぁ面白いのであるが、あと一歩、MaxSummerSchool2018で仲井さんが紹介してくれたパッチ(テクニック)に比べて音楽的な深みが欠けたところで終了してしまっているのが、実に惜しい気がした。 ここは、まさに改良の余地が待ち構えているところだろう。 残った The Compleat ROBO, Part 3: Recording Cleanup の方はもうちょっとテクニカルなようだが、渡欧中に余裕があったら、チェックしてみたい。
2018年9月2日(日)
台風21号は予報通りに進んでいるが、どうも明後日の離日フライトはどうなるか微妙・・・という風向きである。 いつものように早起きして、たまたま こんな番組 ★ を見た。 レコード針の「ナガオカ」の話で、朝から感銘を受けた(民間放送教育協会の番組で「山形放送制作 協力/文部科学省 総務省 独立行政法人 中小企業基盤整備機構」という真面目なもの)。
僕はもう何年も前に、多量にあったLPレコードを全てリサイクルショップに処分して、レコードプレーヤーも無いので、今更ブームと言われてもここにソソラレル事はないのだが、なんと「ナガオカ」は上のような、 超高級イアホン を出している・・・という話に、一瞬グググッと唆られてしまった。 ただし考えてみれば、加齢によって可聴周波数帯域は明らかに狭くなっているので、ルピーのフィルタだのハイレゾ音域(4〜90000Hz)だの、というのは僕にはもう意味がないのだった。 「49,680円(税3,680円)」というのも、まぁ「衝動大人買い」のレベルを超えているので良かった。 これが2万円を切っていたら、勢いでポチッとやっていたかもしれない。
開催直前になったアルスエレクトロニカからは、上のように 直前案内 の情報も届いてきた。 たしか通算10回目のアルスエレクトロニカ訪問になるが、今回はドイツでのVS-Games2018に行ってからリンツに行くので、ちょうどフェスティバルの後半、晩にドナウ河畔の花火/レーザーshowがある(市民と観光客で数万人が押しかける)日からの参加となる。
そしてフトANAのページを見ると、上のように「台風21号による運航への影響について」というページが登場していて、9/4(火)の羽田はOKであるものの、「名古屋(中部)空港 9月4日 始発便から最終便までのすべての発着便」ということで、本来であれば朝イチで羽田に飛ぶフライトが「わからない」(^_^;)と認定された。 そこでここから、あれこれ予約変更大会がスタートした。 まずはANAの「国際線乗り継ぎ(国内線)」窓口に電話して15分ほど待たされて、無事に前日9/3(月)の午後に成田に飛ぶフライトに変更できた。 これは自己都合では出来ない変更で、航空会社が「予定のフライトが飛ぶかどうか不明」という、今回のような告知が出ると初めて可能になる。 セントレア→羽田というフライトは朝イチの1本だけなのでパスして、午後にセントレア→成田、というフライトに変更した。
その後、「9/3の東横イン・セントレアの予約キャンセル」、「9/3の東横イン・羽田の予約」、「9/3の浜松駅→セントレアのe-wingの予約変更」、「9/4朝にセントレアで受け取る予定だったGlobal WiFiの機器受け取りを羽田に変更」、と立て続けにWebと電話で変更などを済ませて上のANAのサイトでセントレア→成田のフライト時間を見てみると、オペレータが「最後の1席」と言っていたように、全て満席となっていた。 東横インの宿泊予約も「あと1人」ということだったので、まさに滑り込みセーフ、というところだった(^o^)。
2018年9月3日(月)
いよいよ20日間の出張出発の日、今は「セントレア 14:40→15:55 成田」のANA機内である。 朝イチで研究室に出てみると、台風の進路予想はほぼそのままだが、「9/4に全便欠航する空港」というANAのWebリストに、東北から北海道までが加わっていた。 まだ関東は八丈島と新潟だけだった。 東名高速が順調である事を確認して(事故渋滞とかあればJR→名鉄に切り替える)、セントレアまでは予約変更したe-wingで何事もなく到着したが、成田行きのフライトに荷物を預けてからラウンジに行って確認すると、なんとANAの予告が下のように変更されていた。(^_^;)
遂に羽田空港も対象として載っていて、しかも「4日の12:00出発便から最終便まで全滅」だということだが、僕のフランクフルト行きのフライトは「11:15発」なのだ。 またしてもぎりぎりでセーフだが、この予告が明日の出発までにあと1時間、繰り上がっただけでフライトは消滅する(^_^;)。 本来であれば、ちょうど今頃に大学を出て、今日の夕方にセントレアに着いて前泊して、明日の朝イチのフライトで羽田に飛んでそのままフランクフルト行きに乗り継いで行けたのに、今日は成田から京成京急で羽田の近くのホテルまで(バゲッジを受け取って自分の手で)移動して前泊、明日の昼前に出発するまで、台風21号が刻々と近づいて来るのを、一晩、ただじっと指を咥えて待つしかないのだ。 ANAからは明日のフライトの「自動チェックイン完了」というメイルも届いていたので、おそらくは飛ぶものと期待しよう。
・・・果たしてどうなるか、まぁ、こういうのも旅の醍醐味である。2018年9月4日(火)
昨日は成田から羽田まで2時間かけて移動、となかなか出発前から国内で「乗り鉄」を堪能できたが、なんとか台風対策の欠航空港予定はそのまま変わらなかった。 そしていよいよ出発日の9月4日、テレビのニュースは「今世紀"最強"台風上陸へ」とやっているが、欠航空港予定のページは昨日の11:30から更新がストップしていて、さらに以下のように、実際に搭乗するフライトの「運行状況」が、当日朝まで「出発予定」となっているのを確認した。(^_^)
そして無事にバゲッジを預けて海外モバイルWiFiルータを受け取ってラウンジに来てみると、満員でちょっと待たされた(これは初めての経験)ものの、無事に搭乗まで2時間半ほどラウンジでまったりする時間が取れた。 台風21号は昼頃に四国に上陸ということで、朝には雨模様だった羽田空港の上空もちょっと晴れてきて、「正午までは通常通り」という見立てはまさに正解だった。 そこで、宿題に残っていた The Compleat ROBO, Part 3: Recording Cleanup を調べてみた。以下のようなJavascriptを使って、オーディオ入力を刻々とサンプリングする際にレベルを見て、無駄な余白(無音)をカットしてファイルに書き出す・・・というような説明だった。
しかし、やってみると以下のようにエラーが出て、うまく動かなかった(^_^;)。 どうもこの3回にわたるTutorialは、「週末の楽しいMaxプログラミング」というような企画だったらしいが、「続きが欲しい」というリクエストが書かれているのにシカトされていて、最後の詰めあたりに問題があったのかもしれない。 中途半端なものの、出てきたエラーはちょっと詳細不明なので、これはここで棚上げとするしかない。
そして、まだ搭乗開始まで1時間ちょっとある、という機会に、今回の渡欧ツアーに向けての「リンク集+ToDoリスト」を備忘録として整理してみた。 研究室のお仕事MacにはVS-Games2018やICEC2018のリンクもブックマークされていたが、持参したMacBookAirには無かったので、こちらも発掘して並べてみた。 これは長いフライトの機内でも何か思いついたら追加していこう。 最近ではどこでも無料WiFiが飛んでいるし、現地に行ってしまえばたぶんモバイルWiFiルータが活躍するので、昔に比べたら飛躍的に便利になって、国内にいるのとあまり変わらない感じである。
- VS-Games2018
- Ars Electronica2018
- ICEC2018
- ICEC2018チュートリアル
- ICEC2018最終日の発表のプレゼンを作る → SIGMUSの2月研究会の発表プレゼンを活用(^_^;)
- ICEC2018チュートリアルの資料/シナリオを作る → BFセミナー(3月)の資料 + HIP/SIGMUSの8月資料を活用(^_^;)
- MaxSummerSchool2018で仲井さんが紹介してくれたパッチを整理/アレンジする → ライヴeffectもの
- MaxSummerSchool2018で後藤さんが紹介してくれたjitter examplesを眺めてみる → 後期「メディア数理造形演習」教材へ
- その他のMaxSummerSchool2018で提示されたMaxパッチ関係を総ざらいしておく
- Max7の「知らなかったショートカット技」(^_^;)を再確認して持ち駒を増やす
・・・さて、今はちょうどモスクワ上空、あとフランクフルト到着まで3時間となったところである。 かつてはANAのエコノミーもワインは1/4ボトル(187ml)で出していたが、最近はボトルからコップなのでちょっと量が減っているためか、計4杯のワインでは爆睡度がやや低く、今回は到着4時間前、ちょうどエカテリンブルク上空を通過している頃に目覚めてしまった。 まぁ目覚めたら仕方ないので、いつものルーティンで、ストレッチ、冷たいオレンジジュース、熱いブラックコーヒー、という「目覚めの儀式」でスッキリしたところでMacBookAirを取り出して、さっそく宿題の一つをやっつけてしまった、というのが上のMaxパッチである。 要するに仲井さんの「panner」というのを活用させていただいて、刻々と連続レコーディングしているサウンド(機内では十分にノイズに溢れている(^_^;))をランダムにセグメント再生(長さと方向)しつつオートパンして、さらにFeedback Delayをかけている、というものである。
そしてフランクフルトから特急で1時間半、無事にWurzburgに到着して、駅前の上のような軽いノリのホステルにチェックインして、長い長い一日が終わった。 いよいよヨーロッパ時間(サマータイム)に合わせて体内時計を修正していく日々が始まる。
2018年9月5日(水)
Wurzburgに到着した晩、とりあえず眠くないのに(身体の日本時間は午前中)無理して寝て、結局は目覚めてみると午前3時だった。 日本では下のように台風21号がようやく熱帯低気圧になったものの、関空で何千人もが孤立したり、なかなか大変だったようである。 どうせ眠れないのでシャワーを浴びて起床してしまい、1時間半ほどかけて、初日から昨夜までの写真を フォトレポート のページに上げて、これから可能な範囲で同時進行でアップロードしていく体制を確立した。 なんせ駅でもホテルでもWiFiが飛んでいて、さらに海外モバイルWiFiルータもレンタルしているので、普段よりも「繋がり放題」なのである。
そしてここは「Central lecture hall and seminar building Z6 of the Julius-Maximilians-University, Würzburg」、VS-Games2018の会場である。 朝から深い霧で何にも見えなくて、GoogleMapも現在地を正しく表示してくれなくて(^_^;)、なかなかバス停から辿り着くのに難儀したが(なんとアナウンスのあったバス停は最寄りでなく1つ先だった)、なんとか到着した。 下のような派手な建物が、ごく近くに来るまで全く見えないほどの濃霧だったが、これは今日は天気が良い、という事だ。
最初に大会委員長のWelcomeトークがあり、プログラムに従ってKeynoteが始まった。 Constantine Stephanidis先生の「Serious Games in Intelligent Environments」というお話である。 「This keynote presents an overview of the experience acquired in developing a number of serious games targeted to cultural and educational intelligent environments, such as museums, public spaces and schools, as well as smart homes. Various aspects and characteristics in this process are highlighted, focusing upon requirements for design, novel natural interaction techniques, user monitoring, adaptation and personalization, support for learning processes, in vivo deployment and user experience.」ということだったが、僕は海外到着の実質的な初日なので、まだあまり英語が入ってこない。 そこで、大御所のトークを聞き流しつつ、とりあえず公開されているプログラムに従って全体をここに整理しておくことにした。 以下のような感じである。
会場には大御所先生もいるものの、若い研究者がとても多く、さらになんとも「真面目」である。 さすがのシリアスゲーム国際会議、SIGGRAPHのようなお祭り的な雰囲気は一切なくて、皆んな本当にシリアスに真面目なゲームについて研究していきたい、という姿勢がひしひしと伝わってきた。Wednesday, 5. September 9:00 Keynote: Constantine Stephanidis Serious Games in Intelligent Environments 10:00 Poster Session Low-Frequency Stress Elicitation for VR Training A Location-Based VR Museum A medical serious games framework hierarchy for validity Gamified Knowledge Encoding: Knowledge Training Using Game Mechanics The impact of Pokemon Go and why it's not about Augmented Reality - Results from a Qualitative Survey Rallye Game: Learning by Playing with Racing Cars 10:25 Session TECH I Where’s Pikachu: Route Optimization in Location-Based Games Validity of Virtual Reality Training for Motor Skill Development in a Serious Game A Model for Eye and Head Motion for Virtual Agents Accommodating Stealth Assessment in Serious Games : Towards Developing A Generic Tool Recreating Virtual Environments From User Traffic Patterns 13:30 Session HCI DESIGN Puzzle Walk: A Gamified Mobile App to Increase Physical Activity in Adults with Autism Spectrum Disorder Effects of Graphical Styles on Emotional States for VR-Supported Psychotherapy Using Think-aloud Protocol in Looking at the Framing of One’s Character with a Case Study on Terraria Balance Trucks: Using Crowd-Sourced Data to Procedurally-Generate Gameplay within Mobile Games Improving Context Understanding in the Virtual World using Avatar’s Affective Expressions to Reflect the Operators’ Mental States Multi-level Game Learning Analytics for Serious Games 15:00 Poster Session 15:30 Session HCI EDU Human-centered Design of a Virtual Reality Training Simulation for Mass Casualty Incidents Branded Gamification in Technical Education Evaluating the Effects of Realistic Communication Disruptions in VR Training for Aerial Firefighting Enable an Innovative Prolonged Exposure Therapy of Attention Deficits on Autism Spectrum through Adaptive Virtual Environments 19:00 Reception (Wenzelsaal) Thursday, 6. September 9:00 Keynote: Constance Steinkuehler Understanding and Enriching Esports 10:25 Session EDU I Effective Orbital Mechanics Knowledge Training Using Game Mechanics Designing Augmented and Virtual Reality Applications with Pre-Service Teachers Pathomon: A Social Augmented Reality Serious Game Game-Based Course Design: A New Approach for Effective Online Teaching Enhancing Progressive Education Through the Use of Serious Games 13:30 SSession HCI TECH I Learnings and Challenges in Designing Gamifications for Mental Healthcare: The Case Study of the ReadySetGoals Application A virtual nose as a rest-frame – the impact on simulator sickness and game experience On The Effect of a Personality-Driven ECA on Perceived Social Presence & Game Experience in VR How Real Can Virtual Become? The Relation between Simulation and Reality Exemplified by the Digital Experiment 15:30 Session HCI Tech II Comparison of Teleportation and Fixed Track Driving in VR Towards Serious Games and Applications in Smart Substitutional Reality An Embodied Learning Game using Kinect and Labanotation for Analysis and Visualization of Dance Kinesiology LUTE: A Locomotion Usability Test Environment for Virtual Reality 19:00 Conference Dinner (Backöfele) Friday, 7. September 9:00 Keynote: Kurt Squire 10:25 Session EDU II Effectivity of Affine Transformation Knowledge Training Using Game Mechanics Piloting two Educational Games in five European Countries: Teachers’ Perceptions of Student Motivation and Classroom Engagement Assessment in Serious Alternate Reality Games MoMaP – An interactive gamified app for the Museum of Mineralogy 13:30 Session TECH II Efficient in-game communication in collaborative online multiplayer games Measured and Perceived Physical Responses in Multidimensional Fitness Training through Exergames in Older adults A Multisensory 3D Environment as Intervention to Aid Reading in Dyslexia: A Proposed Framework Dynamic Systems Theory in Human Movement: Analysis Exploring Coordination Patterns by Angle-Angle Diagrams Using Kinect Towards Robust 3D Skeleton Tracking Using Data Fusion from Multiple Depth Sensors Image Warping using WebGL for a Smart Avatar Animating Body Weight Evolution 15:30 Closing Session 17:00 Lab Tours
今回の渡欧の最初がVS-Games2018だが、自分の発表があるとそこに集中するものの、発表を無事に済ますと脱力して御褒美の観光モードに行ったりする(^_^;)。 ただし一昨年と違って今回はVS-Games2018では発表が無いので、一転して端から端まで「お勉強モード」で精進するつもりである。 事前にWurzburgを調べたら「ビールとワインの街。ワイナリーツアーもある」との事だったが、今回は世界遺産の観光もワイナリーも無しでストイックに行ってみよう。初日のみCoffee Breakの時間にポスターセッションがあったが、全体でたった6件のポスターが貼ってあり、その大部分はここWurzburg大学からの発表だった。 どうも、VS-Games2018を招致したこの大学は、シリアスゲームに関する研究が盛んであるらしい。 ただし、ポケモンGOの分析があったり、VR視聴の際に低周波がストレスを与えるか与えないか・・・など、テーマ設定はかなりユニークなものが多かった。
午前のセッションは「Session TECH I」ということで、最初の発表タイトルは「Where’s Pikachu: Route Optimization in Location-Based Games」だった。 これは分かりやすいが、ポケモンGOで多数のキャラ?(ポケモン?)の名からピカチューを探すのに、ルートを最適化するアルゴリズムと実装についての真面目な研究であった。 上のように、(左)未処理のポケモンぐちゃぐちゃ状態から、(中)距離フィルタをかけて、(右)最後にバリューフィルタをかけると、ピカチューだけを最適なルートでゲットできるらしい。 僕がポケモンGOを知ったのは、たしか2016年7月のオーストラリアでのNIME2016に行った時に、まだ日本で公開されていないポケモンGOをやっている人のスマホをバスに乗っていて見た時だったが、もうポケモンGOはオワコンではなかったのか???
次の「Validity of Virtual Reality Training for Motor Skill Development in a Serious Game」はシリアスゲームの一つの王道、トレーニングねたである。 ここでの「motor skill」は「運動技能」という感じで、クレー射撃など、物理的に記述できる系でのトレーニングのために、危険でない(実際に射撃しない)VR環境でやりましょう、という真面目なアプローチだった。 モンキーハンティングと同じアルゴリズムで、ターゲットは自由落下で落ちてくるので、それを見越して銃の筒先をヘタに動かさない・・・というようなものをきちんと定式化していた。 ただしVR環境なので、頭をぐるぐる回すと、HMDで見る世界もぐるぐる回る。 上のように専用の「銃」インターフェースも作って、HMDをかけて実験している様子は、なかなか楽しそうである。
僕は海外に出た時に、自分の腕時計は日本を出発する飛行機に乗り込んだ瞬間から現地時間にしているのだが、持参するパソコンの時計は日本のままにする事にしている。 そしてフト、このパソコンの時計を見るとWurzburgではまだ午前11時半だが、日本はもう18時半になっている(これでSUAC学内でのお仕事関係メイルなどはもう今日は届かない)、と分かる。 そしてこのタイミングで、ICEC2018の大会委員長から、「Dear Yoichi Nagashima, ...」という長いメイルと、「Dear IFIP-ICEC Friends and Attendees, ...」という長いメイルの2本が届いた。 こちらは既に出発してしまっているが、向こうは「いよいよぼちぼち」モードなのだろう。 VS-Games2018に集中したい時に、ちょっとやっかいな仕事が重なってきた。 とりあえず並行した内職として、まずはGoogle翻訳に突っ込んでみよう。
午前の3件目は「A Model for Eye and Head Motion for Virtual Agents」というもので、ゲーム内のアバターの目とか頭の動かし方で感情表現などをする、という感じのものだった。 だいたいどんな感じか、というのは、上の図を見ると伝わってくるが、なかなか真面目に取り組んで、微妙な感情表現を目指しているのが伝わってきた。
4件目は「Accommodating Stealth Assessment in Serious Games : Towards Developing A Generic Tool」というもので、上のように「ゲームデザイン手法」に関する真面目な研究のようだった。 エビデンスペースで評価することで、シリアスゲームが実際に役立つようにデザインするための一般的なツールを求めているらしい。 VS-Gamesでは、この手の「いかに効率良く(無駄金をかけないで)ゲームを有効に作り出していくか」という研究が一つの領域となっている。 エンタテイメントゲームであればいくらでもお金をかけられるのに対して、シリアスゲームは基本的に儲からない(でも社会に役立つ)ために、「いかに安くゲームを作るか」というの切実なテーマなのである。
5件目の「Recreating Virtual Environments From User Traffic Patterns」は、残念ながらICEC2018からのメイルに返信しているうちに聞き逃してしまった。 さすがに英語を読んで英語のメイルを書いていると、とても同時に別の話題の英語のトークを追いかけるのは無理だろう。 ただし最後の「時間が押しているが、皆んなのランチタイムを確保するために発表は手短にしました」と言って笑いを取ったのは聞き取れた。
ランチ休憩になって、道路を挟んで向かいに学食があり(新学期?ということで、ものすごい数の学生がいた)、最寄りのバス停が超至近であることも確認できた。 今夜のレセプションも、明日のバンケットも、いずれも市内のもっとも中心的な観光地であり、宿から歩いても15分程度である事も判明して(ただしトラムに乗りたい)、だいたいWurzburgに土地勘が出来てきた。 これで後は時差ぼけをなんとか吸収していけば、そのまま欧州生活が軌道に乗りそうである。
午後イチのセッションは「HCI DESIGN」ということで、1件目は「Puzzle Walk: A Gamified Mobile App to Increase Physical Activity in Adults with Autism Spectrum Disorder」というものだった。 「Autism Spectrum Disorder」とは「自閉症スペクトラム障害」ということで、そういう大人のクライアントが物理的に活動を増やすためのスマホアプリとして「パズルで楽しく歩こう」という、まさに「役立つ」シリアスゲームの典型だった。 上のように、左の味気ない画面でなくて、右の楽しげな画面にすることで34歳のクライアントも喜んだようで、やはりユーザインタフェースと画面デザインは重要なのだ。
2件目は「Effects of Graphical Styles on Emotional States for VR-Supported Psychotherapy」ということで、「Psychotherapy」つまりVRを活用した「心理療法」、そして感情状態にグラフィカルなスタイルが与える影響・・・ということは、かなりバイオフィードバック・セラピーと関係している発表では、と身構えた。 ところが発表を聞いてみると、要するに上のように、「いかにもCG、という粗い品質の自然風景CGだと没入できない」というあたり前田のクラッカーのような話で、ちょっとがっかりした。 ローポリとハイポリを比較したら、ハイポリが高評価なのは当然なのだ。 ここまでの発表では会場は比較的クールだったが、この発表にはけっこうなツッコミが入っていて、さすがに参加者も同じ印象だったのかな。
3件目は「Using Think-aloud Protocol in Looking at the Framing of One’s Character with a Case Study on Terraria」というもので、獨協大学・特任助手[東大大学院で博士論文執筆中]の韓国人・Ji Soo Lim女史(翌日のDinnerでたまたま隣席したので3日目に名刺交換)が上手な英語で発表した。 まず「Terraria」というものが不明だったが、Web検索してみると上のようなページが出てきた。 その「テラリアとは?」によれば、「テラリアは冒険の世界!あなたが作る神秘の世界!テラリアであなたができる事は無限です。あなたは、我慢できずに指をピクピクさせるアクション・ゲーマーですか?建築家?コレクター?探検家?あなたの為にたくさん用意しています」とか「基本的なシェルターを建設することから始めてください。そして、ブロック類と他の資源を掘って捜してください。さらに、たくさんの武器や防具を発掘したり作成してモンスターを倒しましょう。そのうちに、あなたは巨大なボスとも対決するでしょう」とか「もっと楽しいことも! 釣りをして、騎乗して、空中に浮かぶ島を見つけましょう。あなたを助けるNPCのために建築もしましょう」とか書かれていたが、まったくゲームをしない僕にはなんとも不明な世界であった(^_^;)。
他人によって作られたゲームをケーススタディの対象とする研究ということは、毎日ずっとゲームをしているのだろうか。 よく分からないので、このゲームのサイトの よくある質問 に行ってみたが、45項目もあるFAQの最初の10個が、「ショートカットアイテム(画面左上)の選択が不便だ」・「死んだ後敵がドロップしたアイテムを拾いに行ったら消えていた!」・「HP削られるからすぐに回復したい!」・「アイテムを一気に作ったりスタックアイテムを1個ずつ取り出したい!」・「デスペナルティはあるの?」・「ハードモードとハードコアって違うの?」・「作れるアイテムが全然増えないんだけど?」・「初期装備のPickaxeを紛失、どうしようも無くなった」・「洞窟にあるツルって何?」・「キノコってどうするの?」だった。 これって「クソゲー」じゃないのかなぁ。
4件目は「Balance Trucks: Using Crowd-Sourced Data to Procedurally-Generate Gameplay within Mobile Games」というもので、「procedural content generation」=「手続き型コンテンツ生成」に関係するものだった。 Proceedingsにあった、上のスクリーンショットではまったく何の事やら分からなかったが、デモmovieがあったので良くわかった。 このスマホアプリを入れてクルマにセットして走ると、その路面情報(振動が大きかったら路面が悪い)がGPSとともに発信される。 これをもし、ある地域の大多数の人がスマホに入れてクルマに乗せてあちこち走ると、ビッグデータとしてその地域の道路の路面情報マップがクラウド上に出来上がる・・・というシナリオのようだった。 問題は「誰もがわざわざこのアプリを入れてクルマで運転してくれるかどうか」というmotivationだろう。
5件目は「Improving Context Understanding in the Virtual World using Avatar’s Affective Expressions to Reflect the Operators’ Mental States」ということで、バーチャル世界のアバター、というお決まりのキーワードでちょっと引きつつも、「Operators’ Mental States」の反映としての表現、となると身構えて聞くことにした。 発表は京大の西田先生のところで、上のようになんだかソソラレル図がProceedingsにあったが、結局、よく分からなかった。 要するに「アバター」が連呼されても、アバターを知らないので華麗にスルーされているのだ、と気付いた。 ちょっとした紹介ビデオがあったが、3Dスクリーンに取り囲まれて走って実験(実演)している学生がなんだか気の毒に見えたのは気のせいだろうか。
6件目は「Multi-level Game Learning Analytics for Serious Games」というシンプルなタイトルで、シリアスゲームを学習して(慣れて?)いく状況をマルチレベルで分析する、というものに読めた。 Proceedingsの図をザッと眺めた感じでは、対象がシリアスゲームであるとしても、要するにこれはVisualization、つまり学習の状況をいかに可視化するか、というような研究という感じだった。 実際に話を聞いてみると、ここでのシリアスゲームはもろ教育で、Learningはもろ学習(学び)である、と分かった。 まぁ教育ゲームであれば、いろいろな階層で繰り返していく、というモデルは、これもあたり前田のクラッカーな気がした。 ユーザインターフェースの提案のところでは、なんだか面白くない(SUACで始まった「授業アンケートの自動集計グラフ」を思い出した)グラフィックが次々に出てきて、うーーーむ、という感じだった。
そしてコーヒーブレークの合間に、昨日のフライト中にロシア上空で作っていたMaxパッチをちょっと変更して、サウンドファイルをランダムな間隔で読み出してあれこれパラメータを手動でいじって、 こんなサウンド を作ってみた。 こういうのがほんの数分で出来てしまう、というのはMaxの醍醐味である。(^_^)
そして午後の後半のセッション(15:40〜)は「HCI EDU」と、もろ「教育」「トレーニング」のHCI、ということになった。 1件目は「Human-centered Design of a Virtual Reality Training Simulation for Mass Casualty Incidents」というものだったが、どうもここらに来て英語の聴取能力が大きく低下してきた気がした。 そこでパソコンの日本時間を見てみると日本では夜の22時半、いつも21時頃に就寝している僕の体内時計は日本では寝付いたところなのだった。 うーーむ、身体は正直だ。
Proceedingsの図はなんだか「たくさん人が死ぬゲーム」の画面のように見えていたが実は違っていて、緊急医療の訓練生のための教育ソフトで、「Mass Casualty Incidents」(大量の事故)でシリアスな怪我人が次々に出てきたときに慌てず騒がずどうするか(トリアージ)、という本当に真面目な「救急訓練生のためのトレーニングゲーム」だった。2件目は「Branded Gamification in Technical Education」というもので、実験タスクとして半田付けを採用しているのだが、どうも「Branded Gamification」というのがピンと来なかった。 話を聞いてみると、どうもこれは「positive emotion」ということで、要するに「ノッている時にはいい仕事をする」という事のようで、またまたあたり前田のクラッカーが出てきた。 半田付けのタスクと言えば、「田」の字になるように銅線を9箇所、ハンダ付けするという味気ない課題で、これでいいのだろうか。 実験結果としては、普通のゲーム設定だと、ハンダ付けを何度も繰り返しているとモチベーションが低下してくるのに、「Branded Gamification」設定だと、ハンダ付けを何度も繰り返していてもへこたれなかった・・・と読めたが、結局「Branded Gamification」は謎のままだった。
3件目は「Evaluating the Effects of Realistic Communication Disruptions in VR Training for Aerial Firefighting」ということで詳細不明なのでGoogle翻訳に丸投げしてみると「空中消防用VRトレーニングにおける現実的な通信障害の影響の評価」と出た。 これは完全に真面目なシリアスゲームである。 上のように、実際にニュージーランドで山火事を消火するようなパイロットの訓練のために本格的なシミュレータを作って、さらに通信障害を起こすシステムが邪魔をして、バイブレーションとかも加わって、その際に生体センサでストレスを計測して影響を見る・・・という真面目なアプローチだった。
そして初日の最後は「Enable an Innovative Prolonged Exposure Therapy of Attention Deficits on Autism Spectrum through Adaptive Virtual Environments」というものだった。 丸投げGoogle翻訳をちょっと直して「適応型仮想環境によって自閉症スペクトラムの注意欠陥の革新的な長期曝露療法を可能にする」ということである。 有り得ない経験をVRで実現して「Joint Attention」を訓練する、という事らしい。 これも真面目なトレーニング/セラピーということだが、Proceedingsの上の写真を見ていると、これで本当に自閉症スペクトラムのクライアントのセラビーになっているのかどうか、僕にはちょっと分からなかった、 VRといってもこんな程度なのだろうか。
その後、バスでいったんホステルに帰って、晩のレセプションの会場であるCity Hallにトラムでなく歩いて行ってみた。 写真は フォトレポート に追加したので参照されたい。 なんと14世紀の建物(のレプリカ)という由緒正しい会場で、Wurzburg市長が歓迎の長い挨拶をする、というものだった。 Wurzburgが都市として生まれたのは704年だそうで、ほぼ平城京と同期だと知った。 なるほど世界遺産があるわけである。
2018年9月6日(木)
時差ぼけを少しずつ修正する・・・という気構えで、晩には無理して寝て、夜中に目覚めても時計を確認して二度寝・三度寝を心がけて、今朝の起床は昨日よりも2時間近く遅い午前4時前となった。 日本時間ではもうお昼前、シャワーを浴びてメイルとニュースをチェックすると、なんと台風21号で被害を受けた北海道で大きな地震があったらしい。 関空もまだまだ途絶しているようだし、ここに千歳空港と函館空港も止まって、さらに北海道の全体で停電??とかで(ほんまかいな)、なかなか日本は大変なようだ。 羽田乗り継ぎが出来ずに成田を経由したぐらいの事で慌ててはいけないのだ。
そして朝の時間を使って、上のように宿題の一つに取り掛かった。 Maxの「Projects」というディレクトリに丸投げ放置していた「MaxSummerSchool2018」というディレクトリ内の資料から、何か有益なものを抽出する、という「お勉強」である。 とりあえず上のように、ザッと中身を眺めて、参考資料として置いていたものとか自分で提供した資料をまずばっさりカットして、ここから順に料理していく体制をとった。 けっこうな分量があるので、この渡欧ツアーの期間中、まったく飽きない感じである。
まず気付いたのは、「vud.org」という謎のディレクトリである。 これはMaxSummerSchool2018の講師のものとは違うので、まずとりあえずそのままURLとして行ってみると上のようなサイトで、さらに「Max and Max for Live Patches and Externals」というページがあって思い出した。 これは、昔から有名なピッチ抽出オブジェクト「fuddle~」の作者(Maxの作者でもある)IRCAMのMiller Pucketteのサイトで、主としてFFT絡みの高度なMaxパッチ/externalオブジェクト集なのだった。
そこで、せっかくなので順に調べてみることにした。 最初はもちろん、上の、古典の「fiddle~」である。 なんと1999年のもので、当時のコンビュータの画面が小さかったからであろう、とてもコンパクトなパッチとなっているのが可愛い。 Miller PucketteがCで書いた中核部のソースは こんなに 凄いことになっているし、これをMac環境で走らせるための「Mach-O」はDavid Zicarelliが書いているのだった。 「Mach-O」と検索すると膨大なファイルがこれを参照しているものの、実体は見つからなかった。 おそらくMax7のシステム内部の根幹に置かれているのだろう。
そして上のように、オリジナルの「読みにくい」Maxパッチ(元は.help)のフォントサイズを上げたりして、とりあえず同等で見やすいものにした。 これがスタートラインである。 ・・・とスクリーンショットを撮って、このパッチを保存して、再び開こうと叩いてみると、なんと「can't open, bad header.」というエラーが出て、開けなかった(;_;)。 おそらくhelpとなっているパッチを開いて加工して、最後にmaxpatとして保存したのがまずかったらしい。 仕方なく、今度は新しいパッチを作ってまずダミー保存してから、その中にコピペして保存すると問題は回避できた。 また作り直しである。やれやれ。
ネットからは上のような信じられない画像が流れてきた。 北海道の地震の震源付近らしいが、ほとんどの山肌が全て崩れている。 こんな風景は見たことがなかった。 大丈夫だろうか。 とりあえず泊原発の冷却は非常用電源から外部電源に復旧したようで、これだけは何よりである。
そして、気をとり直して、「fiddle~」の能力を試すパッチを上のように作ってみた。 とりあえず音源は元のまま鋸歯状波で、mtofで与えるノートは、この日記の冒頭に置いた、三輪さんのダイアトニック・アルゴリズム
Diatonic[C-D-E-F-G-A-B] = ( 7 * random(7) + 5 ) % 12によって250msecごとに選ばれる「白鍵」のダイアトニック・ランダムメロディーである。 ただし音域を色々に制御するようにしてみた。 これによって、「fiddle~」は低い音域では弱いとか、250msecの音価に対してかなりの遅れがあるとか、という状況(性能)が良くわかった。 次のステップとしては、ここに一般の音響をぶっ込んでみるという「いじわるテスト」があるが、まずはそのソースをYouTubeあたりで探すことになる。 これはなかなか面白そうだ。 今日はなんだか、昨日のようにVS-Games2018の個々の発表を追うというよりも、内職モードで「fiddle~へのいじわるテスト」というのにハマりそうな予感もある。(^_^;)
・・・そしてここは再び「Central lecture hall and seminar building Z6 of the Julius-Maximilians-University, Würzburg」、VS-Games2018の会場である。 昨日の濃霧と違って朝から清々しい快晴、暑くもなく寒くもなく眠くもない、という最良の朝となった。 30分前に会場に着いてみると、まだほとんどの参加者が来ていないので、ネットが軽いタイミングということで、 Proceedings をさりげに上げておいたが、超高速で64MBがのFTPがほんの十数秒だった。 この Proceedings は、何故か僕のMacのPreviewでは上のように冒頭の索引あたりが強烈に文字化けしているが、それぞれの予稿はちゃんと見えるので安心である。
そして2日目の最初、Constance Steinkuehler女史の「Understanding and Enriching Esports」というKeynoteが始まった。 最近のトレンドの「e-sports」の話題らしい。 ところが何故か、窓のブラインドが全開で、眩しくて講師もスクリーンもまったく見えない(^_^;)。 スタッフのところに行って「ブラインドを閉めて」と頼んだのだが何故か改善されず、2日目はいきなり冒頭から「集中するな」という沙汰となった。 仕方ないので内職に精を出すことにして、とりあえず「fiddle~へのいじわるテスト」の音源として、 ユニゾンでグレゴリオ聖歌の Dies Irae と、4声アカペラコーラスでByrdの Ave Verum Corpus の2曲をYouTubeでゲットしてトリムしてmp3化してみた。 実際に上のように作ったMaxパッチで聞いてみると、単音のグレゴリオ聖歌では、いかにも頑張って追従しようとしている・・・という感じの「検出されたMIDIノートナンバで鳴らすピアノ」のよろよろした追従が面白かったが、当然ながら、4声のコーラスではめちゃくちゃになってしまった。 まぁこれは「fiddle~」が「単音のピッチトレーサー」なのだから当然である。
そして次に見つけたのが、上の「sigmund~」である。 これはどうやらfiddle~の改良高性能版らしく、入力音響信号を複数のサイン波の合成であると見做してMIDIノートをピッチ抽出するものらしい。 まずはこのサンプルから「PdにはあるけどMaxには無くてごめんね」等の不要なものを削ぎ落としてみた。 そして、ちょうど「fiddle~へのいじわるテスト」として用意した、ユニゾンでグレゴリオ聖歌の Dies Irae と、4声アカペラコーラスでByrdの Ave Verum Corpus で、以下のように同様に「検出されたMIDIノートナンバで鳴らすピアノ」を鳴らしてみると、単音のグレゴリオ聖歌では相当に性能が向上していた。 4声のコーラスではあいかわらずめちゃめちゃだったが、まぁこれは「sigmund~」も「単音のピッチトレーサー」なのだから当然である。
そしてそれより面白かったのは、このパッチ内に「bonus」として置いてあった「simple-analysis-resynthesis-using-tracks-output」というサブパッチだった。 これは、「入力音響を多重のサイン成分に分析して、それで多重のOSCバンクを駆動して再合成する」というものなのだ。 せっかくなのでこれを単独のパッチとして独立させて、さらに自前の評価用に、ライヴのマイクと、さらに先ほどからの Dies Irae と Ave Verum Corpus とをソースとして、「オリジナル」と「分析→再合成」を左右のチャンネルで比較するようにプログラミングしてみた。
すると上のようなパッチで、ライヴのマイク音声でも、ユニゾンでグレゴリオ聖歌の Dies Irae でもきちんと再現されるとともに、4声アカペラコーラスでByrdの Ave Verum Corpus でも、ほぼ左右チャンネルで同等のサウンドを確認できた。 ちょうど共立出版のbit別冊「コンピュータと音楽の世界」の付録CDROMで、NTT研究所の柏野さんが提供してくれた「音源分離」のサンプルと似た感じのノイズがヒュルヒュルするところまで同じで懐かしかった。 今日のKeynoteはまったく聞けなかったものの、十分に収穫の大きな内職となった。(^_^;)
午前のセッションは「Session EDU I」ということだったが、1件目の「Effective Orbital Mechanics Knowledge Training Using Game Mechanics」(Google翻訳によれば「ゲームメカニックスを用いた効率的な軌道力学知識訓練」)は発表キャンセルだった。 2件目の「Designing Augmented and Virtual Reality Applications with Pre-Service Teachers」は、「Pre-Service Teachers」という概念が気になったが、Proceedingsを見ても、タイトルにあるものの本文中に「Pre-Service Teachers」というタームが出てこない・・・という謎のpaperで、どうにも良く分からなかった(^_^;)。 ブレゼンを聞いてみると、Unityでコンテンツ/アプリを制作するデザイン学生のゼミを題材にして、実際の教師の他に学生をやる気にさせる要因を「Pre-Service Teachers」と考えているようで、つまりは昨日のいくつかの発表にあったように、「ノッて来るといい仕事が出来る」という、あたり前田のクラッカーのような印象だった。
3件目は「Pathomon: A Social Augmented Reality Serious Game」というタイトルで、いきなりポケモン全開でスタートした。 どうやら「Pathomon」というのは、ポケモンGOにエボラウイルスなどのシリアスな生物学を加えて作ったゲームなのだという。 しかしProceedingsの図は上のように、ちっともポケモンのように可愛くないのである(^_^;)。 これではとてもpopularにはならないだろう、と確信した。
というように、セッションの内容についてProceedingsを調べたり感想を書いている合間に、上のように「sigmund~」の能力を試すパッチを上のように作ってみた。 三輪さんダイアトニック・メロディーのランダム生成を鋸歯状波のサウンドとして、この「MIDIノートナンバ認識結果」でピアノ音を鳴らして比較する、というものである。 これは実際にやってみないと分かり難いが、確かに「fiddle~」よりも性能が向上していて、さらに遅延が明らかに少なかった。 さすがの「改良版」だ、と再認識できた。 これで「sigmund~」についてのお勉強もだいたい終わりとした。
4件目は「Game-Based Course Design: A New Approach for Effective Online Teaching」というもので、ようやくタイトルだけで中身が読める発表が来た。 オンライン教育を効果的にするためにゲーム的にやりましょう、という事なのだろう・・・と予期してみたが、Proceedingsにあった上のような画面で、果たして本当にどんな教育が出来るのか、なかなか微妙である。 これは完全にゲームじゃないのかなぁ。 Conclusionとしては「ゲーム的にすると教育(トレーニング)は効率が上がるよ」ということだった。
5件目はランチタイム直前ということで、昨日に続いて「ランチタイムを削らないように全力で簡潔に行きます」と宣言してきた。 「Enhancing Progressive Education Through the Use of Serious Games」というタイトルで、なんだか禅問答みたいな感じである。 どうも、市販されているゲームに対して何か分析しているようなのだが、上のように、対象としているシリアスゲームが、どうにも面白そうなものが皆無、というなかなか辛いお話だった。 シリアスゲームだとこうなってしまうのだろうか。 対象は子供で、「色」とか「数」とかを学ぶ、つまり昔であれば「絵本」が担当していた領域の「学び」のあたりらしい。 結局、よく分からないうちに終わってしまった。 元々、シリアスゲームについて理解しきれていないところに、市販されているシリアスゲームから「Enhancing Progressive Education」を議論する、というのはまだまだ僕には無理なのだ、と気付いた。
午後イチのセッションは「Session HCI TECH I」ということで、1件目は「Learnings and Challenges in Designing Gamifications for Mental Healthcare: The Case Study of the ReadySetGoals Application」というものだった。「Mental Healthcare」というのは聞き捨てならない興味あるタームである。 しかし、ケーススタディとして「ReadySetGoals」という、上のようなスマホゲームを対象として分析しているので、一般的な意味で知りたかった「Mental Healthcare」についての議論ではなかったのが残念。 特定のゲームを分析の対象にする、と宣言して、ゲームに関係する何か(この場合には「Designing Gamifications for Mental Healthcare」)を議論した場合には、あくまでそのゲームについての「方言」みたいになって、いつになっても一般性のある議論が出来ないようにも思えるのだが、これはどうなのだろう。
上のように、内職のお勉強の対象を「bonk~」と選んでみた。 入力されるサウンドの中で、急激に音量が上がったattackを検出するものだという。 しかし2件目は「A virtual nose as a rest-frame – the impact on simulator sickness and game experience」ということで、「simulator sickness」と言えばたぶん「映像酔い」である。 これは過去にやっていた研究と関係しそうなので、なかなか内職が進みにくい(^_^;)。 「virtual nose」がどうして映像酔いに関係するかと思ったら、上のように、VR環境で、仮想的に「自分の鼻先」を表示することで、自分がどこを見ているかを無意識下に理解することで映像酔いを抑止するのだ、と分かってきた。 これはなかなか、アイデアものである。 しかし、鼻が高い欧米人はともかく、日本人にはちょっと理解しにくいかも。
どさくさに紛れて上のように、「bonk~」にサウンドを突っ込んで、明らかにアタックの部分でbangが光る、というパッチの動作を確認した。 まぁ、「bonk~」についてはこの程度だろう。 また「centroid~」というのは、「Compute the spectral centroid of a signal. centroid~ computes the spectral centroid from fft~ input. The spectral centroid is a measure of the spectral average weighted by amplitude.」ということで、FFTをかけて「周波数成分の重心を計算」ということだったが、あまり深入りすることもないだろう、とパスする事にした。 そして一種のシンセサイザだという「paf~」というのは、Maxでは動かない(;_;)ことを確認した。 最後に残った「stabletransient~」は、「Separate stable from transient spectral components」ということで、微妙にパラメータを変えるとちょっと面白い音がしたものの、こういうFFT技にはあまりソソラレない僕としてはこれもパスして、これにてようやく「vud.org」の探検が終了したことになった。 まだまだ道のりは遠い。
そして3件目は「On The Effect of a Personality-Driven ECA on Perceived Social Presence & Game Experience in VR」ということで、ECAという謎の略語から始まった。 Proceedingsを見てECAが「embodied conversational agent」であると知ったが、こんなのゲーム業界でしか通用しない略語だろう。 しかし「emotional model」についての研究はしっかりしていて、上のように感情心理学でよくあるような要素分析をして、さらにアバターの表情に反映させて、左は「怒り」、右は「悲しみ」と知覚されるようにコントロールしているという。 なかなかやっているではないか。
そして内職としてメイルをチェックすると、リンツからは以下のようなメイルが届いていた。 そうか、Ars Electronicaは今日からスタートしているのだった。 僕が行くのはまだ先、明後日の昼間という予定である。
September 6-10, 2018, hundreds of artists, scientists, engineers, designers, technologists, entrepreneurs and social activists will gather in Linz once again this year. Together, they'll be considering current technological and social interplays, and their potential manifestations in the future. These proceeding will take place in the presence of and with participation by the general public. The festival venues arrayed throughout downtown Linz include the former Austrian Postal Service logistics center at Linz's main train station, St. Mary's Cathedral, the OK Center for Contemporary Art, Moviemento, CENTRAL, Architekturforum, Brucknerhaus, the LENTOS Art Museum, Linz Art University, Salzamt, the Ars Electronica Center, St. Josef's Parish Church, Stadtwerkstatt and Anton Bruckner Private University. These locations are expressly conceived as settings in which young and old, laymen and experts alike, can get inspired and give free rein to their imaginations, explore ideas and visions, experience works of art and prototypes, performances and concerts. Come and have a look!そして午後イチのセッションの最後の4件目は「How Real Can Virtual Become? The Relation between Simulation and Reality Exemplified by the Digital Experiment」という、なかなかデジタル全否定の可能性を持った挑戦的なタイトルだった。 Prpceedingsを見ると、図や写真、つまりビジュアルが一切無い、つまり「文字だけ」という論文で、これはつまり僕の苦手な「美学」「哲学」 的な考察の発表である、と思われた。 これはもう無理ゲーなので、その後のcoffee breakを楽しみに、しばしの休憩モードでやり過ごすことにした。 プレゼンから、メンタルヘルスのための6種類の既存のゲームを取り上げて、バーチャルとリアルとの関係について議論したいのだ、とだけはわかった。 しかし、セラピー用のゲームということで数種類のスマホゲームの画面が次々に出てきたが、こんなのでセラピーになるのだろうか?という素朴な疑問が浮かんできた。 片手に収まるスマホの小さな画面と小さな文字では、とても没入感も臨場感も満足感もなく、そんなアプリで癒される方がおかしい・・・という気がするのだが、これって間違っているのだろうか。 せめてインターフェースには、スマホのタッチパネルじゃなくて何か工夫したセンサ(物理的リアクションのあるもの)を使ってみたいものだ。
午後のcoffee breakの時間に新しい事実が判明した。 かつての「2ちゃんねる」、現在の「5ちゃんねる」については、例えば国内の空港で開こうとすると「公序良俗に反するサイトなので閲覧できません」などと拒否されることも多く、まぁそんなものだと思っていたが、こちらドイツに来てからというもの、どこでも、どんな環境でも(空港・ホテル・カフェ・大学の異なるWiFiでも全て)、さらに持参した国際モバイルWiFiルータでも、とにかく一切、5ちゃんねるのページが見れなかった。 上の「5ちゃんねる速報ヘッドライン」は見えるのだが、どこをクリックしてもその先が出てこないのである。 そしてさきほどYAHOOで「5ちゃんねる 表示されない 海外」で検索して、一気に原因が判明した。
「EU諸国からのアクセスが出来なくなる 浪人でも回避不可」「もう見れないかもしれないけれど、書いておきます。GDPR対策でEU諸国からのアクセスが出来なくなり、浪人でも回避不可です。適法での運用のためですので、ご理解をお願いいたします」とあった。 GDPRとは、欧州連合(EU)が2018年5月に施行した個人情報の保護についてのルール「General Data Protection Regulation」の略、日本では「EU一般データ保護規則」と呼ばれているものである。 5ちゃんはどうやってもこれにひっかかるので(^_^;)、今回の渡欧中はずっとこれが続くと判明した。 しかし、その方が日々刻々の生産性がとても高くなるので、このまま帰国しても「脱・5ちゃん」のキッカケとなってくれれば嬉しい。そして午後の後半は「Session HCI Tech II」というセッションで、最初の発表は「Comparison of Teleportation and Fixed Track Driving in VR」ということで、どうやらこれも「映像酔い」関係だった。 VR空間で迷路のような街を歩かせて、生体情報をセンシングして「映像酔い」の程度を比較するのだが、どうやらこれが、僕がパイオニアの受託研究でやった「クルマ酔い」と同様に、「テレポーテーション移動」(受動的にVR空間を移動させられる)と「ドライビング移動」(能動的に自分が切り拓いていく移動)との違いを比べたようである。 酔いの生体計測は心拍レートだった。 僕の結果でも、被験者は「能動的聴取者」と「受動的聴取者」とに二分されたのだが、たぶんどうやらそういう話らしい。
2件目は「Towards Serious Games and Applications in Smart Substitutional Reality」というタイトルで、「Substitutional Reality」=「代替的現実」ということで、シリアスゲームにおいて全てのVRを精緻に実装すると「重い」ので、効果的に手抜きをするという部分を追求したらしい。 ただしProceedingsの図は上のようなもので、これでいいのか??とちょっとだけ思ってしまった。 でもゲームデザイナからすれば、特にお金のないシリアスゲームにおいては、切実なテーマであるのは確かだろう。
3件目は「An Embodied Learning Game using Kinect and Labanotation for Analysis and Visualization of Dance Kinesiology」というタイトルで、まだあったのか・・・というKinectねたであった(^_^;)。 まだギリシャにはKinectがあるのかなぁ。
そして本日最後、4件目は「LUTE: A Locomotion Usability Test Environment for Virtual Reality」というタイトルで、要はUnityで利用できるVR空間内の「Locomotion Usability」(運動の可能性?)を検出評価してくれる便利なアセット、ということのようである。 ただしここまで来ると、いくらコーヒーを飲んでも、日本ではもうじき日付が変わるという深夜ということもあり、ドッと疲れが出てきた。 まだまだ時差ぼけしているが、これからホテルに戻って有志のDinnerに出かける頃には元気になっている、と期待しよう。
そして、 フォトレポート にもあるように(実際には翌朝にWebに上げた)、市内中心部の有名なレストランで行われた参加者有志のディナーで、上のように美味しいワインと美味しい料理と美味しい会話を堪能した。 さすがに眠気に勝てずに、21時頃に早めに退出してホステルに帰ったが、おそらく皆んなは22時からの「ナイトツアー」(騎士が先導して街を散策)に行ったのだろう。
2018年9月7日(金)
いよいよVS-Games2018も3日目、最終日である。 起床はさらに遅くなって午前4時半、あと少しで現地時間の身体になりつつあるようで、実質的には睡眠不足が続いての疲労感もかなりピークになりつつある。 メイルをチェックしてみると、Sketchingコミュニティからのメイルが10本以上、届いていた。 普段は過疎っているSketchingコミュニティのMLが盛り上がるのは、メンバーの誰かが何か質問をして、他メンバーが一斉にアドバイスする、といういつものパターンである。
発端のメイルはMITメディアラボのCalra Diana女史だった。 「Diligent Robotics」というプロジェクトで、上のような可愛いロボットを作っているのだが、表情をディスプレイする多数のLEDをなるべく敷き詰めて、さらに半透明の素材でうまく光らせたのを見せたい・・・ということで、この試作(iMaterializeというのを使って3Dプリントしたらしい)をさらに進めるために、LEDの光を拡散させる素材の「うまい手」を募集、ということだった。 とりあえず ここ はチェックしたけれど、望む光沢のある表面と白の色合いをどうやって得るかについて、悩んでいるところらしい。
するとさっそく、「 frosted glass をスプレーしては?」と、「 privacy glass film を貼っては?」との提案、そして「自分の経験では、LEDと拡散材との距離が見え方にとって重要だ」というアドバイスが届いた。 そして、関連情報として このページ と このページ とのリンクも紹介された。 こういう情報がサッと出てくるのが、Sketchingコミュニティの凄いところである。(^_^)
すると、すかさず別のメンバーから「I agree with Tod re: distance between LEDs and diffusion material」というコメントともに、 1/16" white Delrin (McMaster p/n 8573K11) がRGB-LEDの拡散に最適だった、というコメントが届いた。
さらに、また別のメンバーから「 rear-projection screen coatings from Goo はなかなか良かった。ハケで塗らずにエアブラシで吹き付けるのが良い」とのコメントがあった。
そして、また別のメンバーからは、 An Overview of our Light Shaping Diffusers というページの情報も届いた。 ここはなかなかしっかりした情報である。 もしかすると、僕も今後に参考にするかもしれない。
そして、また別のメンバーからは、「3D printingよりも真空成形の方がいいのでは」ということで、 このページ の情報と、だいぶ昔に一緒に仕事をしたいい会社の情報として、 このページ と このページ と このページ のリンクが紹介された。
そして、また別のメンバーからは、上のような写真とともに、「 Diffraction Sheets を使ってみたことがある」との情報が寄せられた。
そして、また別のメンバーからは、上のような写真とともに、「プラスチックを使ってあなたが望む拡散を得る方法の研究があった。プラスチックの裏側に正確に間隔を置いて"micro perf"を配置する。各ディボットは、その領域の散乱と明るさを増加させる。必要に応じて、パターンをミル加工またはレーザーカットすることができる。この技法を使用して、"micro perf"の間隔を変えれば、LEDの数を減らしたり、配置を変更したりしても、効果を得ることができて、写真のようにうまく出来た。あなたがこの研究を見つけることができれば、私はディボットの間隔の計算式を提供できる」 とのコメントがあった。 まったくSkeychingコミュニティは凄い。(^_^)
そして、3日目の冒頭の基調講演はKurt Squire氏の「Designing Games for Social Impact」というものだったが、昨日に続いて窓が眩しくてスクリーンがよく見えないのと、あまりに滔々とした英語に付いていけず、上のSketchingコミュニティの記事を書くという内職に没頭した。 なんだか病院と組んで作った「ガンを治療する」ゲーム???という話も出ていたようである。 上は、 関係しているプロジェクトのページ? にあった色々なゲームのようだが、なんとも僕はまったくソソラレない(^_^;)。 延々と延びて60分の予定が85分になったが、最後の質疑ではまたまた「お金の話」(この業界で皆んながどうやって食っていくのか)で盛り上がったのがVS-Gamesらしい。 英語のリスニング(日本にいると読み書きばかり)にはだいぶ慣れてきたようだが、身体からの疲労感で、今日はMaxパッチのお勉強というテンションではない感じだ。
明日にはリンツに向けて出発するのだが、当初調べていた「ヴュルツブルクのワイナリー&ワイン農園」・「シーボルト博物館」・「レントゲン記念館」などに行く元気もないし、毎日バスが横を通過している、世界遺産の「 ヴュルツブルク司教館(レジデンツ) 」(上の写真)に出かける元気もない。 今日の最後のclosingセッションの後には、「ラボツアー」として、「(1) Human-Computer Interaction と Games Engineering に行くツアー」と、「(2) Media Education and Educational Technology Lab に行くツアー」の2本立てで、順に両方に行ける・・・という企画があるのだが、どうも午後のセッションまででcoffee breakで退散する可能性が浮上している。 今回は20日間と長丁場なので、あまり頑張り過ぎない、というのも大事なのだ。
15分押しで始まった午前のセッションは「Session EDU II」ということで、またまた教育/トレーニングねたである。 1件目の「Effectivity of Affine Transformation Knowledge Training Using Game Mechanics」は、ちょうど僕がMax/jitterでやって有効だったアフィン変換についての話題らしい。 僕の「ジャバラ」のMaxパッチのスクリーンショットは ここ にあり、実験してみた様子のYouTubeは ここ にあったが、これは完全にトライアンドエラーの世界で、サンプル図形を「いい感じ」に変形できた変換行列のパラメータをそのまま定数行列として保存した、という涙ぐましい作り方だった。
Proceedingsから持ってきた上の図ではちょっといまいち分かりにくいが、上がそのツールで、下がこれを使って試作中の様子らしい。 3D空間のゲームの制作を学ぶ学生にとって、3D空間内での移動とか変形とかを施す上で、アフィン変換を使いこなすことが有益なので、支援ツールとして色々なアフィン変換を簡単なパラメータ指定(変換行列の数値を簡単に変更できる)のみで実行できる「ツール」を作った、というような話のようだ。
2件目の「Piloting two Educational Games in five European Countries: Teachers’ Perceptions of Student Motivation and Classroom Engagement」は、Google翻訳だと「5つのヨーロッパ諸国における2つの教育ゲームのパイロット:学生のモチベーションと教室の関与に関する教師の認識」となる。 調査の対象は高校レベルの生徒で、上のようなゲームを作るというタスクで調べたという。 こういうゲームを作って楽しい人は楽しいし、楽しくない人はモチベーションは上がりそうにないのだが・・・。 ゲームというのはあくまで対象テーマであり、研究の中身としては「教育(作業)心理学」というような感じのようだったが、詳しい中身はちょっと別件のメイルが届いて対応していたので、聞き流してしまった。 というのも、出張中にヤフオクからアラートが届いて、「ニンテンドーDS用振動カートリッジ」というのを落札していたのだが、それが自宅に届いたと家族に確認してもらってヤフオクに「到着連絡」(→これでようやく出展者にお金が届く)をする、という作業は落札者として大事な仕事なのだ。
3件目の「Assessment in Serious Alternate Reality Games」は、Google翻訳だと「深刻な代替リアリティゲームにおける評価」となるが、ここでシリアスを「深刻な」とすると間違いの元なので、「代替リアリティ・シリアスゲーム」とすればいいのかな。 Proceedingsにまったく図が無い、という僕が苦手なpaper(図があればなんとなく中身が推量できる)で、大きく「評価」とある研究で、ちょっと僕には詳細は伝わらず苦しかった。 そこでフト、上のように明日と明後日のリンツの天気予報を見てみると、とりあえず雨は降らないと判明した。 何故か「18-24時」という時間帯がもっとも気温が高いという謎はあるが、これならドナウ川の畔りで行われるスペクタクルは寒々としないので、ショーを楽しむには好適だ。
4件目の「MoMaP – An interactive gamified app for the Museum of Mineralogy」とは、「鉱物学博物館」のための「interactive gamified app」ということで、シリアスゲームではけっこう王道の「博物館ねた」である。 上の4つの写真と図で、ほぼストーリーが丸わかり、という嬉しい発表だった(^_^)。 2年前にもどこかの博物館の発表があったが、世界中の博物館はお客さんに来て欲しいので、こういう「展示内容を解説してくれるアプリ」が欲しいので、それをゲーム的に楽しめるように・・・真面目なアプローチが必ず出てきて、シリアスゲーム業界としては重要なテーマなのだろう。 博物館はたいていの場合には公的施設で予算が付くし、たまに企業の博物館であればその企業はお金持ちなので、シリアスゲームの開発者としても「美味しい」のだろう。
ランチをはさんで午後の最終セッションは「Session TECH II」ということで、1件目の「Efficient in-game communication in collaborative online multiplayer games」は、どうやら中身に対応してか、Skype中継(ビデオチャット)での発表となった。 会場ではコラボレータがプレゼンシートを繰って、Skypeからの声でプレゼンが進む、というスタイルはもう10年前ぐらいにICMCでも見ていた気がするが、さすがに昔と違ってクオリティ(音質・遅延)が上がっている気がした。 ただし、会場で飛んでいるWiFiが重くなると、途端に音声がヘンになる、というアレは頻繁に発生した。 オンラインゲームで、コラボレーションするユーザ同士の「ゲーム内コミュニケーション」が有効なのは、ある意味で当然だろう。
2件目の「Measured and Perceived Physical Responses in Multidimensional Fitness Training through Exergames in Older adults」は、Google翻訳だと「高齢者のエクセレンスを用いた多次元フィットネストレーニングにおける測定され知覚された身体的反応」である。 これはバイオフィードバック・リハビリテーションにも近いので僕にとって重要な発表だ。 EXERGAMESということで、上のような色々なものを検討していることがわかった。 ゲームはやはり、Unityで作っていた。 これはかなり参考になりそうだが、基本的にフィットネス(極限の筋力などを鍛える)ということで、ちょっと僕の求めている方向(中途の部分での内受容感覚)と違うのも事実である。
3件目の「A Multisensory 3D Environment as Intervention to Aid Reading in Dyslexia: A Proposed Framework」は、「ディスレクシアの読書を助ける介入としてのマルチ感覚3D環境:提案された枠組み」では分からなかったが、Wikipediaで「ディスレクシア(英語: dyslexia)は、学習障害の一種で、知的能力及び一般的な理解能力などに特に異常がないにもかかわらず、文字の読み書き学習に著しい困難を抱える障害である。失読症、難読症、識字障害、(特異的)読字障害、読み書き障害、とも訳される。発達性読字障害(DRD; Developmental reading disorder)とも呼ばれる」という事でようやく分かった。 ただし、Proceedingsにあった図は上のような一般論フレームワークの説明だけで、実際にこの研究が具体的にMultisensoryでどのようなアプローチをとったのかはなかなか捕まえられなかった。 「あらゆるセンサを活用して」というのは、掛け声としては格好いいものの、そんなに簡単ではないのだ。
4件目の「Dynamic Systems Theory in Human Movement: Analysis Exploring Coordination Patterns by Angle-Angle Diagrams Using Kinect」は、ほぼタイトルで読めるものだった。 ここにもまだKinectがいた(^_^;)。 Proceedingsにあった上の2つの図から、Kinectでセンシングした人体の角度状態から「モーション」を認識するためのアルゴリズムとして、「Angle-Angle Diagrams」というのを提案している。 実はこれは、僕が筋電センサからのパターン認識アルゴリズムとして提案した「リサジュー解析」とかなりアイデアが似ている。 やはり、同じようなことを考える人は出てくるものなのだ。(^_^)
5件目の「Towards Robust 3D Skeleton Tracking Using Data Fusion from Multiple Depth Sensors」も、ほぼタイトルで読めるものだった。 ここにもまだKinectがいた(^_^;)。 上の図でとても良く分かったが、3台のKinectを使って、それぞれにPCが繋がってOSCでサーバに情報を送るので、1システムで4台のPCを使うというのは、なかなかイマドキではない(^_^;)。 それより心配だったのは、同じ空間に3台のKinectを向け合って、Infrared interferenceとかしないのだろうか・・・と質問しようとしたが、考えてみれば通路のように多数のKinectをを並べたインスタ作品とかもあったので、おそらくKinect自身が「周囲の他のKinect」を検出して対応しているのかも、と気付いた。 質疑の際の回答では、干渉しないようにKinectをカスタマイズしているとのことだった。
オーラス、6件目の「Image Warping using WebGL for a Smart Avatar Animating Body Weight Evolution」も、ほぼタイトルで読めるものだった。 Proceedingsにあった上の図によって、やろうとしている事(Image Warping using WebGLで元になったアバターが太ったりシェイプアップするのをスマートに描画)も良くわかった。 自分の発表が無かった分、逆に全ての発表をきちんと追いかけるという有意義な国際会議となった。(^_^)
そして、ここで当初予定のようにcoffee breakがあれば抜け出そうと思っていたが、そのままclosing sessionとなった。 こんなマイナーな国際会議がこれで10年も続いた、というところでまず拍手が起きた。 そして、Best Paperなどの表彰があって、「来年のVS-Gamesは2019年9月4-6日、Vienna」( 7Reasons のHCI Labがホスト)というアナウンスがあった。 上は7reasonsのサイトである。 僕はたしかウイーンはこれまでに数回は行っているので、これで安心して来年はVS-Games2019をパスしてICIMCとかNIMEにチャレンジするかもしれない。(^_^;)
ラボツアーを待たずにWurzburg駅前に帰ってきて、明日のリンツ行きの特急のチケットを購入して、疲れたので外食でなくホステルの部屋で夕食・・・ということで駅の売店でビールとか食べ物を仕入れて、上のようにまだ昼間のような明るさの17時過ぎには部屋に帰った。 そして夕食後、こういう疲れた時にはとにかく睡眠だ、ということで、まだまだ明るい18時過ぎには、カーテンを閉めて無理矢理にベッドに入った。
2018年9月8日(土)
昨夜は、夜中に目覚めてもまだまだ二度寝・三度寝を心がけて、結局、またまた起床は4時半となったが、だいぶ気力体力回復という内受容感覚に溢れた朝となった。 格安で快適なホステルの部屋にはテレビもコップも無いが、ネットのライブニュースで日本国内でもBBCでも、常にストリーミングでニュースが聞こえる、いい時代になったものだ。 ここは早朝で日本は午後になっているが、週末の土日になったのでメイルもほとんど届かず、静かな朝である。
WurzburgからLinzまでは4時間かかる(Frankfurt空港からここWurzburgまで乗ってきた、Frankfurt発Vienna行きの特急に途中から乗ってLinzで途中で降りる)ので、この車中では「Maxお勉強」と決めているが、まだホステルを出発するのにちょっと早い朝6時なので、「MaxSummerSchool2018の思い出し」シリーズの、「vud.org」に続く第2弾として、「6日中級・三輪」を開いてみた。 上にあるのは、そこでの解説と議論を受けて僕が作っていたパッチである。
そして同じディレクトリにあったのが、上の「Nnotescale.maxpat」で、これは三輪さんが参加者に配布したサンブルである。 とても丁寧に、真面目に、それでいて、さりげに「深い」パッチなのだ。 左の「単に12半音から音を選ぶ」というのは、誰でもやる12等分平均律のChromatic Scale(半音階)、これだと調性感がなくて現代音楽のようになる。 真ん中の「全音音階の開始音を1音ごと交互に半音移動させる」は、ランダムを2倍して偶数だけのノートにするので、Whole Tone Scale(全音音階)となり、鉄腕アトムのアニメの曲の冒頭の7音もこれであるが、そこに交互に「+0」か「+1」をするので、結局はクロマティックになる。
そして右の「五度圏サークルに隣接するN音を選ぶN音音階」が、僕の作ったパッチと同じように、ランダムに半音7つ分(完全5度)を乗算しているので、5度円で隣り合ったN音が生成される。 N=7であればDiatonic Scale(全音階)、つまりドレミファソラシである。 N=5であればPentatonic Scale(5音音階)、つまり全ての黒鍵だけの「猫ふんじゃった」だったり、「ヨナ抜き」(ドレミソラ)の演歌の音階になる。
ただしここで三輪さんの凄さを改めて実感したのは、「五度圏サークルに隣接するN音を選ぶ」という発想である。 これは次に出てくる、三輪さんの「自動作曲アルゴリズム」や「17等分平均律」のパッチを昨日のセッションの合間に眺めていて驚かされたアイデア(音楽的発想法)と直結するので、僕のパッチのように乗算する値を7と5だけに限定(決め打ち)していては駄目なのである。 さすがの三輪さんなのだ。(^_^)
そしてここは「ICE 21」とネット検索すると出てくる、WurzburgからLinzに向かう特急の車内である。 WiFiはあるし、電源もあるし、食堂車/売店は隣の車両だし、これはお仕事が捗る。 上のパッチは第3弾の「7日中級・三輪」というディレクトリの中にあった、三輪さんが配布した「NHetudeNew2radiations.maxpat」という自動作曲演奏パッチに、「seq」オブジェクトにMIDIシーケンスデータを書き出すようにだけ修正したパッチ「NHetude_record.maxpat」の様子である。 単なるChromatic Scaleでなく、三輪さん自身が「五度圏上の位置を規則に従って順に変え続ける16音のループ」と名付けているように、刻々と調性感を移動させつつ、メロディーとして知覚されるように「五度圏サークルに隣接するN音を選ぶ」という方針で音を選んでいるのがボイントで、何度聞いても飽きない。
そこで長い電車旅で時間が十分にある、ということで、(1)「seq」オブジェクトで記録スタート、(2)2個の「初期化ボタン」を押す(パッチを新しく立ち上げたのと同じ)、(3)左上のトリガで自動演奏スタート、(4)そこそこの時間を記録する、(5)左上のトリガで自動演奏ストップ、(6)「seq」オブジェクトでの記録終了、(7)MIDIシーケンスデータを書き出す、という手順で10回ほど、データを作ってみた。
- 一定の方向に進んでしまうパターン(1) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(2) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(3) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(4) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(5) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(6) MIDIファイル MP3ファイル ノート記録画像
- 一定の方向に進んでしまうパターン(7) MIDIファイル MP3ファイル ノート記録画像
- サステインペダルが効いたパターン(1) MIDIファイル MP3ファイル ノート記録画像
- サステインペダルが効いたパターン(2) MIDIファイル MP3ファイル ノート記録画像
- ときどき手作業で初期化してみたもの MIDIファイル MP3ファイル ノート記録画像
上のリストはそのうち、(A)聞いていると次第に音域が上がる、または音域が下がる、ということであまり面白くないパターンに収束?しているものが7つ、(B)途中で自動でサステインペダルがONになったりして、いい感じに続いたパターンが2つ、(C)最後に1つ、聞いていて単調かなと思ったら適宜、2個の「初期化ボタン」のいずれかを押す、というものである。 最後の1個だけは「自動作曲演奏」に任せずに、人間が途中でちょっかいを出している、というインタラクティブなものである。
10個のサンプルそれぞれには3つのデータがあり、最初が「seq」で記録された生データ、次がこのmidファイルをQuickTime7プレーヤに食わせてAIFFファイルに書き出したサウンドファイルをMP3化したもの、最後はMIDIデータをGarageBandに食わせて、生成されたノートが時間的にどのように推移したかが分かるピアノロール画像である。 最後のサンプルだけ時間が長いので4つのグラフに分割した。
こうして眺めてみると、個々の瞬間に生成されるメロディーがそこそこ音楽的であること、アルゴリズムの限界で「つまらない」パターンに収束してしまう事もあること、たまにいい感じで推移すること、そしてちょっとだけでも人間が介在すればとても 面白くなること、等がよく分かった。 複雑にたくさん置かれたサブパッチを調べて生成アルゴリズムの詳細を探求するまではやっていないが、これだけでも伝わってくる、さすがの三輪さんである。(^_^)
そして上のパッチは、三輪さんの「test17toneMSS.maxpat」という、17等分平均律の体系でも「いい感じ」の音楽を生成できるパッチにサウンドをレコーディングしてファイルに書き出す「sfrecord~」を追加修正したパッチ「test17toneMSS_record.maxpat」の様子である。実際にこれを走らせて作ったこのサウンドを聞くと、これまで17等分平均律に対して漠然と抱いていた「ヘンな感じで使えない」というのが大変な誤解だった、と反省させられた。
何故、あちこちで12等分平均律とズレていて気持ち悪いので敬遠していた17等分平均律なのにこんなに音楽的に聞こえるか、という理由は、三輪さん提供の解説movieから撮った上の図で明白である。 17等分平均律で生成される17個の音を適当にバラまけば、Chromatic Scaleが現代音楽にしか聞こえなくて面白くないのと同じように、違和感はさらに倍加するので駄目なのである。
ところが三輪さんは、17音に等分されたピッチクラスの中で、近似的に完全5度(振動数比が2:3)に近いもの同士を、上の図のように「5度円」として再配置して、さらに「12等分平均律のDiatonic Scaleであれば7音分に相当する、5度円でこのくらいの範囲」という範囲に制限した音「だけ」を17音の中から選択しているのである。
そこで、生成されるメロディーは、ちょうど12等分平均律で人類が心地良い、という範囲に近いスケールに基づくことになり、個々のピッチはもちろん12等分平均律のDiatonic Scaleとはズレて唸りがあるものの、ところどころはいい感じにDiatonic Scaleに近く、ズレている音もアラビア音階のようなテイストで許容できる(むしろエスニックにとてもいい感じ)、ということになるのである。 サウンドも擬似的なフォルマントの「声」が切なくて、まさに「三輪ワールド」全開の素晴らしいパッチなのだ。なかなかに濃くて重い、三輪さんの素晴らしい2つのパッチを堪能したところで、Maxお勉強の第3弾の「7日中級・三輪」というディレクトリの探検は終了である。 本当は、これら2つのバッチの内部に攻め入って改造して、オリジナル化する・・・という作戦もあるのだが、まずはMaxSummerSchool2018のおさらいを優先することにした。 Wurzburgを出た特急はぼちぼちPassau、というところまで来て、リンツまではあと1時間である。 窓の外には、線路と並んで道路、そしてその向こうにはずっとドナウ川が流れていて、いかにもオーストリアらしくなってきた。
朝イチの特急でリンツに着いたので、初日から半日の時間があるというパターンになった。 アルスは毎回、メイン企画会場が市内のあちこちに移動するのでいつも困惑する。 今回は「POSTCITY」という、リンツ駅のすぐ横の郵便局らしいということで、まずはFestival Passをゲットすると便利なので・・・とスーツケースを押しながら行ったが、入り口からスロープを登った2階がチケット売り場で、いきなり汗だくになった。 ただし当日券の行列を尻目に、事前にネット購入していたFestival Passを受け取る、というのはスムースだった。
そしてトラムの1日券(maxi)を買ってLinz駅から1つ先の「ゲーテなんとか」という電停から100mほどのホテルに着いた。 「2nd floor」ということで3階までスーツケースを持って上がったが、まぁこんなのはマシである。 過去には2004年の Sabbatical 2004 で、アムステルダムで滞在したスタジオSteimのゲストハウスで狭い階段を4階か5階まで、というのがあった。 正午過ぎのチェックインで部屋に入れたので、汗を乾かすために衣服下着を全てハンガーにかけて全裸になり、Wurzburgで買っていたのに昨夜は飲まなかったのでLinzまで持参した赤ワインをちびちびやりつつ、上の今年のマップを見ながら、まずは今日の作戦を立ててみた。
今晩は土曜日だから恒例のスペクタクルショーがドナウ川であるので、それに向けて、(1)とりあえずLinz駅に戻って、上のPOSTCITYで展示されている企画を全てチェックしてしまう(再度来なくていいように)、(2)すぐ真ん前が長距離バス乗り場のようなので、次にプラハに向けて乗るバスの乗り場を確認しておく、(3)夕方までにいったんトラムで帰り、電停のところにあるスーパーであれこれ(飲むものとおつまみ)仕入れてホテルに持ち帰り、(4)その後に19時ウォームアップ→20時スタートのスペクタクルショーに向かう(早めに着いたらハウプト広場で軽く一杯)、というスケジュールを決めた。 びっしょり汗が通っていた下着とシャツも乾いた(この湿度がオーストリアは快適なのだ)。 ホテルのフリーWiFiは超細いので、ここまでをモバイルWiFiルータでサーバに上げたら、13時半ぐらいで出発である。
その後、POSTCITYの展示を歩き回って汗だくになってチェックして、いくつか気になった作品は動画記録した。 そして疲労困憊していったんホテルに帰って休息してから、ドナウ河畔のイベントに出かけた。 しかし今年は手抜きでかなり遠くのカフェに陣取ったこともあり、イマイチの展開に寒さもあって途中で退散した。 ちょうどホテルに戻ったところで花火の音がしたが、最近のアルスは予算縮減で、どうも規模が小さくてしみったれた感じがする(^_^;)。 詳しくは フォトレポート のどこかにあるので参照されたい。 ・・・ということで、主として移動日だった今日はおしまいとなった。
2018年9月9日(日)
今回の渡欧では、到着地フランクフルトと帰途の出発地ミュンヘンは何度となく、バス乗り継ぎのプラハについても過去に何日か滞在していて「土地勘」がある。 一方、滞在地のWurzburgとBrunoとKrakowとPoznanはいずも初めての訪問で、いわば「アウェー」である。 そしてここリンツについては、アルスエレクトロニカへの訪問滞在が10回目ということで、市内の隅々まで熟知した「ホーム」という感じで、昨日はちょっと油断してビールとワインを堪能し過ぎた。(^_^;)
昨日のPOSTCITYで色々な作品を見た様子は フォトレポート にあるが、さらに動画を記録したのは上の4作品である。 これは後期にさっそく講義で紹介しよう。
そして2日目となったこの日は、まず最初にアルスエレクトロニカセンターに行ったが、HMDが安くなったからだろう、常設展示と体験コーナーは「VR大会」一色だった(^_^;)。 以下の写真は、地下3階の企画展コーナーのおっさんに捕まって撮られた、僕の右目の網膜あたりである。 メイルアドレスを書いたら画像が添付されたメイルが届いていた。 これで「緑内障」と分かるのはプロである。
そしてドナウ川を渡ってLentos Museumの展示をチェックしたが、ここで喉に異常を感じた。 どうも昨日あたり、展示を見て回っては汗だくになり、その後に乾燥して涼しい気候で汗が乾く・・・というのを繰り返しているうちに、もしかするとヤラレタかもしれない。 僕は過去に扁桃腺を取り去っているものの、無い筈の扁桃腺のあたりが腫れる、というのが体調不良の兆しなのだ。 そこでハウブト広場のいつものChinese Restaurantで気合いの昼食をとり、「Performance "Feedback Cycles for Oscillographs"」というのがどうしても気になって駆け付けた。 今日の動画を記録したのはこの作品と、あとリンツのデザイン大学学生の作品だけである。
上は、「Performance "Feedback Cycles for Oscillographs"」の一コマである。 詳しくは フォトレポート を参照されたい。 そして午後3時過ぎにホテルの部屋に戻って今日の写真とかこの日記を書いて、静養。 晩は夕食にちょっと出るものの、明日に備えてひたすら寝ることにした。 明日はいよいよアルスエレクトロニカのコンペ部門の上位入賞作品の展示(OKセンター)をじっくり回る予定だ。
2018年9月10日(月)
新しい週になって、今月末の領域ガイダンスに関する学生からのメイルが届いたりして、次第に「夏休みの終わり」も視界に入ってきた。 まだまだ20日間の出張の半分にもならず、気合いで突き進む残り日数ではないので、前夜は自重回復モードを目指して飲まずに早くベッドに入り、掌にある「風邪ツボ」を指圧しつつ寝て、夜中に目覚めても無理やり寝続けることで計10時間ほど睡眠した。 フロントで薬局の場所を聞いたので(これまで海外出張で現地の薬局で風邪薬を買ったのは1997年のギリシャ・テッサロニキだけ。海外の薬は超効くので注意が必要)、10時に出かけて購入するまで、ホテルの部屋で大人しくお勉強モードと決めた。
MaxSummerSchool2018の復習お勉強の第4弾は「8日中級・三輪」というディレクトリである。 ここでは「またりさま」のようにアルゴリズミックにバトンタッチして音楽を生成していく、という話題がテーマだった。 上は、前回の「7日中級・三輪」というディレクトリにも入っていた、「Metrumsend4222」というサブパッチであり、どうも三輪さんがシステム全体を統括するシステムクロック・ジェネレータとして愛用しているものらしい。 僕もToyotaの自動運転車用自動作曲システムでは、同様のシステムクロック・ジェネレータを作っていたが、Maxでリアルタイム作曲する場合には、「音楽的なタイミング」のクロックだけでなく、それよりちょっとだけ早い「アルゴリズム演算結果を確定させるラッチパルス」のようなクロックも必要なので、どうしてもこういうものが必要になるのである。
そして、上がこの「8日中級・三輪」というディレクトリに入っていたメインの「JaikenClapping.maxpat」というパッチである。 「蛇居拳」とは、要するにグーチョキパーのように「3すくみ」になる関係を元に、前の人からもらった音列に対して自分の処理をしたものを次の人に渡す、というもので、上のパッチでも、5人のplayerのパッチは全て同じ形をしているが、刻々と内部パラメータが変化していくことで全体の音楽を構成している。 まさに「またりさま」以来続いている、三輪さんワールドの真髄なのだ。(^_^)
続くお勉強は、上の「8日上級・三輪」というディレクトリであるが、ここは「フォルマント兄弟」(三輪眞弘(兄)と佐近田展康(弟)という父親違いの異母兄弟)ということで、佐近田さんの気合いの入ったMaxプログラミングのエッセンスもまた濃密に詰まった世界である。 ここを初めて見る人は、まず最初に フォルマント兄弟 のサイトに行って、そこにあるMovieとかを鑑賞してから以下の話に付いてきて欲しい。
フォルマント兄弟のやってきた真面目なアプローチとは、Computer Musicの世界で昔から歌声合成の王道だった「フォルマント合成」をトコトンまで極めて、母音だけでなく子音も、つまりは「歌詞を付けて歌う」というのを、ボカロなどの「音声素材を事前に用意する」という姑息な手段を用いずに、完全にアルゴリズミックに「歌わせる」ことを目指しているところが凄い。 プラットフォームとしてはまっさらなMax7があるだけで、何も事前にサウンド断片などの素材やボカロのボイス音源データなどが不要である、という潔さは美しい。
そして、ボカロなどのようにDTM的に事前にデータを非実時間的に制作したものを「再生」することで歌声合成するのでなく、実際のライヴ演奏時にピッチやニュアンスや歌詞まで「演奏」する技法を独自に編み出して、普通のMIDIキーボードとか普通のMIDIアコーディオンで、リアルタイムにMax7に「歌詞付きで歌わせる」ことを実現している。 ・・・ただしその独特のプロトコルによる演奏技法というのは超絶技法もいいところで、ライヴで演奏できるPlayerが世界に一人しかいない、というのも、実にフォルマント兄弟らしい(^_^)。 ・・・ここまで書いてきて、いよいよOKセンターに出かける時間となったので、続きはまたどこかで再開しよう。
そして今は夜9時、ホテルの部屋である。 上の写真のように(詳しくは フォトレポート を参照)、今年はOKセンターの展示はアルスエレトロニカのコンペティション部門の入賞と入選の作品だけに限定しているので(他のコンペでない企画展はPOSTCITYなど)、レベルの高い作品展示を堪能できた。 朝に薬局で謎の風邪薬?をゲットしたもののお腹が壊れてしまって正露丸も加わり、謎のトローチとともに夕方から3時間ほど寝て大汗をかいてちょっと治りつつあるところで起き出してきて、今朝の「フォルマント兄弟」のお勉強の続きである。
「8日上級・三輪」というディレクトリ内には、さらに「声/音境界線実験パッチ」というディレクトリがある。 まずはここをザッと見ておくと、「freeverb~.mxo」というのは別途に(Xcodeとかで)作られたMaxオブジェクトなので、パッチのように叩いて開くことはできない。 そして上の「mirror.maxpat」は、FFT入力した成分をなんか反転させてFFT出力しているようなので、何か内部的に使われているかもしれない、まさに「鏡のように反転させる」というサブパッチだろう。
上の「x.notein_17avrg.maxpat」というサブパッチもなかなか複雑なものだが、おそらく後で紹介する「BKPTSJSynth.app」というアプリの中で使っているのかもしれない。 「入力されたMIDIノート(12等分平均律)をメロディーとして過去の音列の履歴も換算しつつ17等分平均律のピッチに換算する」というように僕は見立てたが、間違っているかもしれない。 このパッチには、以下のような、いかにも試作のようなサブパッチも入っている。
これらのパッチ(まだ具体的には何だかわからない)だけでも、なんとなく「フォルマント兄弟」のただならぬMaxマニアぶりが伺えるが、「声/音境界線実験パッチ」というディレクトリに残った最後の1つ、「*F合成説明+音/声境界デモ.maxpat」というのが、次に紹介するまさにフォルマント兄弟のサウンドの「肝」の部分である。 一般的に人の声をフォルマント合成するには、フォルマント(発声するピッチに対応して上下する高次倍音成分パーシャルでなく、声道/口腔に固有のピークを持つレゾナンスフィルタ)が4つ程度でいい、とされるが、フォルマント兄弟もこのパッチで、たった4つのフォルマントだけで、凄い色っぽい歌声を生成しているのである。
上はこの「*F合成説明+音/声境界デモ.maxpat」のパッチに、鳴らした音をサウンドファイルとして書き出す部分を僕が追加して作った「*F合成説明+音/声境界デモ_record.maxpat」の画面である。 この画面がスッキリしているのは、僕がMaxSummerSchool2018まで知らなかった「Presentation Mode」というやつだからで、実際の中身は凄いことになっている。
そこで、このパッチを走らせて、(1)全体の様子をスクリーン動画(サイレント)として作ったのが このMP4ムービー で、(2)その中で「sfrecord~」の上のトリガをONにしてからOFFにするまでの録音サウンドが このMP3サウンド である。
海外出張中はGoogleに「マシンが違う」と叱られてログイン出来ず、YouTubeに上げられないと判明したので(国内だと携帯にSMSを送ってもらって本人認証が出来るが、スマホを持たない僕には国内ガラケーのSMSが届かない(;_;))、今回はmp4を置いていくしかない。 このMP4動画とMP3サウンドをそれぞれPlayerで開いて、まず動画をスタートさせて、「sfrecord~」の上のトリガをONにした瞬間にサウンドもスタートさせると、やっている事が同期する。 スクリーン動画では途中で「Presentation Mode」をOFFってパッチの全体も見せているので、その全貌を堪能されたい。
さて、いよいよ本論である。 まずは上の「BKPTSJSynth.app」というアプリ(正式名称は"「兄弟式日本語鍵盤音素変換標準規格」及び「和音平均化アルゴリズム」に基づく専用ソフトウェア」"にもとづく「MIDIキーボードとパソコンのための Xu-mi-Xiu-ka-Ba」らしい)はWebでダウンロード用に公開されているので、 このページ からゲットして、とりあえず走らせてみよう。 自動デモ演奏モードもあるが、外部のMIDIキーボードで誰でもこのシステムでリアルタイムに「発音しつつ発声」する、つまり「歌詞付き歌声合成シンセ」となるのである。(^_^)
"「兄弟式日本語鍵盤音素変換標準規格」及び「和音平均化アルゴリズム」に基づく専用ソフトウェア」"にもとづく「MIDIキーボードとパソコンのための Xu-mi-Xiu-ka-Ba」の画面の左側にある図をクリックすると、上のような図が出てくる。 これがまず、「フォルマント兄弟」のこだわりの発明の一つ「兄弟式日本語鍵盤音素変換標準規格」で、キーボードの音域の左側(楽譜でピアノのように大譜表にした場合にはヘ音記号の下段)を使って、あらゆる「発音」を表現してしまおう、というのだ。
当然、MIDIでこれらの情報を「ほぼ同時」に受けたとしても微妙に押された時間差があるので、Maxバッチではまず、「ほぼ同時」に押されている鍵盤を抽出して、そこから母音だけでなく、子音をとんでもなく精緻に規定して再現している。 この方法の凄いところは、「楽譜に歌詞としての文字を書かなくていい」ところである。 つまり、日本語が読めない人でも楽譜を正しく引けば正しい日本語が発音発声されるのだ。 「歌詞の発音を楽譜として表現する」というのは、たぶん世界で「フォルマント兄弟」だけである。
そして「フォルマント兄弟」の素晴らしい音楽的発明のもう一つが、上の「和音平均化アルゴリズム」に基づく、「ピッチの平均化による自在な微分音程の生成」である。 こちらは、キーボードの音域の右側(楽譜でピアノのように大譜表にした場合にはト音記号の上段)を使って、あらゆるピッチを表現するためのアイデアである。 考え方は単純で、「同時に押されているMIDIノートの平均ピッチを生成」する、という事で、これが出来るのは、Maxの「mtof」(MIDIノートを対応した12等分平均律のピッチに変換する)というオブジェクトの入力が整数でなく実数(浮動小数点)であった、という事に起因する。
僕は長らく「mtof」を使ってきたが、まさかこのオブジェクトの入力が整数(int)でなく実数(float)である・・・とは知らなかった。 ここを目ざとく追求したところ、そして「複数のMIDIノートが来れば"和音"なのを、それらのMIDIノートの平均の"単音"にしてしまう」という発想の転換に、「フォルマント兄弟」の成功があった。 上の楽譜は以下で解説するが、上段が「1オクターブを18等分した音」を生成するための鍵盤の押さえ方、その下の2段が「1オクターブを36等分した音」を生成するための鍵盤の押さえ方である。和音に見えるが、こう押すと単音の歌声が鳴るのだ。 歌声であれば単音でいいのだから、分かってしまえば当然であるが、まさに自由な発想だ。(^_^)
「8日上級・三輪」というディレクトリには、たった2つだけのMaxパッチが置かれているが、それが上の「ChordAvarage.maxpat」とそれをMIDIキーボードで試せる「testChordAvarage.maxpat」である。 「入力されたMIDIノート(12等分平均律)で同時に押されている全てのMIDIノートの平均値をmtofに入れたピッチを出力する」ということである。
一つ上にあった楽譜の1段目は、注意して音価を見ると、同時に1音とか3音が鳴っている。 最初の音は「Db」だが、次の音は続いているので「Db+C+Eb」という3音である。 その次の音は「Db」が続き「C」も続いていので「Db+C+E」という3音である。 その次、つまり4番目の音は「Eb」で単独である。
つまりこの楽譜は、12等分平均律の普通のキーボードを演奏しているのに、「全音を3等分して、1オクターブを18等分した平均律」をこのシステムから鳴らすための記譜法、ということになる。 日本民謡のコブシとか邦楽のしゃくりとかアラビア音階など、12等分平均律にないピッチを、正確に再現するための手法である。
同様に、一つ上にあった楽譜の2段目と3段目は、12等分平均律の普通のキーボードを演奏しているのに、「半音を3等分して、1オクターブを36等分した平均律」をこのシステムから鳴らすための記譜法である。 実際にはもっと変則的な押さえ方をすると、これら以外にも、ほぼ任意のピッチを、記譜することで正確に再現できるという事だ。 これまでの音楽では、このような曖昧なピッチは感覚的な表情記号だったり、演奏家の恣意的な「解釈」に委ねられてきた。 しかしディジタルの時代、このように明確なルールさえあれば、物凄い曖昧なピッチも正確に記譜して、誰でも正確に再現演奏できるのである。 実にクールな、「フォルマント兄弟」らしい。(^_^)
上の楽譜は、ライヴ冒頭の「キン歌います」という語りの部分の楽譜である。 「こんにちは。たかねキンです。新曲 "仙台トドンパ節" 歌います」とローマ字で歌詞が書いてあるが、これは協演する人間の演奏者に知らせるための情報で、実際には下段の左手の押さえ方でこの歌詞が生成され、上段の右手の押さえ方で微妙なピッチの単音メロディーに乗った歌声となる。
ボカロでも「初音ミク、歌います」と冒頭に喋ってウケたものだが、それとこれとの違いは天地の差がある。 こちらはこの楽譜をMIDIキーボードで正しく弾けば、誰がやってもライヴで正しく「キン歌います」と語る。 Maxパッチ(あるいはこのアプリ)があるだけで、事前に打ち込みデータも音素データベースもまったく不要であり、さらにライヴに敢えて即興的にちょっと違って弾けば、違う言葉や違うピッチを任意に生成できるのである。
上は実際にライヴでやったという「ヲどりだよ」という曲の楽譜であるという。 民謡風のこのメロディーを作曲して超絶難解変態的なルールに従ってこの楽譜を作る「フォルマント兄弟」も凄いが、超絶難解変態的な鍵盤演奏技法をマスターしてこの楽譜を正しくキーボードでライヴ演奏する演奏家も凄いものだ。
上は「せんだいドドンパ節 春(1+2)」という楽譜であり、これが含まれている実際の演奏が このMP3サウンド であるらしい。 パッと聞いた感じだと、「まぁ初期の初音ミクぐらいのものだ」とか感じてしまうが、ボカロはライブの場では一切の融通も即興も効かない、打ち込みの「再生」である。 初音ミクのライヴと同じで、協演する演奏者はドンカマに合わせているだけのカラオケである。 かたやこちらの「歌詞付き歌声生成」は、邦楽の自在なテンポに合わせて節回しを変化できる。 記録ビデオを見ると、その演奏している姿がまず、同時に物凄い数の鍵盤を押しているだけで圧巻である。 現在ではこれが「MIDIアコーディオン」版に進化して、さらに凄い艶かしい世界になっている。 ぜひ、 フォルマント兄弟の長くまっすぐな道 の動画を堪能して欲しい。 YouTubeにも置いてあるが、 これ である。
2018年9月11日(火)
セプテンバーイレブンである。 僕は2001年9月11日のニューヨーク・ワールドトレードセンターへの航空機突入のあったこの日は、京都の「ゲンザン事務所」で、その翌週からの欧州ツアーで発表する新作のリハーサルをしていた。 その様子は ここ とか ここ にある。 そして、その後の毎年の「9月11日」はどうだったか・・・というのを、たしか去年、 続・Max7日記 (2) の「2017年9月11日(月)」のところに書いていたので、興味があれば参照されたい。
昨夜はさらにあれこれ薬を飲みつつ無理矢理に寝て、どうやら喉の痛みとかは消えたものの、朝イチで鼻水が出て、まだ「風邪気味」という体調である。 今は朝6時、今日はこれからリンツ駅のそばのバス停から、まずはチェコのプラハまでのバス旅であり、プラハで2時間ほどランチ休憩してさらにバスに乗り継いで、チェコ第2の都市というプルノBrnoに移動する。 「Linz 08:20 → 12:15 Praha / Praha 14:35 → 17:05 Brno FlixBus」という、完全な移動日である。 列車と違って僕はバスでは読み書きは駄目なので、 フォトレポート に写真を上げるぐらいで、Max日記としては何も進展しない予定である。
2018年9月12日(水)
昨日の移動の途中、バスにスーツケースを乗せようという時にスーツケースの「取っ手」が外れて、プラハ駅に着いて最初にするのが文房具屋でプラスチック製のガムテープを購入して補修する・・・という事になったが、これはホテルに着いて中身を全部出したところ、外れていた2個のネジを発見して手で締め付けて、なんとかリカバー出来た。
風邪気味については、リンツの薬局で買った謎の薬を、「朝晩に1カプセルずつ」というのを一気に2カプセル飲んだら腹を壊したので(^_^;)、「1日3回、1カプセルずつ」という大人しいペースにしたところ、次第に順調に回復してきた。 もちろんこれには、お酒を控えめにして、さらにとにかくたくさん寝る、という対応が効いている。
ICEC2018の大会委員長からは、「現在のところ上のようなTutorial/Workshop参加者の登録がある」との連絡があった。 僕のTutorialは現状5人程度で、これは当初の想定人数だが、えてしてこれは当日に大きく増えるので何とも言えない。 会場のPoznan大学の学生とかが来る場合もかなり有り得るのだ。 2009年のパリでの僕のICEC2009レクチャーでも、「1件」の登録に「4人」が来たりしたので、まぁ当日に対応するしかない。 ゼロでなかったのを幸いとしよう。
そしてこの日は、「地球の歩き方」に書かれている5箇所をのんびり巡ってきたところで(詳しくは フォトレポート を参照)、メンデル博物館も、世界遺産の誰か建築家のデザインした建物もパスして、またも早めにホテルに帰ってきた。 あとは明日の移動日に備えて、またまた満タン睡眠の予定である。 Max日記としては昨日に続いて、何も進展していない。 元々、ここブルノは中継地(当初はRFIDの国際会議を聴講したかったのだが、後にスケジュールが変更になり参加できなくなった)ということなので、この程度でいいのだった。
2018年9月13日(木)
今日はブルノからポーランドのクラクフへの「Brno 11:35 → 16:30 Krakow InfoBus」というバス移動日である。 ブルノのバスターミナルは2箇所あり、プラハからのバスが着いたところと、今回の出発地"Zvonarka"は違うので、事前にGoogleマップで調べたところ、なんとGoogleマップからは「Permanently Closed」(永久閉鎖)と赤く出た。 そこでiPadをオンラインで(GPSとリンクさせて)Googleマップに"Zvonarka"を入力すると、なんともう1箇所の方のバスターミナルにリダイレクトされてしまった。 2箇所はスーツケースを押して移動するのにかなりかかるほど離れているので、これは困る。
そこでホテルのフロントにバス会社に電話してもらうと、やはり"Zvonarka"の16番でいいという。 仕方ないのでバス会社にメイルして問い合わせると、バスターミナルは"Zvonarka"のままだが、ちょっと違う場所にピンの立ったマップを添付で送ってきた。 上の左がバス会社から届いたマップで、右がGoogleマップに"Zvonarka"を入力した場所である。 要するにこれまでのバスターミナルが老朽化して永久閉鎖となり、交差点のはす向かいあたりに新しいバスターミナルが出来たというようなことなのだろう。 現地に行けばおそらく「こちらになりました」というような案内が出ている、と期待して、とりあえず問題は解決した。
・・・そしてもうこの日の夜である。 ブルノからクラクフに5時間、乗ったバスは、実はプラハを朝9時に出て、ベラルーシのミンスクに24時間後の翌朝9時に着く、という、チェコ→ポーランド→ベラルーシという国際長距離バスのごく一部区間だった。 車内の時計が1時間進んでいるので、運転手に聞いたら、これはモスクワ時間だという。 長距離なのでロシア人の運転手が3人、乗っていた。(^_^;)
明日は早朝からアウシュピッツへのツアーに行くので、夕食後にホテルに帰ってきて フォトレポート を更新してWebに上げたらもう速攻で就寝である。 Max7日記もしばしお休みが続く。(^_^;)2018年9月14日(金)
5年前、2013年の海外出張では、ウイーンでの国際会議ISPS2013への発表参加と、リンツでのアルスエレクトロニカ2013の視察、という2件を絡めたものの、これらの開催時期がちょっと離れていたので、「ウイーン→リンツ」は特急で2時間弱であるのに、わざわざウイーンから電車で3時間ほどかけてブダペスト(ハンガリー)に行って2泊、ブダペストから電車で7時間かけてプラハ(チェコ)に行って3泊、そしてプラハからリンツへの電車はタイムテーブルでは数時間なのに両国の軌道が違うので途中で電車を降ろされてバスで山越えしての移動、と「乗り鉄」を満喫した。 詳しい様子は ここ とか ここ にある。 下の写真はコンパートメントを貸し切りの様子である。
そして今年も、Wurzburgでの国際会議VS-Gmes2018への参加とアルスエレクトロニカ2018の視察とPoznznでの国際会議ICEC2018への発表参加、という3件を絡めた(一度の欧州フライトで両方に行く)ものの、これらの開催時期がちょっと離れていたので、リンツからPoznanへの移動の途中にBrnoとここKrakowを挟んだのだった。 Brnoは当初予定のRFIDの国際ワークショップが消えたので単なる通過点だったが、ここKrakowはちょっと違う。 「Brno→Poznan」の途中であれば、初めてのポーランドなので絶対にワルシャワだ・・・と思うところを、今回は敢えてワルシャワは飛行機の乗り継ぎだけで街に出ない計画である。 そこまでしてここKrakowに来た理由は、いよいよ今朝、これから出発する「アウシュビッツ博物館」に行くためなのである。
ここ20年ほど、僕は毎年、沖縄に行っているが、学生が同行した時には必ず「ひめゆり祈念館」に連れて行っている。 長崎に行けば原爆資料館、広島に行けば原爆ドーム、ニューヨークに行けばグラウンド・ゼロ、と必ず「人類の愚かさ」を体感する場所に出向くというのが僕のスタンスなのだ。 そして今回、遂にアウシュビッツに行けるチャンスが訪れたので、迷わずワルシャワを捨ててクラクフに来たのである。
今日のツアーの出発は07:40と早いので、昨日は旧市街を歩いて行きその集合場所を確認して、上のようにその真ん前のレストランで夕食をとった。 そして今朝は早起きしたので、ちょっとだけ時間があるので、「Max7日記」である。 ちょうどCycling'74から登録メンバーにいつもの情報が届いたが、今回の最大の話題は On The Road: KnobCon 2018 というニュースだった。 どうやらこれは「NAMMショー」(米国)とか「Frankfurt Musikmesse」と並ぶ楽器のショーらしい。 「Knob」というのは、シンセサイザーに並ぶ「ツマミ類」のことらしい。 写真を見ると、あいかわらずNIMEの世界が広がっていた。
そしてもう一つのトピックとして紹介されていたのが、上の jit.gl.asyncread という「Read back from an OpenGL framebuffer」というものである。 Google君の翻訳によれば、「ピクセルバッファオブジェクト(PBO)を使用して、高フレームレートでOpenGLコンテキストの非同期読み取りを実行します。パフォーマンスの向上は、2つのピクセルバッファオブジェクトを並行して使用することによって、通常の方法が使用される場合のように、他のレンダリングコマンドの実行をブロックすることなく、時間の経過とともに読み出し操作のコストを償却することに起因します」とのことで、実際に試してみたが、あまりこの高速化の「効き」は分からなかった。(^_^;)
Discussionとして、Google君の翻訳によれば、「このオブジェクトには、描画コンテキストの名前の1つの引数が必要です。名前付き描画コンテキストは、関連付けられたjit.gl.renderオブジェクトのインスタンスを持つjit.window、jit.pwindow、またはjit.matrixオブジェクトの名前付きインスタンスです。さらに、jit.gl.nodeサブコンテキストの名前を参照できます。この値は、OB3D drawto属性を介して設定することもできます。引数が存在しない場合、オブジェクトは現在のパッチ内の最初の有効な描画コンテキストまたはサブコンテキストに暗黙的に追加されるか、またはパッチャー階層を検索して暗黙的に追加されます」とのことだった。 jitterはこの後で「Maxお勉強」のターゲットになるので、またそこで試してみることにしよう。
・・・そして今は夕方、世界遺産のクラクフ歴史地区から出かけたエクスカーションで、世界遺産のアウシュビッツとビルケナウに行ってきて、疲れ果てて早めにホテルに帰ってきたところである。 とにかく フォトレポート を見て欲しいが、沖縄も広島も長崎もNYも、人類の愚かさを再確認する重要な場所だったが、アウシュビッツはさらにちょっと違っていたのだった。 いま現在でも、世界のあちこちでジェノサイドが起きているし続いている、その同時代的な意味をガイドのお姉さんは熱く語っていたが、最後まで辛いツアーを巡って、ようやくその意味が理解できたような、重い重い一日となった。 明日は世界遺産のヴィエリチカ岩塩坑のツアーである。
2018年9月15日(土)
クラクフ3日目の朝は、ホテル(個々の部屋が吹き抜けの中庭に面したパルコニーみたいな空中通路で繋がっている)内に響く雨音で目覚めた。 YAHOO WEATHERを見ると以下のように、早朝から朝7時台まで「Shower」ということで、この雨があちこちのパイプに当たっている音だった。 午前5時の起床が身体的にもすっかり自然になって、完全に時差ぼけが消えて、つまりは現地時間にアジャストされてたようで、こうなると最後に「東に東に進む」(逆方向よりも時差ぼけがキツい)という帰国がちょっと心配である。
昨日は朝07:40集合のアウシュビッツのツアーに行ったが、集合場所が旧市街の奥の方の公園だったのでそこまで移動するのに15分以上かかった。 今日のヴィエリチカ岩塩坑のツアーの集合は08:30で、集合場所はクラクフ駅前の5番地のホテル、つまり僕のホテル(7番地)のスグ隣なので、直前に駅に行ってコーヒーとパンを仕入れるにしてもずいぶん余裕があり、おそらくこの雨が上がるだろうと期待できる。 「ヴィエリチカ岩塩坑」についてはまったく白紙のまま、行きのバスの中で「地球の歩き方」でも見てみよう。
そんな中、時間学会ネタでもある、以下のような 生体時計に対応した照明器具 のニュースが飛び込んできた。 出しているのがダイソンなので、「トンデモ系」というわけでもない。 「ダイソンは9月14日、新しい家庭用LED照明「Dyson Lightcycle」(ダイソン ライトサイクル)を発表した。Dyson Lightcycleは、GPS情報と日時を基に『その場所、その時間の自然光』に合わせて色温度と明るさを常時自動調節する『オート』モードを搭載。人体のサーカディアンリズムに影響を及ぼさない明かりを目指した。 『電球が開発されるまで、人は太陽光のサイクルに合わせて活動していた。われわれは人工的な明かりのおかげで日没後も活動できるが、例えば睡眠ホルモン(メラトニン)の生成などに影響している。光の色や明るさは生活のサイクルにおいても重要だ』(DysonのCEO、ジム・ローウェン氏)」とのことで、これを京都工繊大の小山先生がどう評価するのか、見ものである。
・・・そしてこはホテルの部屋、 フォトレポート にあるように、ツアーから帰ってきて、ここまでのこの日記を読み返してバグ(細部のテニヲハ)を修正したところである。 ヴィエリチカ岩塩坑とは、Wikipediaでは「ポーランド共和国マウォポルスカ県にある岩塩の採掘坑。クラクフ首都圏内の都市ヴィエリチカで13世紀以来稼働していたが、コストの問題と坑内で洪水が起きる危険性があることから1996年に商業採掘は中止され、現在は観光地となっている。1044年の創業(ポーランド王国のクラクフへの遷都は1038年)。国営企業となったのは1250年。廃坑になっていない岩塩坑としては世界最古で、同時に世界最古の製塩企業でもある。深さは地下327m 、全長は300km以上に及ぶ。特筆すべきは、観光客向けの3.5km の坑道で、歴史上や神話上の様々なモチーフを象った彫像が並んでいる。その全ては、坑夫たちが信仰のために岩塩を彫り上げたものである。さらには屈曲した部屋や礼拝堂が岩塩で形成され、岩塩採掘史の展示までがなされている。さながらそこは岩塩製の地下大聖堂のごとき景観を呈している。この岩塩坑には年間110万人もの観光客が訪れる」とある、そこに行ってきたのだ。
これまでけっこう、鍾乳洞とかは行ってきたが、「岩塩坑」というのはまったく違う。 昨日のアウシュビッツとは全く別のものだが、これまた世界遺産であるのはまったくもってその通り、と圧倒された。 これはもう、行くべし。 行かないと絶対に分からない。 なので詳しくは書かないし、 フォトレポート にピンボケだの詳細不明の写真があるのも言い訳しない。 今回はワルシャワを単なる経由地として無視しつつ、クラクフに来て、本当に、本当に、本当に、良かった。(^_^)
2018年9月16日(日)
今日はクラクフからのフライトでワルシャワを経由してボズナンに向かう、という最後の移動日(空路)である。 昨日のKrakowは午前中が雨だったものの、実際には地下の「岩塩坑」にいたので大したことはなかったが、もしこれがアウシュビッツとビルケナウのあの広大な敷地を、傘を差しながら泥だらけになって歩いたとしたら大変だったと思うと、これもラッキーだったと感謝した。 今日のKrakowは晴天、そして以下のようにPoznznも晴れのようなので、傘はスーツケースに入れておけそうだ。
あまり早くに空港に行っても、日本と違って海外ではバゲッジを受け取ってくれない(一定時間だけ受け取る)こともあるので、出発前に久しぶりに「MaxSummerSchool2018の復習」の続きをチェックしてみることにした。 これまでにこの日記の上の方で、「vud.org」・「6日中級・三輪」・「7日中級・三輪」・「8日中級・三輪」・「8日上級・三輪」という5つのディレクトリの中身について調べてきた(特にナシの場合には消した)が、まだ残りとして「再チェックすべし」の中に残しているディレクトリが7つあり、そのうち仲井さんのjitterねたが1つ、後藤さんのディレクトリが4つあって、あと2つは晩のプレゼンテーションの時に提供されものとして、「7日晩・大谷」と「8日晩・田所」という2つのディレクトリがあった。
そのうち、「7日晩・大谷」というものは、上のように「OWL」という一群の体系が膨大にあって、どうもGenを使ってお手軽に使える色々なツールが提供されていて活用できるらしい。 これはちょっとやそっとではない、と瞬時に判断できたので後回しにして、今日は「8日晩・田所」というディレクトリを調べてみることにした。
こちらも「Tidal」という、楽器(新インターフェース)に対応させた「ゴージャスな音源」という感じのものだったが、以下のように苦労して縮小しながら全部を並べてみると、要するに、「楽器とのインターフェースはOSCで行う」、「『mySaw.maxpat』と『mySin.maxpat』と『mySweep.maxpat』という3種類の音源ブロックを用意して、これらをpoly~で多数複製生成する」、「OSCで受けたメッセージをパラメータとして"o.route /playMax"というオブジェクトでこれら多数の音源に分配する」というような事が判明した。 ただし、肝心の「o.route」が無いのでエラーとなって実際にはこのままでは走らない。 ただし、要はOSCから届くメッセージの冒頭に「/playMax」というキーワードがあるものを抽出しているだけなのでこれは簡単だ。
というようなことで、「7日晩・大谷」の中身はそれほど僕の知らない新しいテクニックを使っているわけではなかった。 実際には「Tidal」もないのでこれ以上は深入りするところもなく、今日のお勉強としては、この「7日晩・大谷」というディレクトリを「参照済み」に分類できたというのが収穫となった。 これで小さな一区切りなので、これをWebに上げたらチェックアウトして出発しよう。
上の写真の「BAGGAGE REPORT」というのは、普通の旅行者は手にすることはなく、僕も初めてのものだったが、実はこれは「ロストバゲッジ」の書類が入っている。 これまでそこそこ多くの海外遠征に出かけていたが、遂に僕にソレがやってきたのだ。 たまたま僕と一緒にリンツとウイーンに行ったちひろちゃんが成田で食らった(ちゃんと解決)ものの、僕は無縁だった。
当初から購入していたのが「Krakow 12:05 → 13:00 Warsaw / Warsaw 13:30 → 14:25 Poznan」というチケットであるが、ポーランドの航空会社LOTがこんな綱渡りを出来るのかどうか(^_^;)。 KrakowからWarsawに着いて、そこからたった30分でPoznan行きが出発する、そのために乗客の僕もせっせと急いで乗り継いだのに、果たして荷物は全てが確実に振り分けられて積み込まれたのか。・・・そしてPoznan空港に着いて、バケッジのターンテーブルが止まるまで1時間ほど待って、自分のスーツケースが届かなかった、という事実に初めて直面した。 スーツケースの中には、明日の午前から午後までのTutorialでデモをしたり参加者に配布して実際に体験してもらうあれこれ機材などが満載されているのである。 ここはルーチンとしてクレイムタグを持って「lost baggage」に行き、正式なロストバゲッジ受付書類を書いてもらった。
そして空港にいても仕方のないので、とりあえず市内中心部のホステルに向かった。 そのバスの車内で、モバイルWiFiルータを稼働させてiPadからSUACのメイルシステムにログインして出したのが、以下の、ICEC2018のWorkshopコーディネータのPauliina Tuomiに出したメイルである。 その後、スタッフなどが心配したメイルが来たりして、夜中までに数本の関係者メイルが行き来した。
Dear Pauliina, I am now just arrived at Poznan. However, my baggege is lost. The airline will bring it by next flight, but if my baggage will not come, ALL equipments is lost for tomorrow's Tutorial. I only have my computer. I will go to the Tutoriai room this evening. Yoichi Nagashimaそしてホステルに辿り着き、レセプションの兄ちゃんに事情を話して電話してもらい、「21時から(レセプションの閉まる)22時までの間に再度電話をするので来て」と確認して、そこからポズナン工科大学に行ってレジストレーションを済ませて、さらに明日のTutorialの部屋の機材を確認した。 立派なPAを用意してくれたが、MacBookAirのThunderbirdからVGAに出すコネクタもBaggageの中である(^_^;)。
そして、ここで慌てても仕方ないので、初めてとなる「ポーランドの伝統料理」という昼食兼夕食をいただいてホステルに戻って、 フォトレポート を上げてフロントに行くと、なんと「Baggageはあった」(*^o^*)とのこと。 そしてフロントは閉まってしまうので、僕が「23時から24時の間」にホテルの前で受け取ることになった。 しかし、21:40〜24:10まで、ホテルの前(隣のバー)待つものの誰も何も来なかった。 不安なまま、とりあえずこの日が終了した。2018年9月17日(月)
今回の出張の最大の目玉であるTutorialの当日の朝になってもホテルの部屋にはスーツケースが無い(^_^;)。 しかし、朝になってフロントで空港に電話してもらってから事態は急進展した。 詳しくは フォトレポート にあるのでここでは省略するが、航空会社のlost baggageのホテルへの配送は午後2時だということで、これを待たず自分でタクシーで空港に取りに行くことにして、ようやくバゲッジと再会した。
そして急いでタクシーでホテルへ戻ったら8時で、そこから30分で慌ただしく髭を剃ってシャワーを浴びて歯磨きして、機材を持って会場に急いで歩いて行ったら汗だくになったが、なんとか無事にTutorialを行うことが出来た。 参加者は少なかったものの、 欧州ツアー2009 の時にパリで行ったTutorialは半日(3時間)だったのに比べて1日(7時間)とたっぷりあったので、参加者とのディスカッションも含めて充実した時間を過ごせた。 これであと残った大仕事は最終日の発表だけであるが、今日からのICEC2018の聴講の合間にプレゼンを作らないといけない。 既にこのPart7のHTMLは220KBを超えているので、ここを区切りとして、 続・Max7日記(8) に続けていくことにしよう。
「日記」シリーズ の記録