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 は、そんな世界で、音・音楽との重要な足がかりとして役目を果たすことになるだろうと考えています。




2016年8月21日日曜日

Maker Faire Tokyo 2016 出展しました

Maker Faire Tokyo 2016 へ出展しました


昨年に引き続き、奇楽堂さんとご一緒に、Maker Faire Tokyo 2016 へ出展してきました。奇楽堂&Company ブースでは、
  • 昨年に引き続き「Magic Flute」
  • 六角形のタッチインターフェイスを使った新作「ハニカムベル」
  • ハニカムベル専用の音色を搭載した FM 音源モジュール「Raspberry Op.4」
  • タッチセンサを使った MIDI 出力モジュール「Touch MIDI」
  • パンチカードを光学センサで読み取って曲を奏でる「手回し MIDI シーケンサ」
を展示しました。昨年は、Magic Flute と Magic Flute 用物理モデリング音源モジュールのみでしたので、ずいぶんと作品の数が増えました。奇楽堂さんは、今回、「Touch MIDI」のイベント頒布にも挑戦されていました。


反応は?

手回しMIDIシーケンサ
「手回し MIDI シーケンサ」は見た目のわかりやすさもあって、多くの方が立ち止まって見てくださいました。光る、音が出る、は、目を引くための常套手段ではありますが、そこに大げさな手(体)の動きが加わると、さらに面白がって見てもらえるようです。ただ、二日間のデモの間ずっとハンドルを回し続けていたため、イベントの終わった翌日はひどい筋肉痛となりました。もう少し展示品の配線の取り回しを改良して、自由に触ってもらう形の展示にすればよかったかな、と後悔しています。

手回し MIDI シーケンサは、そもそも、学研の『大人の科学』の付録「手回し鳥オルガン」を改造したものなのですが、この号が刊行された当時の同誌編集長が、偶然ブースに来られ、ご挨拶できたことも良い思い出となりました。来場者の方からは、「私も作ってみたい」という声が聞かれましたが、残念ながらこの号はもう絶版で筐体を手に入れることができず、同じものを再製作することはできません。この時期の大人の科学はどれも傑作なので、何かの形で再販されるといいですね。


Raspberry Op.4



もう一つ製作を担当したハニカムベル用音源モジュール「Raspberry Op.4」は、拙作の iOS アプリ「DXi FM synthesizer」の音源部分をそのまま移植して利用しています。ハニカムベル専用音色ということで、FM の抜けの良い綺麗なベル音色を基本とし、複数の音が重なっても倍音がぶつからないようにチューニングを施しました。4 オペレータ12ポリの音源で、内部 32bit 演算、2 倍オーバサンプリング (88.2kHz) でエイリアシングを抑制しています。手持ちの Raspberry Pi 2 ではこれくらいが限界というところでした。また、まだ音色エディタがないため、iOS アプリ上で音色を作った後、データを JSON 形式で出力して Raspberry Pi へ送っています。今は音色を選択するためのボタンがあるだけですが、いつか専用パネルを作って、本体だけでエディットできるようにしたいな、と思っています。

その他の写真

ご一緒した奇楽堂さんが TouchMIDI イベント頒布を行いました。
スイッチサイエンスでも販売中とのことです。
ハニカムベル


ハニカムベルと Raspberry Op.4

リンク



2015年11月15日日曜日

DxO Optics Pro 10 Image Development Test

DxO Optics Pro 10 Image Development Test

DxO Optics Pro 10 Image Development Test with using PRIME noise reduction function.  Here is a comparison between Canon Digital Photo Professional and DxO Optics Pro 10. 

Canon EOS M + Sigma 10-20mm f/4-5.6

Canon Digital Photo Professional 4

DxO Optics Pro 10(PRIME)

Canon Digital Photo Professional 4

DxO Optics Pro 10(PRIME)

2015年8月9日日曜日

Maker Faire Tokyo 2015 無事終了

Maker Faire Tokyo 2015 無事終了



8/1-2 に行われた Maker Faire Tokyo 2015 の奇楽堂ブースにて、Magic Flute と組み合わせて拙作の物理モデル音源『Raspberry Phys(ラズベリーフィズ)』を展示してきました。DTM ステーションでもその模様がレポートされています。

Maker の祭典といえば、以前に、Make: Tokyo Meeting などにお邪魔したことはありました。薄暗い体育館の中で、謎の機械たちが蠢く催しでした。今回も、そのような様子を想像していたのですが、それは裏切られました。会場はとても綺麗で明るく、家族連れやカップルも楽しめるイベントになっていたと思います。

奇楽堂さんの Magic Flute は、たくさんの方にご覧いただけました。演奏中に LED がピカピカ光るキャッチーさに多くの方が足を止めてくださり、電子楽器なのに息の吹き込みを使って操作していることなどに驚かれていきました。もちろんご存知の方からは、EWI や WX といった単語が聞かれました。

前述のようなカジュアルな雰囲気の中で、「物理モデル音源」というニッチの中のニッチをいく作品がどのくらい受け入れられたかはわかりませんが、多くの方に、ソフトシンセを安価で高性能な CPU ボードに組み込んで自作 MIDI 音源を製作する、というアイデアと、オープンソースの便利なライブラリ STK "The Synthesis ToolKit" の存在を伝えられる機会となり、大変楽しい時間を過ごせました。惜しむらくは、Magic Flute の吹奏圧とブレスコントロールの間の係数の調整が甘かったことです。自宅でテストしているときは概ね吹奏圧は弱めだったのですが、お客様に説明する際などは緊張するために吹奏圧は強くなりがちです。そのため、音切れしてしまうことが多くありました。管のモデルでは、適正なエネルギーの入力が連続して維持されることで、音波が持続しますので、過大入力や過小入力では音が出ません。また、緊張による汗で、Magic Flute の静電容量センサの反応が鈍くなることもありました。こちらは、Magic Flute 側の改良に期待したいところです。

最後に、新旧問わず、たくさんの友人がブースに寄ってくださいました。暑い中、ありがとうございました。そして出展された皆様、お疲れさまでした。

2015年7月27日月曜日

Raspberry Phys を MFT2015 で展示します

Maker Faire Tokyo 2015(8/1〜2@東京ビッグサイト) で、物理モデル音源モジュール『Raspberry Phys』を展示します

8/1 から開催される、Maker Faire Tokyo 2015 にて、奇楽堂のサポートメンバーとして、Raspberry Pi 2 をベースに製作した物理モデル音源モジュール『Raspberry Phys(ラズベリーフィズ)』を出展します。

奇楽堂さんは、電子楽器を製作する個人プロジェクトです。今回、奇楽堂さんが開発した、電子吹奏楽器『Magic Flute』向けに、音源モジュール Raspberry Phys を開発しました。Magic Flute は、親指と小指を除いた 6 本の指を使い、3 オクターブの音域を演奏できる電子吹奏楽器です。Raspberry Phys は、オープンソースの音響処理ライブラリ STK (The Synthesis ToolKit) をベースに、Magic Flute 向けの音色を組み込んだ音源モジュールです。音源システムとして、物理モデル音源を用いました。物理モデル音源は、楽器の発音構造をモデル化し、コンピュータシミュレーションで発音する音源システムで、90 年代にはヤマハやコルグから、同音源システムを採用したシンセサイザが販売されていました。

物理モデル音源を Magic Flute を組み合わせると、吹奏圧を発音パラメータとして利用できるため、豊かな音色変化が得られます。ぜひ、Maker Faire Tokyo 2015 の奇楽堂ブース(C-02-04) にお越しいただき、その音色をお聴きください。

なお、Raspberry Phys は、販売も、頒布も、予定しておりません。前述の STK を用いると、どなたでも簡単に、物理モデル音源を試せますので、ぜひチャレンジしてください。Raspberry Pi で STK を動作させる方法を、以前 Qiita に書きましたので、あわせてご参考ください。

ところで、その筋の方(?) 向けにあらかじめ断っておきますが、Raspberry Phys は、「生楽器のようにリアル」な発音はできませんし、90 年代当時にヤマハが開発した物理モデル音源システムとは比べ物にならないほど安っぽい出音です。とはいえ、5,000円の CPU ボードとフリーソフトウェアでここまで遊べる時代、すばらしいですね。




製作中の様子:16x2 のキャラクタ LCD とスイッチx2 への配線をしています



2015年4月28日火曜日

Web MIDI Browser 1.0.5: 最新の Web MIDI API をサポート

Web MIDI Browser 1.0.5: 最新の Web MIDI API をサポート

Web MIDI Browser の 1.0.5 で、Web MIDI API の最新ドラフト (17 March 2015) (日本語版)で規定された API を提供するようになりました。この版のハイライトは、なんと言ってもホットプラグ対応です。ブラウザ内で Web アプリが動作している状態で、iOS デバイスへMIDI 機器が接続された場合に、Web アプリは通知を受けられるようになります。この機能により、Web アプリの操作性を、ネイティブアプリに近づけられるはずです。中で使っている WebMIDIAPIShimForiOS も更新しました。

実は、まだ仕様に完全対応とは言えず、現在の Wrapper の設計と相容れない部分があって、未実装になっている仕様があります。onstatechange や、state,  connection など、主要なインターフェイスは Chorme 43 Beta にそっくりにしてあります。してあるはずです。なっていなかったらごめんなさい。(間違っているところを見つけたらこっそり教えてください)



2015年4月20日月曜日

Web MIDI Browser 1.0.4: Apple Watch support

Web MIDI Browser 1.0.4: Apple Watch support

Web MIDI Browser 1.0.4 has been released. This version includes some bug fixes and Watch App extension. I don't know whether or not it's suitable as a Watch App. But we, Apple fans, must join the festival... right?

It's easy to use. You can enable "Enable Apple Watch Remote" option in the setting pane of the app. Then, a virtual MIDI port will appear. By pressing the button on Apple Watch, control change messages can be obtained from the virtual port. And then, cook them as you like. The function is available on iPhone 5/5s/5c/6/6Plus.


Watch Kit is a simple framework and has many restrictions. The button control, WKInterfaceButton, can observe Touch Up event only. So, I could NOT implement a control like a musical keyboard, sending noteon by touching-down, sending noteoff by touching-up. I really hope that it will get more controllable APIs in iOS 9... please, Apple guys.

And I fixed some bugs in this version. The next version, 1.0.5, will support the latest Web MIDI API, Chrome 43 spec, which includes the hot-plugging functionality. The polyfill library, WebMIDIAPIShimForiOS, is available on GitHub. It will be updated. Enjoy!

Web MIDI Browser 1.0.4 をリリースしました。このバージョンでは、バグ修正のほか、Apple Watch への対応を行いました。Apple Watch のアプリとして実用的かどうかはわかりませんが、お祭りなので。

使い方は簡単です。設定画面から"Enable Apple Watch Remote" を有効にすると、ブラウザ内で動作する Web アプリから仮想の MIDI Input Port が見えるようになります。そして、Apple Watch 上に現れるボタンを押すと、コントロールチェンジ ("0xb0 0x51 0x7f" 〜 "0xb0 0x54 0x7f") を送信します。あとは皆さんのアイデア次第。いろいろ遊んでみてください。この機能は、iPhone 5/5s/5c/6/6Plus で使えます。

iOS 8 の Watch Kit でできることは限られていて、このアプリでも使っている標準コントロールのボタン (Watch Extension 的には WKInterfaceButton) は、Touch Up (押したあと、離した時にイベント発生)しか検知できません。そのため、音楽アプリで使う鍵盤のように、押して Note On、離して Note Off を送信することはできないようでした。もう少し細かい制御ができれば、アプリの作り甲斐があるのですが。6 月に発表される iOS 9 に期待しています。

そのほか、いくつかのバグもあわせて修正しています。

今後ですが、次のバージョン (1.0.5) で、最新の Web MIDI API への対応を予定しています。今実装してあるのは少し古い Chrome 39 spec で、次のバージョンで Hotplug にも対応した Chrome 43 spec に合わせる予定です。中で使っている Web MIDI API の Polyfill は、WebMIDIAPIShimForiOS として GitHub で公開しています。こちらもあわせて更新されます。