2016年9月6日火曜日

Web Music Hackathon #5 @Tokyo に参加してきました

Web Music Hackathon #5 @Tokyo に参加してきました


少し前の話になりますが、2016/7/30 に Google の東京オフィスで開催された、Web Music ハッカソン #5 に参加してきました。Web のオーディオ関連技術(Web Audio API/Web MIDI API)を使って、面白いものを作ってみようというイベントで、今回で 5 回目になります。私は、このイベントの存在は知っていたのですが、参加するのははじめてでした。

今回のハッカソンでは、「DJ が活用できるツール」というテーマが設けられており、各チーム/個人がそのテーマのもと、一日中ハックを行いました。このイベントの前に、アイデアソン/チームビルディングイベントがあり、すでにチームを構成している参加者は、すぐにチーム開発を開始していました。私はチームビルディングイベントには参加せず、ハッカソンのみの参加でした。

ハッカソンで何を作ったか

このハッカソンイベントで、私は、Trend Sampler(トレンドサンプラー)という、ループサンプラーのようなものを作りました。Trend Sampler は、Google トレンドのキーワードを音声化し、それをステップシーケンサーでループ再生できるというものです。サンプラーといえば、一般的には、録音した(サンプリングした)サウンドを再生するツールですが、Trend Sampler は「インターネット上の話題をサンプリングする」というコンセプトで作ったサンプラーです。

インターネットの面白さは、毎日流れてくる情報が変化していること、また、ある時はその発信者にもなれるところです。Trend Sampler は、楽器の一種でありながら、毎日使える音源が変わり、そしてそれを自分ではコントロールできないところに、インターネットらしさを演出しています。演奏当日に何が出てくるかわからない臨場感を、DJ 側、観客側も味わえるのではないか、と期待しています。

ソースコードは GitHub で公開中ライブデモはこちらです。Mac の Node.js 上で動く Web サーバを起動すると、Google トレンドから最新のトレンドワードを取得し、say コマンドを使ってサウンド化します。Web ブラウザからサーバへアクセスすると、生成された音声データをダウンロードし、ステップシーケンサで設定したタイミングに合わせてサウンドを再生します。

いちおう、このイベントの趣旨でもあるシリアスな DJ プレイに使えるようにと、次のような工夫をしています。
  • Web MIDI API 経由で受信したリアルタイムメッセージ(スタート、ストップ、タイミングクロック)をもとに、再生を外部シーケンサと同期する。
  • クロック同期できない(できるけどめんどくさい)状況に備えてタップテンポで BPM 推定
  • 再生速度設定、再生開始サンプル位置設定で、音声の音素がビートにのるように調整可能(手動)
  • テンポディレイ(お約束)

結果

審査員のみなさまの審査により、発表した15チーム中、3位をいただきました。たぶん、Web Music Developers JP の河合さんがアメリカで買ってきてくれた、Google ロゴの入ったボトルをいただきました、ありがとうございます。プレゼンは機材トラブルであまり上手くいかずちと無念。やはり、音や映像を使ったプレゼンは、リハーサルが重要ですね。

他のチームの様子は、河合さんのレポートが詳しいです。上位入賞が個人ばかりになってしまったのは、今回のような短時間のハッカソンイベントだと仕方ないのかな、と思います。それでもチームで挑み、見事ハックを完成させた参加者のみなさんは、本当に凄いと思います。お疲れ様でした。

雑感

このようなイベントを通じて、Web Audio API / Web MIDI API の認知度があがり、たくさんのハッカーがアイデアを具現化するようになることで、より面白い世界になっていくことでしょう。W3C 標準化を目指している Web Audio API / Web MIDI API は、そんな世界で、音・音楽との重要な足がかりとして役目を果たすことになるだろうと考えています。