音響を制御するミドルウェア構築
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 2026 ExpyDoc