サンプリング周波数 1                         (C)Y.Utsunomia 2008-2010 文末に「まとめ」と巻末データあり  audacityの設計者が考えた「クロス・プラットホーム」のクロスとは、如何なるタイ プのオーディオファイルであっても相互に開くことができ、操作できること、ではない かと思う。  実際に、特許などで保護されたファイル(例えばマッキントッシュ版audacityとwindo ws版で開くことのできるファイルの種類が異なる)以外で、開くことができないファイ ルは少ない。特許問題に抵触しそうな形式のいくつか(mp3やac3など)では外部プログ ラムで対応している。  しかし、.wavという形式一つをとってみてもバリエーションは多く、サンプリング周 波数ビット深度やトラック数、ヘッダー情報など様々な組み合わせがある。audacityは その多くに対応しているが、とくに力が入っている点は、「任意のサンプリング周波数」 「上位互換のビット深度」を特徴としている。  .wavファイルにおいてサンプリング周波数は、ファイルヘッダーに記された数値(チ ャンク)がすべてで、それ以降のデータ部分はサンプリング周波数の違いによるデータ 記述内容の違いは無い。つまりヘッダー部分の書き換えのみで、任意の再生速度(音程 も同時に)に変更できる。これはアナログテープでのテープ速度の変更とまったく同じ である。 (実際に電子音楽などのコンサートでは、テープの箱やリールに再生速度が記入されて いないと音からだけでは識別ができない。多くは19cm/secか38cm/secだが、筆者はコン サートで海外からの招聘作品を誤った速度で再生したことがあるが、誰一人気づかなか った・・30年も前の話なので・・。デジタルでは「ヘッダー」のおかげでこのような問 題は起きにくい)  audacityでは互換性と自由度の両立から、独自の工夫と操作系を持ち、何の指定も無 い場合、次に示すシーケンスに従い任意のファイルを読み込む。(この仕組みを把握し ておかないと大変都合の悪いことになるかも。逆に熟知しておけば無敵の操作性が得ら れるか・・) *ファイルの読み込みはドラッグ アンド ドロップで行い、複数ファイルを読み込む と する。(バージョンは1.3.6以降) 1)audacityを起動する。  *audacityは前回までに設定(編集→設定→品質で)したサンプリング周波数で起動。 2)ファイルをドラッグ アンド ドロップで読み込む。  *audacityが認識できるファイルであるならば、異なる形式やサンプリング周波数の   ファイルであっても同時に読み込み処理できる。   (例 44.1kHz MP3 48kHz wav 96kHz AIFFを次々に読み込め、同時に処理可能)  ☆注意 プロジェクトのサンプリング周波数は最初に読み込んだファイルのサンプリ   ング周波数に自動的に再設定される。全ファイルの読み込みが終わったら、プロジ   ェクトのサンプリング周波数を確認し、要求と異なる場合は、再度設定する。  ★重要 このプロジェクトのサンプリング周波数は、ファイルの書き出し時のサンプ   リング周波数になり、同時にプロジェクトのデフォルトとなる。   プロジェクトのサンプリング周波数と一致するサンプリング周波数のトラックと、   一致しないトラックでは、音の品位が異なる。後述する高速リサンプル(リアルタ   イム)が入るか、入らないかの違いがあるからだ。 3)再生   プロジェクトのサンプリング周波数と一致するサンプリング周波数のトラックはそ   のまま、一致しないトラックは高速リサンプル(リアルタイム)でサンプリング周   波数を変換し、再生される。  ☆注意 プロジェクトのサンプリング周波数と一致しないからといって、各トラック   のプルダウンメニューの「レートをセット」でサンプリング周波数を変更してはい   けない。ここでサンプリング周波数を設定すると、「テープ速度」が新しくセット   した周波数/元の周波数、に変化する。仮に新しくセットした周波数が96KHz、元の   周波数が48KHzだとしたら テープ速度倍率=96000/48000=2となり、トラックの尺   は1/2、音程は2倍になる。     4)各効果(エフェクト、プラグイン)   プロジェクトのサンプリング周波数と一致するトラックも、一致しないトラックも、   トラックそれぞれのサンプリング周波数のまま処理を実行。(オフライン処理の利   点)  ☆注意 エンベロープ処理について    エンベロープツールはこの時点で入力することが多いと考えられるが、実際の   処理は、リサンプル同様に高速処理としてリアルタイム処理で再生され、設定され   たビット深度で処理固定されるのはファイル固定時である。    先にエンベロープ処理を行い、クリップしないように十分レベルを下げて、その   後増幅を行いレベルを上げると(論理的にはクリップしないはずでも)、処理は常に   エンベロープ処理が後になるため(書き出し直前)クリップしてしまう。    この問題はaudacityの論理構造(リアルタイムの高速処理とファイル書き出し時   の高品位処理の2重処理)に原因があるようで、このようにレベルの操作をエンベロ   ープ処理と増幅で重複する場合、エンベロープ処理後に一旦ファイル書き出しを行   い、再度読み込む。 4−b)異なるサンプリング周波数の断片を、ひとつのトラック(あるいはひとつのス   テレオトラック)に接合すると、そのトラックのデフォルトのサンプリング周波数   にレート変換される。 5)ファイル書き出し   ファイルの書き出しのサンプリング周波数は、プロジェクトのサンプリング周波数   で行われる。   各トラックのサンプリング周波数が異なる場合、そのトラックを選択し、プロジェ   クトのサンプリング周波数をそのトラックの元のサンプリング周波数に変更して   「選択範囲を書き出す」と、元のファイルと同じサンプリング周波数(リサンプル   なし)のファイルが作成される。    元のサンプリング周波数と異なる設定の場合、「高性能」リサンプル処理された   状態でファイルが書き出される。 ***異なるサンプリング周波数のトラックに貼り付けることも可能である。   例えば44.1KHz fsのトラックの指定部分に、48kHz fsのトラックの「部分」を切り   取り貼り付けたとする。その場合貼り付けるときにaudacityは48kHz fsの信号を   44.1kHz fsにリサンプルしてから、44.1kHz fsの信号として貼り付けを行う。この   場合サンプリング定理によりナイキスト周波数が24kHzから22.05kHzに下がるため、   貼り付け前と貼り付け後の音は変化する可能性があることに注意。 ☆☆リサンプル設定   audacity はこのように高速型、リアルタイムのリサンプルプログラムと高速ではな   い高性能(高品位)のリサンプルプログラムを自動で使い分ける。    それぞれのリサンプルプログラムは、それぞれ、より高速処理な設定、あるいは   低速高品位の設定ができる。「編集」→「設定」→「品質」に設定画面がある。 注意)リサンプルには大なり小なり音品位の損失(劣化)が原理的に伴う。audactyでで   きる作業には様々なものがあるが、明確に(原理的に)損失を伴うものと、原理的   には損失しないものとがある。現実には原理的に無損失であっても、何らかの事情   によって損失が発生するものもあるが、audacityのようにfile to fileではこの問   題が明確にあらわれる。    audacityの設計では(あくまで推論だが。他のDAWでも同様のものは多い)リアル   タイム時とオフライン時の動作を切り替えているため、操作作業中に聴こえる音と、   ファイル出力したときの音は異なることが多い。またaudacityでは作業の手順や設   定によってリサンプルが使用されるか否か、あるいはその回数が大幅に変わってし   まうので、最初から作業工程を計画的に組み立てた方が良い。    例えば、ほとんどの読み込みファイルがサンプリング周波数48kHzで、最終的には   44.1kHzの出力が必要な場合、プロジェクトのサンプリング周波数の設定や全ての作   業は48kHzで行い、最終的に44.1KHzへの変換を行った方が、それ以外の方法より低   損失と考えられる。筆者の場合、時間があるときに結局はいくつかのパターンを試   してみて、成績のよい(この判断がまた難しいのだが)ルートを模索しているし、   結果から言えば最良のルートは扱うソースによっても異なるようだ。     ○ イコライゼーション(1.3.x)とプロジェクトサンプリング周波数   audacityのイコライゼーション(フィルター)はFFT(高速フーリエ変換)ベースの   処理で、プロジェクトのサンプリング周波数とともにフィルターの入力周波数範囲   (横軸)が伸縮変化する。サンプリング周波数が48KHzなら、設定上限は24KHzまでに、   サンプリング周波数が1MHzなら設定上限は500KHzになる。 *注意 このソフト・フィルターがFFTベースであることに起因する問題。   FFTを使用している使用者なら気付いていると思うが、FFTは周波数リニアに等間隔   で窓が開く。つまり等Hz間隔で分析結果やフィルター窓が開くので、対数スケール   の周波数軸上では、低音では粗く高音では密に分析や設定ができる。   つまり高品位になるからといって、無闇に高いサンプリング周波数で処理を行おう   とすると肝心な帯域で、十分細かい設定ができなくなることがあるので注意する。    また分析用途や電子音楽などの用途で、低音域に詳細かつ急峻なフィルター設定   を行おうとすると、(例えば1/nオクターブ幅の遮断-120dB程度の処理)鋭利なフィ   ルターを作りにくい。    そのような場合は、サンプリング周波数を敢えて低く設定し(その処理を行うト   ラックをリサンプルして)、イコライゼーションを開くと、そのサンプリング周波   数の1/2の周波数を上限とするFFTフィルターが出現する。 **注意 サンプリング定理   audacityはこのように自由にサンプリング周波数を設定し、リサンプルを行うこと   ができるが、サンプリング定理という現象から逃れることはできない。   サンプリング定理とは、その伝送帯域は、サンプリング周波数の1/2に制限される   という原則で、(その周波数をナイキスト周波数と呼ぶ)サンプリング周波数48KHz   のシステムは帯域24kHzまでしか扱うことができない、というものである。したがっ   て前述した低いサンプリング周波数にリサンプルしフィルター処理を行うと、帯域   そのものがそのサンプリング周波数の半分に制限されるということになる。故にフ   ィルター入力画面もそれに合わせて設定上限周波数がさがるようにaudacityは設計   されているのである。    まあ、電子音楽用途では制限される帯域以下と以上の2つにトラック分けし、帯域   以下で強力ないコライゼーション処理をおこない、その後2つのトラックを加算復   元すればよいが、測定用途では、群遅延や移送回転が激しく、問題が生じるかもし   れない。    また、このサンプリング定理そのものをフィルター処理として使用することもで   きる。 *** リサンプルの功罪   このようにaudacityでは当たり前のように、リサンプルを気軽に使用できるが、音   品質に対して、確実に損失をもたらせることを忘れてはならない。時間軸を操作す   るのでジッタ(時間軸上の揺らぎ)、特有の歪み、折り返し雑音、スペクトル拡散、   ノイズフロアの上昇などが確実に起こるので、そのことを理解あるいは検証の上、   リサンプルを許可する必要がある。    とくに解像度を重視した2ミックスのマスタリングなどでは慎重を要する。 参照)「サンプリング周波数2」項の項末「外部リサンプルエンジン」参照 <R8brain.gif を参照> ☆☆ テープで言うところの可変速(テープ速度の制御)   先に触れたように、ファイル読み込み後にトラックの左端のプルダウンから、「レ   ートをセット」でサンプリング周波数を変更すると、ちょうどテープ速度を変化さ   せたような変化が得られる。(しかもaudacityの場合きわめて広範囲に変更可能・・   広範囲に変更するには「その他」を選び、セット画面に数値を入力する)    非常に激しく音が変化するし、さぞや激しい情報損失であるように思えるが、こ   の変化そのものはデジタル情報としては無損失で行われる。 ☆  その他の、テープでいうところの可変速(テープ速度の操作2)   上記以外に可変速コマンドがaudacityには存在する。     この機能はver,1.2.x系では既に搭載されているが、用語が異なる。   「トラック」→「新しく追加」→「タイムトラック」(1.3.7)を実行すると、新た   にタイムトラックが追加される。    中央に一本線のあるトラックであるが、このトラックはエンベロープツールで操   作行う。    エンベロープツールを選択し、この中央線をつまみながらポイントを打っていく   と、その作成したカーブに応じた速度変化(音程変化を伴う)が得られる。    トラック左端のプルダウンメニューを開くと、変化の上限(1200%=+3.5オクター   ブ)と下限(13%=約-3オクターブ)を設定する画面が開く。   画面から考えると、コンセプトとしては明らかに「可変速」を目指したもののよう   であるが、動作は滑らかさに欠け、多少ギクシャクした効き具合である。サンプリ   ング周波数の滑らかな変化は相当に難しいのだろう。    タイムトラックを作成すると、もともと付いている時間スケールの下に新しいス   ケールが表示される。この新しい時間スケールは、速度変化を反映させたノンリニ   アな目盛りで、このことから考察するとこのタイムトラックの機能は、いわゆる可   変速というよりも、シンクロナイザー(他のソフトやメディアとの同期機能)を持た   ないaudacityを用いて映像などとの簡易同期(尺あわせ)のためのもののように思わ   れる。   (同期しないとは言っても、USBインターフェースなどを用いてS/Pdifデジタル入力 した場合には同期できなくもないようだが)    動作そのものはリサンプルによる操作なので、シンクロナイザー(尺あわせ)と   して使用する場合で、品位が変化するので注意。 ☆  異なるサンプリング周波数の複数のファイルを読み込んだ場合(トラック1=44.1   KHz、トラック2=48KHz、トラック3=96kHzとしようか)、普通にファイル書き出し   するとすべてのトラックはミックスされ、サンプリング周波数はプロジェクトのサ   ンプリング周波数で出力される。(プロジェクトのサンプリング周波数と異なるサ   ンプリング周波数のトラックはリサンプルされミックスされる)    ときに、それぞれのトラックをそれぞれのサンプリング周波数で個別に(ミック   スせず)出力する必要があるが、その場合は、出力するファイルを選択し、画面左   下のプロジェクトのサンプリング周波数を「そのトラック」のサンプリング周波数   に合わせ、出力することを、サンプリング周波数の数だけ繰り返す。1操作ではト   ラックオリジナルの各サンプリングでの出力はできない。 ☆☆ audacityのサンプリング周波数設定のまとめ      audacityには3箇所にサンプリング周波数設定がある。   1)プロジェクトのサンプリング周波数(デフォルト設定)は「編集」→「設定」→     「品質」で設定画面へ     この設定はオーディオファイルを読み込むと、その時点でそのオーディオファ     イルのサンプリング周波数に変更される。(ただし最初の読み込みファイルに     ついてのみ)   2)ファイルの書き出しなどに一時設定のためのプロジェクトのサンプリング周波     数設定画面左下の設定窓(設定変更してもリアルタイムリサンプルの作動で速     度や音程変化なし)     書き出しファイルで、リサンプルを避けるには、書き出すファイルのサンプリ     ング周波数に一致させる。   3)各トラック左のプルダウンメニューの中の「レートをセット」     (設定変更すると再生速度、音程ともに変化)   これらの設定はいずれも「その他」を指定すると「任意の数値」を入力可能になる。 ☆☆☆ 48KHz系、44.1KHz系サンプリング周波数のオクターブ数表  倍率 48kHz系列 44.1系列 (オクターブ) 単位はHz    単位はHz -8 x1/25 187.5 172.265625 -7 x1/12 375 344.53125 -6 x1/64 750 689.0625 -5 x1/32 1500 1378.125 -4 x1/16 3000 2756.25 -3 x1/8 6000 5512.5 -2 x1/4 12000 11025 -1 x1/2 24000 22050 x1 48000 44100 +1 x2 96000 88200 +2 x4 192000 176400 +3 x8 384000 352800 +4 x16 768000 705600 +5 x32 1536000 1411200 +6 x64 3072000 2822400 +7 x128 6144000 5644800 +8 x256 12288000 11289600 +9 x512 24576000 22579200 +10 x1024 49152000 45158400 +11 x2048 98304000 90316800 +12 x4096 196608000 180633600 +13 x8192 393216000 361267200 +14 x16384 786432000 722534400 +15 x32768 1572864000 1445068800 +16 x65536 3145728000 2890137600 +17 x131072 6291456000 5780275200 +18 x262144 12582912000 11560550400