先端芸術音楽創作学会 会報 Vol.9 No.2 pp.7–9

研究報告
会場内の複数の ANDROID デバイスを音の発生源として用いる際の同期再生の方法
METHODS FOR SYNCHRONIZED PLAYBACK ON MULTIPLE
ANDROID DEVICES USED AS SOURCES OF SOUND IN A HALL
喜多 敏博
KITA Toshihiro
熊本大学
Kumamoto University
概要
本研究で取り上げるのは、Android OS が搭載された数十台のスマートフォンやタブレットなどのデバイスを、コンサートホール等の観客席のさまざまな位置に配置し、各デバイスの内蔵スピーカーから、任意の指定されたタイミングでオーディオファイルを再生する方法である。タイミングの指定の精度は、数十ミリ秒単位にとどまるので、マルチチャンネルスピーカーでの再生等とは違い、音像定位を制御することは対象としない。
一つの方法としては、各デバイスで Csound for Android
を動作させ、無線 LAN 接続を経由して、中央の再生制
御用 PC から OSC 等のデータをリアルタイムで各デバイスに送信して再生タイミング制御を行うことが考えられる。別の方法として、各デバイスの内部時計を再生タイミングの基準として用いることもあり得る。この方法では、各デバイスの内部時計をずれなく合わせておく必要があるが、NTP による時刻合わせを実行するのには root 権限が必要である。デバイスの root 化を避ける場合、オーディオファイル再生用アプリを開発し、そのアプリに独自の時刻補正情報を保持すれば、指定された時刻にオーディオファイルを再生することができる。アプリの開発には、ビジュアルオブジェクトを操作することで手軽にプログラミングが可能な開発環境である MIT App Inventor を採用した。

1. はじめにコンサート会場での聴衆のスマートフォンは「厄介なもの」扱いなのが一般的な認識であると思われるが、スマートフォンを「オーディオ出力機能付きのネットワーク接続可能な手のひらサイズコンピュータ」と捉えれば、コンサート会場やインスタレーションでの電– 7–

子音響作品を実現する手軽な利用価値の高いデバイスと考えることができる。
特に Android OS 搭載のデバイスは、比較的安価に入手でき、無償で使えるアプリ開発環境も多くある上に、独自開発したアプリも容易にインストール可能である。
筆者は、専用アプリ不要の聴衆参加型作品とそのためのシステムをこれまで発表している [1, 2] が、今回は、事前に準備した Android デバイスを主に用いることを前提とし、コンサートホール内で客席等のさまざまな位置にデバイスを配置し、各デバイスの内蔵スピーカーから、任意の指定されたタイミングでオーディオファイルを再生する方法について検討した。
なお、タイミング指定の精度は、数十ミリ秒単位にとどまるので、マルチチャンネルスピーカーでの再生等とは違い、音像定位を制御することは対象としない。

2. リアルタイムでの再生制御を行う方法
複数の Android デバイスを音の発生源として用い、各デバイスから任意の指定されたタイミングで音を再生する一つの方法として、すべてのデバイスを無線 LAN等に接続し、Open Sound Control 等でのリアルタイム制御を行うことが考えられる。
例えば、Csound for Android[3] のバージョン 6.09.0
beta2 (現時点での最新版) は、OSC に対応しており、各デバイスに Csound for Android をインストールし、OSClisten オプコードを用いて OSC データを受信しそれをきっかけとして音を発するような Csound プログ
ラムを動かしておくと、再生制御用 PC から無線 LAN接続経由で OSC データを各デバイスにリアルタイムで送信することで、再生タイミング制御を行うことが可能である。

先端芸術音楽創作学会 会報 Vol.9 No.2 pp.7–9

図 1. 時刻オフセットの計測を行うプログラム
なお、Csound for Android 6.09.0 beta2 は、Android5 以降でのみ動作する。

取り、音声合成などの高度な機能も、簡単なプログラミングで利用できるようになっている。開発したプログラムは、通常の Android アプリの形式 (APK) で保存でき、Google Play で公開可能である。

3. 内部時計を基準にする方法
3.2. 各デバイスの時刻合わせ

リアルタイムでの制御データの送受信を伴わない方法として、各デバイスの内部時計を再生タイミングの基準として用いる方法も考えられる。
厳密に (ミリ秒〜数十ミリ秒単位の精度で) 指定された時刻に、各デバイスからのオーディオファイルの再生を開始することで、全デバイスの再生タイミングを同期させることができる。
この方法では、当然、各デバイスの内部時計をお互いにずれ無く合わせておく必要ががあるが、一旦、内部時計を合わせれば、再生を行う段階ではネットワーク接続が無くても同期再生が可能である。
この方法の実現性を検証するために、厳密に指定された任意の時刻にオーディオファイルを再生できる専用アプリを試作した。

3.1. MIT App Inventor による開発
アプリの開発には、ビジュアルオブジェクトを操作することで手軽にプログラミングが可能な開発環境である MIT App Inventor[4] を採用した。ウェブブラウ
ザで MIT App Inventor のサイトにアクセスし、”Createapps!” のボタンを押して Google アカウントでログインするだけですぐにアプリ開発を始めることができ、Android デバイス実機を接続して随時、動作確認をしながら開発をすすめることができる。プログラミング教
育での活用が意識された開発環境ではあるが、Androidデバイスが持つ様々なセンサーやカメラやオーディオ入出力の機能をはじめ、ウェブサーバとの情報のやり– 8–

NTP[5] による時刻合わせを行うためのアプリは多く存在するが、その実行には root 権限が必要である。root権限を得るためには、デバイスの root 化が必要だが、通例は禁止されており、自己責任で行うとしても困難や諸問題が伴う。root 化を避け、通常の状態で Androidデバイスを利用する場合には、オーディオファイル再生用専用アプリが、独自の時刻補正情報を得て保持すれば、厳密に指定された時刻にオーディオファイルを再生することが可能となる。
時刻補正情報は、NTP サーバ等の時刻サーバから正確な時刻の情報を得て、その時刻に対しデバイスの内部時計がどれだけずれているか（時刻オフセット）を計算することによって得られる。時刻補正情報の算出方法を MIT App Inventor ブロックで表したものを図 1に示す。Android デバイスから時刻サーバへ現在時刻情報を要求するための通信の時間と、その要求に応じて時刻サーバから Android デバイスへ現在時刻情報を返すための通信の時間とが、同じ長さであるとみなした上で、通信のための遅延時間を考慮して [5]、時刻補正情報を算出している。
4. おわりに今回試作したアプリをビルドするための MIT App
Inventor のプロジェクトファイルは、ウェブ [6] で公開予定である。今後、改良して様々な場面で使えるように汎用性を高める予定である。

先端芸術音楽創作学会 会報 Vol.9 No.2 pp.7–9

5. 参考文献[1] 喜多 敏博 : 専用アプリ不要の聴衆参加型作品 ”Audience’s Smartphone Jam Session” のシステム構築,
先端芸術音楽創作学会 会報 Vol.5 No.3, pp.12–14,
2013.
[2] Toshihiro Kita, Web technology based pieces
driven by operation data transmitted from audience’s smartphones, EMSAN/JSSA Day 2015
symposium, https://www.youtube.com/watch?
v=fACZKhsxXZ0, 2015
[3] Csound for Android - Google Playhttps://play.google.com/store/apps/
details?id=com.csounds.Csound6[4] MIT App Inventor
http://appinventor.mit.edu[5] Network Time Protocol - Wikipedia
https://ja.wikipedia.org/wiki/Network_Time_Protocol[6] http://tkita.net/tools/timesyncplay/

6. 著者プロフィール

喜多 敏博 (KITA Toshihiro)
1967 年に奈良に生まれる。京都大学大学院工学研
究科博士後期課程研究指導認定退学，熊本大学 工学部
助手，総合情報基盤センター准教授，ｅラーニング推進機構教授，教授システム学研究センター教授，現在に至る。工学博士（名古屋大学，2005 年）。ｅラーニ
ングシステム，非線形システム，電子音楽に興味を持つ。http://tkita.net– 9–