1999-12-06[n年前へ]
■立体音感を考える
バーチャルサウンドソフトウェアを作ってみよう
立体感というものには何故か強く心惹かれるものがある。まして、それが人工的な立体感であるならば、なおさらである。それは、画像・映像であっても、音であっても同じだ。色覚なども同様なのだが、人間の感覚というものを人間自身の技術により再現できたりするのが、実に面白い。
何より、自分が実感できるというのが良い。結果を自分で感じることができるというのは、素晴らしいと思う。よくソフト技術者などで、「もう少し目に見えるものが作りたい」という人がいるが、それと同じである。
小・中学校などでも実感できる教材や授業というのがあれば素晴らしいと思う。最近のWEBを眺めていると、そういう先生方のグループも多いようだ。そういう先生は「えらいなぁ」とつくづく思う。今の学校の先生は、そういうことをすればするほど、仕事としては時間単価が下がってしまうのだろう。それでも、そういった先生方は、きっとそういうことは気にしてはいられないのだろう。ホントにエライ。
さて、立体感を実現するソフトであるが、そういった技術には色々なモノがある。音響の立体感の実現を目指す技術に関しても、古くから数多い技術がある。そういったものを追求しているWEBも多々あり、
「今日の必ずトクする一言(http://www.tomoya.com/)」の
- 山本式スーパーバイノーラルコンペンセーターのナゾ(その2、ソースを考える編)
- http://www.bekkoame.ne.jp/~jh6bha/higa9810.html#981013
- 山本式スーパーバイノーラルコンペンセーターのナゾ
- http://www.bekkoame.ne.jp/~jh6bha/higa9810.html#981008
- 山本式バーチャルサウンドシステムのナゾその2(原理解説編)
- http://www.bekkoame.ne.jp/~jh6bha/higa9804.html#980421
- 山本式バーチャルサウンドシステム(PATPEND.)のナゾ
- http://www.bekkoame.ne.jp/~jh6bha/higa9803.html#980307
また、そういったものを実現しようとする製品は昔から掃いて捨てるほどある。最近の製品では、
- ヤマハ、スピーカー間隔0でステレオ音場を実現するLSI
- http://www.watch.impress.co.jp/pc/docs/article/990122/yamaha.htm
- ヤマハ デジタルオーディオ用LSI『YSS901』
- http://www.yamaha.co.jp/news/99012101.html
私も出張などで新幹線などに乗っている際には、E-500などでヘッドホンで音楽を聴いていることが多い。そういう時には、先の「山本式スーパーバイノーラルコンペンセーター」などが欲しくなり、音の立体感などについて色々と考えてしまう。必要に迫られているせいか、立体音感については、私もとても興味を惹かれるのである。
というわけで、「できるかな?」でも立体音響について考えてみたいと思う。といっても、考えるだけでは面白くない。それに「ナントカの考え休むに至り」ともいう。私が考えるだけでは、何にもならないし、しょうがない。色々と実験をして遊んでみたい。
そのために、まずはいくつかの道具を作ってみることにした。
今回、作成するのは、山本式バーチャルサウンドシステムソフトウェア(名付けてYVSSS。略称が長いので、以降YVS3と称することにする。)である。先の「今日の必ずトクする一言(http://www.tomoya.com/)」の一連の話しに出てくるそれである。スピーカーマトリックスの程度を小さくしたものである。
バーチャルサウンドシステムソフトウェアというと仰々しいし、ものすごいソフトウェアに思えるかもしれないが、実はそんな大したモノではない。それどころか、実に簡単なモノである。実際には、Waveファイルを開いて、そのファイルの左チャンネル(L)、右チャンネル(R)に対して、
- R'= R - 1/3L
- L'= L - 1/3R
ここに、今回作成したソフトを置いておく。いつものことであるが、完成度はアルファ版以下である。
使い方を示しておく。まず、下が動作画面である。水平方向にスライダーがあるが、チャンネル同士の演算の係数を決めるものである。左端が0%であり、右端が100%である。
すなわち、スライダーが左端であれば、
- R'= R - 0 L = R
- L'= L- 0 R = L
- R'= R - L
- L'= L- R
Load_Convertボタンを押して、WAVファイルを選択し、変換することができる。その際、オリジナルのファイルは"*.org"という名前で保存される。
さて、このソフトを使って、
- 種ともこのアルバム「感傷」から「はい、チーズ!」
- THE POLICEのLive at the "Omni" Atlanta, Georgia During 1983 U.S.A Tourから"SoLonely"
試聴のやりかたは、Cd2wav32.exeを使い、CDからWAVファイルにする。そして、WaveMixPro(YVS3)を使って、バーチャルサウンドシステム構築する。そして、それをヘッドホーンで試聴するわけだ。適当にチャンネル同士の演算の係数を変化させ、聴いてみた。果たして、立体感は増しているか?
さて、試聴した結果であるが、「うーん。」という感じだ。
係数を大きくすると、まるで「カラオケ製造器」である。ボーカルが消えるだけである。しかも、聴衆が頭の真ん中に居座っているような感じである。つまり、立体感がむしろなくなってしまっている。「何故、オマエらはオレの頭の真ん中で拍手をするのだ」、と言いたくなる。頭が変になりそうである。
かといって、小さいとよく違いがわからない。困ったものである。
さてさて、まだまだ第一回目ではあるが、前途多難の気配であるのが心配なところだ。
2000-01-03[n年前へ]
■音場の定位を見てみたい
立体音感を考える その2
前回(といっても間に他の話も挟まっているのだが)、
で「音の立体感」について考え始めた。今回はその続きである。「音の立体感」を考えるための道具を作る準備をしてみたい。色々なことを考えるには、その目的にあった測定器が必要である。何か新しいことをしようと思ったら、そのための新しい測定器を作成しなければならない(と思うだけだが)。そして、何より私は計測器なんてほとんど持っていない。だからといって、計測器を買うお金があるわけではない。というわけで、困ってしまうのだ。
そこで、立体音感を考えるための測定器を作っていくことにした。といっても、すぐにできるとも思えないので、色々実験をしながらボチボチとやってみることにした。勉強がてら、ボチボチやってみるのである。オーディオ関連のことにはかなり疎いので勉強にはちょうど良いだろう。
資料をいくつか眺めてみたが、特に
- 「立体視の不思議を探る」 井上 弘著 オプトロニクス社
- 音像定位の因子
- 両耳差因子 (音響信号)
- 音の強さ(振幅)の差
- 位相の差
- 周波数スペクトル因子
そこで、いきなりだが今回作成した解析ソフト「音場くん一号」のアルゴリズムは以下のようになる。
- PCのサウンド入力から、サンプリング周波数 22.05kHz、Stereo 各チャンネル8bitで取り込みを行う。
- 取り込んだデータを4096点毎にウィンドウ(Hamming or無し)処理をかける。
- 高速フーリエ変換(FFT)を行う
- FFTの結果の実部について、左右のチャンネルの差分を計算する
次に示すのが、「音場くん(仮名)一号」の動作画面である。「音場くん(仮名)一号」の画面構成は、
- 右側->制御部
- 左側->計測データ表示部
- 音声波形データ(赤=左、緑=右)
- 周波数(横軸)vs左右での音圧の差(縦軸)
- 時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)
(黒字に赤、緑の色構成は変更の予定) |
計測データ表示部の拡大図を下に示す。
- 音声波形データ(赤=左、緑=右)
- 周波数(横軸)vs左右での音圧の差(縦軸)
- 時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)
この表示計の意味を例を挙げて説明したい。例えば、下の画面では左の方に定位している音が鳴ったときの状態を示している。一番上の音声波形データでは緑(右)の波形は小さいのに対して、赤(左)の大きな波形が見えている。
また、真ん中の「周波数(横軸)vs左右での音圧の差(縦軸)」では横軸100(任意単位)程度の高さの辺りで左チャンネルに位置する音が発生しているのがわかる。
また、一番下の「時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)」では時間的に一番最後(横軸で右側)の方の横軸560、縦軸100位の位置に白い(すなわち左チャンネルに定位する)音が発生しているのがわかると思う。
この曲のイントロでは、「ポンッ」という音が高さを変えつつ、左右にパンニング(定位位置を変化させること)する。
一番下の「時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)」を示したグラフ中で白・黄色(左に定位)と青・黒(右に定位)する音が時間的にずれながら現れているのが判ると思う。
このようにして、この「音場くん(仮名)一号」では音の定位状態についての「極めて大雑把な」計測が可能である(保証はしないけど)。「音場くん(仮名)一号」を使った他の例を示してみる。
下は種ともこの「O・HA・YO」の中から「The Morning Dew」のイントロ部を示したものだ。
- 左(白・黄)チャンネル方向に定位するピアノ
- 右(黒・青)チャンネル方向に定位するガットギター
これはまるでオルゴールのピンを見ているようだ。あるいは、シーケンサーや昔の自動演奏ピアノのロール譜のようである。対位法などの効果をこれで確認したくなってしまう。
さて、ここまでの例は楽器も少なく、比較的自然な定位状態であった。しかし、以下に示すような場合には不自然なくらいの「音の壁」状態の場合である。かなり状態が異なる場合だ。
これは、種ともこの「O・HA・YO」の中から「KI・REI」のラストのラストコーラス部を示したものである。人のコーラスが重なり合っていく部分である。色々な高さの声が重なり合っていく様子がわかるだろう。
ところが、このグラフをよくみると、同じ音が時間的に持続しているにも関わらず、時間毎に定位位置が左右で入れ替わっているのがわかる。
これはきっとエフェクターで言うところのコーラスなどをかけたせいだろう(素人判断だけど)。人工的にフィルタ処理をしているためにこのようになるのだろう。こういう結果を見ると、「音場くん(仮名)一号」をプログレ系の音の壁を解析してみたくなる。
さて今回は、音声の定位状態を解析する「音場くん(仮名)一号」を作成し、いくつかの音楽に対して使ってみた。まだまだ「音場くん(仮名)一号」は作成途中である。これから続く立体音感シリーズとともに「音場くん(仮名)」も成長していく予定である。
さて、一番先の画面中に"Re"という選択肢があるのがわかると思う。もちろん、これと対になるのは"Im"である。FFTをかけた結果の"実部"と"虚部"である。"実部"の方が左右の耳の間での音の大きさの違いを示すのに対して、"虚部"の方は左右の耳の間での位相差を示すものだ。つまり、ある周波数の音が左右の耳の間でどのような位相差を示すものか、測定しようとするものである。
左右の耳に対する音の位相差というものは、立体音感を考える上では避けては通れないのだろう。しかし、位相差を処理しようとすると、どうしたらいいものかかなり迷う部分がある。また、今回のようなFFT処理をかけたときに得られる位相を用いて良いものかどうかもよくわからない。というわけで、今回は位相解析処理は後回し、ということにした。
2000-01-31[n年前へ]
■落ちゆくエレベーターの中…で悩みます?
無重力の理想と現実(仮)
今日もまた「ちゃろん日記(仮)」を読みに行くと、何とも面白い話があった。
である。この「ちゃろん日記(仮)」は「疑問とそこに隠れている真実を見つけだす感覚」に満ち溢れている、と私は思うのである。面白すぎである。さて、今回の話は、エンパイアステートビルでエレベーターが落ちたっていうけど、落ちていくエレベーターの中の人は
- 床に張り付く
- 天井に張り付く
- 宙に浮かぶ
「ほんとう〜にそうか? ほんとう〜にそうか?」
こういういかにも教科書に載っていそうな話には、時として落とし穴がある。教科書に書いてあるのは理想的で単純化した場合の結果である。それを鵜呑みにすると間違えてしまうことになる。極端に言えば、教科書に書いてあるような理想的な状態はほとんど存在しないので、教科書に書いてあるような現象はそうそう再現しない、ということになる。
ピサの斜塔から「落下の実験」を行ったのはガリレオ・ガリレイであると思っていると間違いである、というのは少し違う例になってしまうか。
久しぶりに思い出したが、私の所属していた研究室では重力測定は大きな柱であった。そして、確か大学院の入試問題の内の一題は、まさに
「落ちていくエレベーターの中の人達に働く力を精密に論ぜよ」であった(簡単に大雑把に言えば)。私はちゃんとこの問題を解けた覚えがない。いや、はっきり言えばずいぶん悩んだ覚えしかない。ってことはいまいち解けなかったのだろう。なので、「落ちていくエレベーターの中の人達は無重力状態である」と聞くと、「ほんとう〜にそうか? ほんとう〜にそうか?」と歌いたくなる。
研究室関連では、絶対重力測定を行う研究をする人達もいたわけである。絶対重力(加速度)測定は自由落下する物体の運動を測定して、重力加速度を測定するわけであるが、そう簡単に物体は自由落下してくれないのである。簡単な実験で物体を自由落下させて重力加速度を測定してみるとわかるが、大雑把な実験(自分の家ですぐできる程度の)では一桁ちょいの精度しか出ない。一桁ちょいの精度しかでないということは、(例えば)体重が10%弱程度になったように感じるかもしれないが、それは無重力ではない。体重が60kgの人であれば、6kgも感じてしまうのである。(雑な話だが。)
空気中を落ちてくる雨だってそうだ。もし、雨が自由落下を続けていたらものすごいスピードになって、雨に打たれるのは命がけになってしまう。しかし、実際にはそんなことはない。空気抵抗で速度は飽和してしまい、自由落下状態ではないからである。
さて、本題である。果たして、
例えば、
- 若井研究室の研究概要
- http://mech.gifu-u.ac.jp/~wakailab/research/Basic/base_h.html
北海道の上砂川町にある施設(JAMIC)で、490m落下させることにより、10秒の無重量環境が得られます。落下中は空気抵抗を受けるので、落下カプセルを二重構造にし、空気抵抗を無視できるように工夫してあります。と、記述されているように、実際には工夫をこらさなければ無重力状態は実現できないのである。絶対重力系などでも空気抵抗を無視するために、投げ上げて往復運動を測定するなどの工夫がいるのである。
と、言葉だけで書いてもしょうがないので、適当な計算でもしてみる。いや、もちろん、実験をするのが良いわけであるが、面倒だし…
まずはエレベーターには、
- 何の抵抗も働かない
- 空気抵抗とワイヤーの抵抗が働く
そして、エレベーターの中の人には空気抵抗は働かないとした。エレベーターの中の空気と人の速度差はほとんどないからである。また、エレベーターは人よりもはるかに重く、人の重さはエレベーターの運動に何の影響も及ぼさないと近似した。
その計算の結果を以下に示す。これが落ちていくエレベーターの軌跡である。抵抗のない場合が(赤)で抵抗のある場合が(青)である。エレベーターが落ち始めてから30秒後までの軌跡である。
理想的な場合(赤)に比べて、抵抗のある場合(青)の落ち具合が鈍っているのがわかると思う。それでは、もっと時間が経った場合はどうだろうか?それを次に示す。エレベーターが落ち始めて300秒後までの軌跡である。つまり、五分間もこのエレベーターは落ち続けているのである。落ちた距離は理想的な場合で40kmの深さに達している。すごいエレベーターである。こんなに落ち続けていると、すでに重力加速度が一定とは言っていられなくなる。
ここまでくると、抵抗のない場合(赤)と抵抗のある場合(青)では全然違う軌跡になっている。抵抗のない場合(赤)では放物線そのものであるが、抵抗のある場合(青)では一定の速度になっている。
それでは、エレベーターがこのような状態になった時の、エレベーターの中の人に働く加速度(と実際の加速度の差分)を示してみる。これを見れば、落ちていくエレベーターの中の人が無重力状態であるかどうかがわかる。まずは、300秒後までの変化を見てみる。
理想的な場合(赤)はずっとゼロすなわち無重力状態であるが、抵抗のある場合(青)は無重力状態は最初だけで、50秒後位には通常の状態に戻ってしまっている。最初の部分をもう少し拡大してみる。次に示すのは、3秒後までの落ちていくエレベーターの中の人に働く重力加速度(と実際の加速度の差分)である。
これを見ると、あっという間に人は無重力状態ではなくなっているのがわかると思う。
というわけで、先の三つの選択肢、
- 床に張り付く
- 天井に張り付く
- 宙に浮かぶ
先日みたニュースのエレベーター落下実験の中で、中にいた男性リポーターが、落下しながら「ひぃ?」とアオ向けになった状態で床にハリ付いていたからなのです。という実際の現象が正しいのである(いや、もちろん状況はかなり異なるが)。「頭の中だけ」で考えたことというのは大抵の場合間違ってしまう。(もちろん、今回の「できるかな?」の話もその例外ではない)
そして、その後に、
ありはきっと、速度がそこまで充分でなかったのと、もしやのトキのために、男性リポーターに安全な姿勢をとらせていたタメだと思われます。とあるが、実際問題として「速度がそこまで充分」になることは未来永劫ないわけである。だから、(私の中では)エレベーターの中の男性リポーター氏は床から浮かぶことはないのである。
こういうのは、結局考える人の数だけ答えがあるのだと思う。もし、その内のどれが真実に一番近いかどうか知りたければ、実験すれば良いだけの話だし。
2000-10-25[n年前へ]
■虹の彼方に。
色覚モドキソフトを作る その7
今年は好きなWEBサイトがいくつも店じまいしてしまった。「わきめも」もそんなサイトの一つだ。その今はもうない「わきめも」の中で、きれいな虹が見えた。だからビールを飲んだ。だけど、目に見えている虹の色は写真のフィルムには写らない。どんなフィルム・CRT・プリンターの出力色空間もとても狭くて、虹の中に見える色は出せないからだ。ビールも虹も「生」に限る。という話があった。もう元のWEBページがあるわけじゃないから、細かいところは違っていたかもしれないけれど、大雑把な内容はこんな感じだった。- ビールも虹も「生」に限る - なんてとてもシブイセリフで良い感じだ。
このセリフの中の「どんなフィルム・CRT・プリンターの出力色空間もとても狭くて、虹の中に見える色は出せないからだ。」というのを図示してみると、下の図のようになる。
例えば、虹の中に見えるスペクトル色はこの図で言うと、黄色の矢印で描いた側の、色で塗りつぶした領域の外枠の色だ。波長の長い単色光、つまり最初は赤色から始まって、波長が短くなるに従い「赤→黄色→緑→青→紫」というようにスペクトル色はつながっている。
この図中に、とあるCRTとプリンターの出力可能な色空間(CCMファイル中に埋め込まれているプロファイル情報を参考にしたもの)を白点線と白実線で示したが、とても狭い領域の色しか出せず、とてもじゃないが虹の中に見えるスペクトル色はこれらの機器では出ないことが判るだろう。
だから、「生」の虹を見たときの感じは写真でもCRTでもプリンターの出力でも味わえないわけだ。おいしいビールは「生」に限る(私の趣味では)のと同じく、虹も「生」に限るのだ。
だから、虹の色と同じ
の時に撮影したような太陽光のスペクトルも、こんな風にWEBページの上で眺めても、それはやっぱり分光器を「生」で覗いている感じはとてもじゃないが味わえない。 こんな、「赤→黄色→緑→青→紫」というスペクトル色を眺めていると、中学の頃の美術の授業を思い出した。その授業の中で、こんな色相環が教科書か何かに載っていて、「こんな色のつながりは「赤→黄色→緑→青→紫」というスペクトル色に対応しているんだよ」と美術の先生に言われた。それを聞いていた私はよく判らなくなって、「すると、何で紫と赤のところで繋がってるのでしょうか??」と先生に聞くと、その先生も「う〜ん。」と悩み始め、しまいには「いつか調べて答えが判ったら、私にも教えてくれたまえ。」と言うのである。今考えてみると、それはとても素晴らしい言葉だった(間違っても皮肉でなくて、本当に素晴らしいと思うのだ)。
色覚のメカニズム 内川恵二 朝倉書店 口絵より |
だけど、「赤→黄色→緑→青→紫」という単色光のスペクトルが波長としては単に一方向に変化していくだけなのに、グルっと一周する感覚を受けるのはとても不思議である。そこで、色感覚モドキソフトを作ってそこらへんの感覚を眺めてみる、つまり「できるかな?」の常套手段である「その謎を見てみよう」と思うのである。
この「色感覚モドキソフト」はいつものように極めて大雑把でチャチな作りである。ソフトの流れとしては次に示すように、
1.光源としては二種類の場合
- RGBのCRTモニタ
- 単色スペクトル光
2.画像を読み込み、画像の任意の場所のRGB値を元に光全体としてのスペクトルを計算する。
3.錐体の分光感度を適当に設定し、Boynton色覚モデルをもとに
- 「赤<->緑」チャンネル
「青<->黄」チャンネル
「輝度」チャンネル
ここに今回作成したtruecolor7を置いておく。細かい使い方は今回は割愛したい。が、多分少し使えば(使う人がいるともそうそう思えないが)、使い方はすぐに判ると思う。
- truecolor7.lzh 522KB
truecolor7の動作画面はこんな感じである。
左上から下に向かって、RGBそれぞれのスペクトル設定、全体でのスペクトル、読み込んだ画像、右上から、錐体の分光感度、反対色応答の出力値である。
画像の任意の場所を調べたければ、BMP画像を読み込んでマウスで好きな場所をなぞるなり、クリックすればよいし、「赤→黄色→緑→青→紫」という単色光のスペクトル色の場合を計算したければ、右下にある「SpectrumColor」ボタンを押せば良い。
さっそく、赤→黄色→緑→青→紫というスペクトル色の反対色応答「モドキ」を見てみたのが次のグラフである。縦軸が「輝度チャンネル」で、向かって左の軸が「青<->黄」チャンネルで、向かって右の軸が「赤<->緑」チャンネルである。この「輝度チャンネル」・「青<->黄」・「赤<->緑」という「感覚的」3次元空間で波長が一方向に変化するスペクトル色を連続的にプロットしてみると、見事に円状につながっていることが判る。「赤<->緑」チャンネルの計算が基本的にはL錐体出力からM錐体出力の差分をとって、さらにS錐体の出力をほんの少しだけ引いてやるという計算をしているため、短波長側でL錐体の感度がM錐体の感度を上回っている(ように実は設定した)のでこんな風になるのだ。単純に波長が短くなるだけなのに、見た感じ何故か紫と赤が近く見える。あくまで、大雑把な話だけれど。
中学の頃の私がこれで納得するとは思えないが、少なくとも今の私はこの円環構造を目にすることができればこれで満足である。
ちなみに、つぎに示すのは輝度が一定になるようにした画像の周辺部をグルッと計算してみたものである。このグラフでは縦軸の「輝度チャンネル」の値はずっと同じで、「青<->黄」チャンネル・「赤<->緑」チャンネル平面内で円環状にグルッと一周しているのがわかると思う。自分自身が下の画像を眺めたときに、つながりが自然だなぁ、あるいは自然じゃないなぁ、と感じる感覚と重ね合わせながら見てみると面白いのではないだろうか。
さて、興味がある方がいらっしゃれば、このバッタもんソフトを使って、ぜひ色々なパラメータを振って色々な画像を読み込んで試行錯誤をしてみてもらいたいと思う。そして、その結果を私に教えていただければとてもうれしい。もちろん、このソフトを使うという話に限らず、面白そうなアイデアがあれば大歓迎である。
さて、虹というとミュージカル「オズの魔法使い」の中でジュディ・ガーランドが歌っていた"OverThe Rainbow"を何故か思い出す。実は、このソフトを作っているときも「ふ〜ん、ふ〜ん、ふ〜んふんふふふ〜ん」と歌詞が判らないまま鼻歌を歌いながら作業していた。歌詞が判らないまま、というのも何なので、せっかくなので調べた歌詞で今回の話を終わらせたいと思う。虹の彼方には…
Somewhere, over the rainbow, skies are blue.And the dreams that you dare to dream really do come true.
2004-06-30[n年前へ]
■富士通研、印刷画像に暗号データを埋め込む技術を開発
画像を0.8mm四方のブロックに分け、隣接する2ブロック間の黄色の平均濃度の差分を用いて数字を符号化し、印刷された画像内に暗号データを埋め込むという技術。画像の色バランスはプリンタやコピー機によって異なるが、「全体の濃さが変わっても、差分は変わらない」というが、例え「黄色自体は視認度が低い」とはいえ(方式によっては他色が)ざらついて見えそう。
それに加え、一般的に視認度が低い黄色に付け加えられている偽造防止用のコード等との兼ね合いも面倒かも。