最近、データの可視化ならぬ、データのサウンド化をすることが増えてきた。
その際、音の特性を理解していないと、思ったような結果が得られない事も多い。
備忘録がてら、データのサウンド化をする際、
最低限どのようなことに気をつけなければならないか、
以下に個人的な所感を記す。


(1) 音の構成要素
音は、「大きさ(振幅)」「高さ(周波数)」「音色(周波数特性)」で構成されるが、
特に音色は、「エンベロープ(時間変化)」によって印象が大きく左右される。
同じ周波数、同じサイン波、であったとしても、時間減衰によって、異なる印象に聞こえるということだ。
※バイオリンは立ち上がりがゆっくり、ドラムは、立ち上がりおよび終わりが急、など。

データをマッピングしていく際には、データ量を振幅あるいは周波数に割り当て、
音色をデータ種別に割り当てることが多いと思われるが、
音色には周波数特性とエンベロープが含まれる事に注意したい。


(2) 音の大きさと周波数の関係
人間は、周波数によって感度が異なる。
音の感度を周波数ごとに結んだ物を「等ラウドネス曲線」と呼ばれるが、
要は、低い音は聞こえづらく、高い音は小さくても聞こえやすい。
そのため、データを音色ごとに割り当てる際、
単純に音色に寄らず、音の大きさを均等に割り当ててしまうと、
実態とは異なる印象となってしまうことに注意したい。


※参考:wikipedia”等ラウンドネス曲線”

以下は、私がWeb Audio APIで作成した、3つの音源だが、
Violinが最も聞こえやすいと思われる。







しかし実際には、Web Audio API上での各音のgain(音の大きさ)は以下の通りである。

violin = 0.4
piano = 0.8
drum = 1.0

上記を踏まえた上で、データ種別ごとに、
音の大きさを調整することが望ましいと思われる。(ここは好みかもしれませんが。)
※ただし、上記はWeb Audio APIの特性にもよる?
 他のプログラムでサウンド化するならば、ここまで偏らない?


(3) 視覚と聴覚の関係
人は、視覚から聴覚を補間し、
聴覚から視覚を補間するものである。
つまり、知らず知らず、視覚の影響を受けて、聴覚の印象が変わるということである。
ビジュアライズ&サウンド化をする際には、
適切な印象となるような相乗効果を目指したい。


最後に。
サウンド化プログラミングをする時の難点は、
サイン波の音をひたすら聞き続けると、耳鳴りがしてくることである。
※私だけでしょうか。。