音響を制御するミドルウェア構築 B2 suzuk 親:B4 matsu アウトライン 背景 アプローチ 実験環境 システム構成 API設計 Java API 利用例 サンプルアプリケーション まとめ 背景 τ41部屋には複数のスピーカーがある スピーカーを独立して制御できる機器がある ユーザプログラムで利用しずらい 目的 音響環境を制御するミドルウェア構築 プログラマがプログラムから利用できるように 使いやすいAPIを提供する システム概要 –ハードウェアスピーカー スピーカー スピーカー スピーカー スピーカー 音出力 アンプ アンプ Utamaro(Mac X Server) τ41 pissaro(IBM) プログラマーのコンピュータ スピーカー システム概要 –ハードウェアスピーカー スピーカー スピーカー スピーカー スピーカー 音出力 アンプ アンプ Utamaro(Mac X Server) τ41 pissaro(IBM) プログラマーのコンピュータ スピーカー システム概要 –ソフトウェアスピーカー出力 音生成エンジン (SuperCollider) OSCプロトコル スピーカー出力コントローラ(Mac) メッセージ送信 τ41 Webアプリケーション(XML parse) XML 本システムのAPI APIを利用 XML送信 アプリケーション システム概要 –ソフトウェア- OSC プロトコル XML API設計 APIの設計 AudioInterfaceクラス 統一的な音響操作メソッドを提供 (ここにAPIの詳細なクラス図をもってくる) API設計 利用できるサラウンド効果 SuperColliderで音を操作 (Control) basic スピーカーごとの音量調整(8input, 8output) 音源の指定 ファイル アンプへのinput ストリーム extended 音像の定位 音の移動 2点間の移動 ぐるりと回る SuperCollider自体が音を作る (Make) エフェクト サウンドジェネレータ SuperColliderのRowな機能を使う (注釈:赤は未実装 API利用例(仮 音源を指定して曲を流してとめる public static void main(String argv[]){ AudioInterface audioInterface = (AudioInterface)new AudioController( new AudioServer("utamaro.ht.sfc.keio.ac.jp", 50005)); // play audio file AudioFile aufile = new AudioFile("demofile.wav"); AudioInterface.play(aufile); try{ // Sleep 20 sec Thread.sleep(12000); } catch(InterruptedException e){ e.printStackTrace(); } // stop the audio sound AudioInterface.stop(aufile); } サンプルアプリケーション ユーティリティ Java τ41の任意の空間上に 音源を配置 音を回す CGI Webでτの環境を制御 まとめ τ41の音響空間を制御する操作環境を提供 プログラマが利用 ユーザが利用 発展 実装環境 屋内 τ41 スピーカー 10個以上 アンプ 2台 ライト、ディスプレイなどの制御を管理するサーバ ソフトウェア補説 SuperColliderとは 音声合成ができるソフトウェア 独自のプログラミング言語で動作を記述 ( SynthDef(“sine”, { var osc; osc = SinOsc.ar(800, 0, 0.1); //800Hz sinewave Out.ar(0, osc); // output 0 num audio bus }).writeDefFile; ) 音響システム 利用例 ビデオ会議 音響システムとディスプレイを制御 Notification ユーザに危険信号通知 音響空間について 人が音を聞いて高度な臨場感を感じるには、次の3つの要 素が必要である。 スピーカーごとの音の強弱 スピーカーごとの音の到達時間の差 スピーカーごとの音の位相差の調整 さらに、音響空間における対象者の次の状態を考慮 する必要がある 対象者の位置 対象者の顔の向き
© Copyright 2024 ExpyDoc