インターネットにおける オーケストラ演奏同期機構の 設計と実装 環境情報学部4年 久松剛(ringo) 親:uhyoさん サブ親:pierreさん
実現したいもの(最終目標) 複数の演奏者がインターネット上でコラボレーションを行うことができる環境の構築 ミキサーなどに出力するため、それぞれの音声ストリームを同期させる必要性 演奏者の環境の差異吸収 異なる楽器による収録環境の違い タイミング信号の送信 演奏のテンポやタイミングを合わせる 他の演奏者との音を合成したものをfeed backとして各演奏者に返す 和音を調整するため PC PC PC PC タイミング信号 Internet 演奏データ フィードバック PC
定義 オーケストラに特化するとは? コンサートホール内では他の演奏者の演奏ではなく、指揮者の指揮に合わせて演奏を行う 壁や天井の反響による音声の遅延 他の演奏者の音を聴きながら演奏できる音声の許容遅延は50ms〜80msという要求値 演奏者がタイミング信号を受けて演奏、他者の演奏が80ms以内に聴くことができれば演奏可能 複数拠点からの音声をミキシングする必要性 コンサートホールにある複数のマイクがネットワーク上に散らばったイメージ ミキサーに出力する必要性 →音声の同期 タイミングのズレが音のズレとなって現れる
想定する環境 ネットワークに関して ネットワーク伝送遅延が転送機器の内部処理、同期処理、ジッタを含めて50ms〜80ms以内 遅延のジッタが一定 タイムコードにNTPを一部用いる場合に影響
卒論で対象とする部分 複数ストリームの同期精度向上 演奏者ごとの収録環境の差異吸収 編集を意識した同期機構 同期処理速度 MIDIのような秒以下での同期 演奏者ごとの収録環境の差異吸収 収録機器の違い シンセサイザーとマイク入力など ネットワーク環境の違い RTT、ジッタなど 編集を意識した同期機構 後から音声データを追加編集可能 絶対時間による同期 MIDIにおけるSMPTE 同期処理速度 PC PC PC PC フィードバック 演奏データ Internet タイミング信号 PC
関連研究(1/2) RTP(Real-time Transport Protocol) DVTSなど動画/音声転送システムで利用 タイムスタンプはNTPより生成 NTP 64bit中の真ん中32bitを使用 時間/分/秒の単位 より細かな同期を取ることが必要
関連研究(2/2) MIDIにおけるSMPTEタイムコード MTR(Multi Track Recorder)と シーケンサーの同期を取るために用いられる SMPTE to MIDIコンバーターでMIDI情報に変換可能 MIDIコンバーターでテンポ情報を生成 絶対時間情報で管理 時間/分/秒/フレーム フレーム:1秒間の辺りのフレーム数は24, 25, 29.97, 30 後からデータを追加しても曲の最初から再生・同期の確認をする必要がない MIDIのように編集が容易な、秒以下の精度での同期が必要
関連研究(3/3) デジタルシネマプロジェクト 香港、大手町からの映像を藤沢で編集、ロサンゼルスへと転送 映画のワンシーンをロサンゼルスで監督を行う DV(NTSC)の29.97fpsを利用し、RTPと併用して時/分/秒/フレームで同期 収録用途に使える同期システムの構築
設計(1/4) マイルストーン 音声データ送信プログラム 音声データ受信、同期プログラム タイミングデータの送信プログラム DVTSに用いられる音声送信の拡張として作成 音声データ受信、同期プログラム DVTSに用いられる音声受信の拡張として作成 タイミングデータの送信プログラム (余力があれば…ソフトウェアミキサーとの連携)
設計(2/4) 音声データ送信プログラム IEEE1394経由でPCM形式の音声データを取得 将来的にはs/pdif(Sony/Philips Digital Interface)から音声データを取得 一般的な収録機器に対応するため NTPから取得できる時/分/秒に加え、秒以下の単位を記録する 単位の候補としてサンプリングレートがある サンプリングレート*1/1000として扱うのが良いのか、独自にタイムコードを作るのが良いのかは要検討
設計(3/4) 音声データ受信, 同期プログラム 複数箇所から送られてきたデータを同期, サウンドデバイスに出力 ネットワーク伝送遅延、ゆらぎ、転送機器・収録環境の遅延監視と吸収 音声データ送信プログラム、タイミングデータ送信プログラムとの連携による遅延監視
設計(4/4) タイミングデータの送信プログラム 音声データ受信者から各演奏者に向けて送信され、演奏のタイミング・リズムの基準になる ネットワークのRTT測定にも利用される 受信側から演奏者へ送信された際のパケットのタイムスタンプ、演奏者から受信側へのタイムスタンプとの差分により算出
実装 MacOSX 10.2.6 Carbon(C言語) Project Builder CoreAudio SDK 他のプラットフォームへの移植を考えると汎用性が高い Project Builder CoreAudio SDK サウンドデバイスからの入力を得るため
評価指針 オーケストラに特化した形での性能評価 複数の異なる場所から音声を転送した際の同期精度の計測 演奏者の収録環境による差異の吸収 処理時間の計測 転送、feed backにかかるそれぞれの時間を圧迫しないため