ピンクノイズを発生させる

ときには周囲のノイズから逃れるための一寸した手立てがほしくなる。しかし、書斎の窓辺に小鳥の巣箱をかけるとか森に行くといった古めかしい方法や高価なノイズ生成機で我慢する理由があるだろうか。フリーソフトウェアによって邪魔な音をかき消してくれるノイズを生成できるのだ。

ノイズ生成が万人向けでないことはわかっている。ラジオの音や同僚のおしゃべりやショップのノイズの中などで何時間も楽しく働き続けられる人もいるからだ。しかし、音に邪魔されて生産性が低下する人もいるのだ。私は大学時代にアルバイトで学校新聞の挿絵を描いていたことがあるが、自分を外界から遮断された状態にして仕事に専念したいとき、よくキャンパスセンターに行ったものだ。そこでは聞き取れないくらいの話し声が絶えずしていて、それがバックグラウンド・ノイズになっていた。

脳にとっては、絶え間ない不明瞭なノイズのほうが、明瞭で直接的な音よりも遮断しやすく、また完全な静寂よりも気にならないようだ。数年前、私はBlackhole MediaのNoiseを知った。これはMac OS Xのフリーウェアアプリケーションである。Noiseはノイズを生成する。ホワイトノイズとピンクノイズ、それだけである。これをオンにすれば、交通騒音、犬の鳴き声、隣人や子供の話し声など、気に障る音が聞こえなくなる。なんと簡単なことか。

ホワイトノイズとは、もちろん空電などのランダムな信号の単なる日常的な言い方である。科学的には、あらゆる周波数帯域でエネルギーが(統計的に平均すると)均等な信号にすぎない。つまり、スペクトルのすべての周波数帯域の均等な混合体であり、白色光が可視光線のすべての色を含んでいるのに似ている。

ピンクノイズのほうは、わかりやすい言い方で表現しにくいが(すべてのオクターブでエネルギーが均等で、エネルギーが周波数に反比例するなど)、人間の耳で聞き取りやすい。たいていの人は日常生活における不快な音をホワイトノイズではなくピンクノイズにまで落としたがる。

ノイズのそれぞれの「色」の説明については、ノイズの色に関するWikipediaの記事を読んでいただきたい。

Linuxの単純な代替物:whitenoise

私はLinuxでNoiseに相当するものをあれこれと考え始めた。OS X環境は、NeXTSTEPの共通の祖先のおかげでGNUstepと似ている点が多い。NoiseのソースコードはBSDライセンスであるが、AppleのCocoaとCoreAudioに直接コード化されているので、これを移植するとしても、ゼロから作るのに比べて、それほど速くないだろう。

理論的には、パブリックドメインまたはCreative Commonsライセンスのピンクノイズ・サンプルをダウンロードし、オーディオ・プレーヤによって連続ループの中で再生できるが、それでは少しややっこしくなる。一つには、フル装備のオーディオ・プレーヤを実行しなければならないし、トラックの終わりが来るたびにポップを処理するか、本当のギャップレス再生か耳をだませるほどのクロスフェードをサポートするアプリケーションを見つける必要があるからだ。連続トーンのオーディオトラックでこれを行うのは非常に難しい。

LinuxでNoiseと最も似ているのは、Paul Pelzlのwhitenoiseというコンソールアプリケーションだ。whitenoiseで生成できるのはホワイトノイズだけだが(ピンクノイズは生成できない)、出力を調整できる実行時オプションがいくつかある。-cフラグでローパス周波数カットオフを指定できるので、高い周波数を切り取って、生成される信号の「ピンク度」を高められる。また、5種類のオーディオフィルタを切り替えることができ、それぞれについてフィルタ長を調節できる。試行錯誤が最善策だ。

また、-t N オプションで時間を指定できるし(Nは実行する分数)、-fオプションで指定した時間の終わりに信号をフェードアウトさせることもできる。

自分のニーズに最適な設定を探しながら、-sオプションでwhitenoiseをインタラクティブに実行することができる。また、Freshmeatのwhitenoiseページでコメントを見て、他の人たちの意見を参考にするとよいだろう。whitenoiseには試験的なGNOMEフロントエンドもある(同じサイトから入手できる)が、あまりユーザフレンドリな機能ではない。

もっとパワーを! Boodler

音景を本当にコントロールしたければ、Boodlerを使うしかない。BoodlerはAndrew Plotkinが開発したフル装備の「サウンドスケープ・ツール」である。これを使うと、純粋なトーン、サンプル、効果などの「サウンドスケープ」から作った音の式をPythonで定義することができる。実行を続けている限り、Boodlerは繰り返すことなくバックグラウンドでせっせと音を作成する。

Boodlerのコンパイルとインストールには2~3分しかかからない。基本パッケージはBoodlerアプリケーションとスクリプトとサポートファイルとサウンドライブラリから成っている。インストール手順を実行した後、BOODLER_SOUND_PATHとBOODLER_EFFECTS_PATHという環境変数を設定して、サウンドライブラリと効果モジュールのインストール場所を指定する必要がある。

たとえば、サウンドライブラリの格納場所が/home/username/lib/boodler-sndで、効果モジュールの格納場所が/home/username/src/boodler/effectsであれば、次のように実行する。

export BOODLER_SOUND_PATH=/home/username/lib/boodler-snd
export BOODLER_EFFECTS_PATH=/home/username/src/boodler/effects

基本的な使い方は簡単だ。コマンドラインからBoodlerを呼び出し、ClassName.AgentNameという形式の引数を渡すことで、再生すべきサウンドスケープを指定する。ClassNameにはBOODLER_EFFECTS_PATHにインストールされているモジュールのどれを指定してもよい。AgentNameはそのモジュールで定義されているサウンドスケープのいずれかである。たとえば、基本インストールに含まれているcricketモジュールのCricketMeadowを再生したければ、python boodler.py cricket.CricketMeadowを実行する。Boodlerのオプションの詳細(複数のサウンドスケープを実行するとか、高度なエージェントを使用するなど)については、Using Itページを見ていただきたい。

ノイズ・サウンドスケープ・パック(サウンドライブラリとは別のダウンロードになっている)には、ホワイト、ピンク、ブラウン、ブルー、バイオレットの各ノイズのサウンドスケープ式が入っている。このパックをダウンロードし、ファイル類をサウンドライブラリにコピーし、noise.pyファイルは効果ディレクトリにコピーする。そのピンクノイズを生成するのは簡単で、python boodler.py noise.Pinkを呼び出すだけでよい。

数秒間、その音に耳を傾けてみよう。

耳障りな音を不明瞭にするだけならこれで十分だが、もちろんBoodlerはそれ以上のことができる。Boodlerの基本サウンドスケープ・パックには、自然の音から人工的な音まで広範囲にわたる環境音が収録されている。交通音、甲高いコオロギの鳴き声、水の垂れる音、建設現場の騒音など、さまざまな音が含まれている。

サウンドスケープを組み合わせたり管理したりするユーティリティも含まれている。詳細なチュートリアルには、Boodlerに含まれている要素から独自のものを組み立てる方法が書かれている。私はかつての学生センターのように大勢の人たちの話し声が周囲から微かに聞こえてくる雰囲気をサウンドスケープで正確に再現しようと頑張っている。

NewsForge.com 原文