題 名:Java Diary-90章

五 郎の 入り口に戻る

日付:2008/1/30

目次に戻る


Goromi-Music Part1

米国出張から戻ってくると、私はいきなりあるプログラムを作り出す。何故、何を作り始めたかについて説明するためには、2006年のWISSまで話を戻さ ねばならない。

WISS の最終日、やれ発表も終わったし後はのんびり聞くだけだ、と思って座っている。すると前に誰かが座る。産業技術総合研究所の後藤氏である。この人は音声お よび音楽関係の「本物の研究者」である。その専門知識の深さ、研究を進める情熱など何をとっても私が裸足で逃げたくなるような人だ。

さて、後藤氏はまず今回の私の発表(Goromi-TV)について鋭い指摘をした。私は確かにそうです、と答える。次に後藤氏はこう言った。

「大坪さん。音楽検索やらないんですか」

私は反射的に答える。いや、何をおっしゃいますやら。後藤さんが、Music Streamなんてすごいのを発表されているのに、私が何をするというのです。すると後藤氏はこう言う。

「いや、やはり違う着眼点からの検索というものあるでしょう」

いやいや、何をおっしゃいますから。私ごときになにが出来ましょう。といってその場はおしまいにする。

さ て、会社に戻ると例のごとく例の日々が始まる。グループの会議でWISSの振り返りをやっているとき「来年はどうしましょうかねえ」と言う。ネタがないの だ。これまでWISSが終わった時点ではもう次の年のネタがある程度形になっていた。しかし今年はすっからかんだ。一から考えなくてはならない。

まあ3年も行ったし、もうお休みしようかしら、と考える。来年行けるかどうか知らないけど観客席からおとなしく閲覧して、ビールでも飲むというのはどうだ ろう。しかしそのうちあれこれ考えている事自分に気がつく。

最 初に考えたのは、プレゼンテーションソフトである。理由は知らないが私はプレゼンをやるさいに使う「スライド」という言葉が大嫌いだ。なんだスライドっ て。そもそもそんな単位でものを考えるからいけないのではなかろうか。PowerPointのおかげでスペースシャトルがふっとんだと言う人だっているく らいだし、というわけで頭の中であれこれ構想は出来上がる。ではさっそく作るかと言えば、そこまでのガッツは無い。

もう一つのネタは、これまた過去1年頭の中にネタとして眠っている項目である。人のマイナーな趣味に合致した情報を提示するにはどうすればよいか、という 問題だ。少しさけ準備もしていたのだが、こちらも「ごりごり」とプログラムを書き始めるほどのガッツは無い。

てな調子でどんどん日はすぎていく。そんなある日何かの拍子にふと思いついた。

仮に音楽のメタデータ(ジャンル名、アーティスト名、アルバム名、曲名)をもとにGoromi-TVのような検索をやろうとすると単語数が少なすぎるので 「検索該当なし」ばかりになると思われる。ではどうするか。ここからが妄想になるのだが

「楽曲をDNAのように見立て、それをつないでいくとアミノ酸ができる機構を模してプレイリストを自動生成させられないか」

と思いつく。

こうやって文字にしてみると自分でも「馬鹿じゃないか」と思うような内容だが、どんな間抜けなアイディアでも自分の頭の中に浮かんだときは光り輝いている ものだ。それを思いついた私は実にご機嫌になる。なんだかわからんが今年のWISSネタはこれにしよう。それまで何度か

「今年は自分が査読をする側に回ったから、WISSに論文出すのはお休み」

と公言していた。そんなことはさっぱり忘れ、とにかく出してしまう気になる。

何 故査読する側にまわったかと言えば、3月くらいにWISSの委員長(正式な名称忘れた)からメールがあり「プログラム委員をやってくれませんか」と頼まれ たからだ。日本的な作法に従えば「いえいえ、私などが人様の書いた論文を査読するなど滅相も無い。私よりも10倍も適任な方がたくさんいらっしゃるでしょ う。とてもとても」と300行くらい書いてご辞退するのが筋、というものだが、私はそうした日本的なやりとりを嫌悪している。何事も経験だし、他人の論文 を査読するというのは新しい分野の勉強にもなる。仮に「だめよん」と書くにしても第3者が読んで納得する、というか納得しなくても少なくとも何故だめか 理解できるだけの内容を書く必要があると思うのだ。というわけであっさり「やらせていただきます」と返答を書いた。

というわけで論文を通さなくても大手を振ってWISSに行けることになったわけだ。しかし頭の中に着想(この時点では妄想以外の何者でもないが)がわくととたんに論文を書く意欲がでてくる。

とはいっても海外出張2連ちゃんが終わるまでは新しいプログラムの作成にとりかかるわけにはいかない。そんな暇があればデモで使うプログラムの完成度を上 げなくてはならないのだ。とはいえ頭の中にこうした構想があると、よいこともある。Euro iTVで

「このインタフェースで他のデータがブラウズできないか」

と 聞かれたとき間髪を入れずI'm working on it.などと答えられたのはこの構想が頭にあったからだ。頭の中に妄想があるだけで一行もコードを書いていないのにworking on itもないものだろう、などと自分に突っ込むことはしない。しばらくは平和な妄想の中に生きていたいではないか。

というわけで CC2007の出張が終わる。つまり、妄想ではなく、現実と向き合わなくてはならない日がやってくる。しばらくうだうだしているが、あれこれを片付 けるとやおらコードを書き始める。しかしまずそこで問題につきあたる。音楽をブラウズするとはいっても一から自分で作るのはいやだ。楽曲の管理やら再生と かはすべてiTunesで行いたい。しかしそうすると問題が一つある。iTunesはxmlというファイル形式で楽曲の情報を記録している。これは誰が読 んでも「なんとなくわかる」フォーマットだからそれをちゃんと解析すれば私が作ったプログラムからiTunesに登録してある楽曲データを使えるというわ けだ。

問題は(これはSmartCalendar-Xを作ったときにも直面したことだが)このデータを読むのはMacのプログラムからはとても簡 単なのだが、Javaからやると何かと面倒なことだ。というわけでしばしXMLの読み込み機能と格闘する。そもそも同じ問題にぶつかった人がいるはずだか ら、インターネットのどこかにコードがないかしらん、と思いながらあれこれ検索する。近いものはでてくるのだが、そのものずばりはでてこない。

えーっ としょうがないから、そもそもXMLの読み方ってどうやるのかというところに立ち戻る(最初からそうしろよ、という気もするが)。最近は立派なライブラリもあるみたいだからそれを使えばよいのか、とかあれこれやっている うちふと我に返る。日はようしゃなくすぎていく。なのに私はまだ肝心なコードは一行も書いていない。最初の一歩でつまづいているだけだ。

これはい けない、ということで「とりあえず」次善の策をとる。とにかく動かして論文を書かないことにはなんともならない。動き方をなんとかするのはその後にしよ う。というわけでMac上のCocoaでXMLを読み込み、私にとって読みやすい形式でデータを書き出すプログラムを作る。この方式だとiTunesに曲 を追加するたびにデータを作り直さなくてはならないが、まあとりあえずの試験用だからこれでいいだろう。

というわえけでとりあえずデータを読み込む事はできるようになった。しかし例によって例のごとく本質的な問題は全く解決していない。手つかずの形で目の前 に存在しているのであった。

前の章 | 次の章


注釈