Macで意図的なエイリアシングを発生させるには、生成したトーンにLogic ProのBitcrusherエフェクトを使います。Appleはサンプルレートの分割による人工的なエイリアシングを明示的に説明しており、Audacityのリサンプリングで折り返したかった周波数が取り除かれる場合に、サポートされている代替手段となります。Bitcrusherのドキュメント。
この手順は、合成音を生成し、意図的に周波数の折り返しを発生させ、その結果をさらに編集できるよう保存したいAudacityユーザー向けです。Mac版Logic Proが必要です。以下の設定は公式ドキュメントをもとにした例示的な実験です。予測周波数は計算値であり、試聴テストの報告値ではありません。
Audacityでサンプルレートを変えると結果が異なる理由
サンプリング処理が表現可能な範囲を超える周波数を受け取ると、エイリアシングが発生します。ナイキスト周波数はサンプルレートの半分です。アンチエイリアスフィルタリングは、本来なら低周波数帯域に折り返される周波数を取り除くため、適切にフィルタリングされた変換では、エフェクトに使いたかった成分そのものが除去されることがあります。Audacityのデジタルオーディオの基礎。
Audacityでは、トラックのレート変更とオーディオのリサンプリングも区別されています。トラックメニューのドキュメントによると、Rateを変更すると既存のサンプルの間隔が広がったり狭まったりし、長さとピッチが変わります。Tracks > Resampleは、長さと再生速度を維持したままサンプル数を変更します。どちらの操作も、意図的なエイリアシングエフェクトとしては説明されていません。オーディオトラックのドロップダウンメニュー。
コンバーター品質の設定は別の目的で使われます。再生時やレンダリング、書き出し時の変換品質を調整するものです。アンチエイリアスフィルタリングを無効にする切り替え機能は説明されていません。そのため、品質設定を下げても、この作業に使える、予測可能な手順にはなりません。代わりに、エイリアシングを生成するよう明示的に設計されたプロセッサーを使います。品質設定。
Logic Proで制御可能な正弦波トーンを生成する
実験で追跡する入力周波数を1つにするため、まず正弦波を1つ用意します。複雑な波形では追跡する成分が増えてしまいます。
プロジェクトとチャンネルを設定する
新しいLogicプロジェクトでFile > Project Settings > Audioを選び、Sample Rateを48 kHzに設定します。実験中はこのプロジェクトレートを維持してください。Appleはこの設定をエフェクト処理とは別に説明しており、オーディオファイルを追加した後に変更しないよう勧めています。プロジェクトのサンプルレートを設定する。
Option-Command-Nでオーディオトラックを作成し、Audio、次にMic or Lineを選びます。エフェクトなしで始めるため、Load Default Patchの選択を解除します。Input MonitoringとRecord Enableはオフのままにし、メインのステレオ出力を選んでCreateをクリックします。音源は内部で生成します。Mac版Logic Proプロジェクトでトラックを作成する。
ジェネレーターを追加する
トラックのチャンネルストリップにある空のAudio Effectスロットをクリックし、Utility > Test Oscillatorを選びます。Test Toneを選択し、正弦波を選び、Frequencyをダブルクリックして7000を入力し、7,000 Hzのトーンにします。Levelは例示的な初期値として−18 dBに設定します。Appleのドキュメントによると、周波数は1 Hzから22 kHzの範囲で直接入力できます。Test Oscillatorのドキュメント。
Test Toneモードではジェネレーターが直ちに起動するため、信号の生成にMIDIノートや録音済みリージョンは必要ありません。Test Oscillatorをバイパスするとトーンが停止します。つまり、トランスポートを停止することは、ジェネレーターをオフにする方法としてドキュメントに記載されていません。Test Oscillatorのドキュメント。
意図的なエイリアシングを発生させるサンプルレート低減を適用する
次の空のエフェクトスロットでDistortion > Bitcrusherを選びます。ジェネレーターの出力がプロセッサーに送られるよう、Test Oscillatorの下に配置します。Logicのインサートエフェクトは直列に動作し、1つのプロセッサーの出力を次のプロセッサーに渡します。Bitcrusher; インサートエフェクト経由でオーディオをルーティングする。
サンプルレート低減に注目するため、以下の設定を初期値として使います。
| コントロール | 初期設定 | 目的 |
|---|---|---|
Drive |
0 dB |
入力ゲインの追加を避ける |
Resolution |
24 bits |
ビット深度による歪みを最小限にする |
Clip Level |
0 dB |
選んだトーンをクリッピングしきい値以下に保つ |
Mix |
100% |
処理後の信号だけを確認する |
Downsampling |
1xから始め、その後8xを選択 |
基準とレート低減後を比較する |
これらはAppleが説明するコントロールに基づいて提案した実験設定です。Bitcrusherのパラメーター。
Appleの定義では、1xは変更なし、2xは元のサンプルレートの半分、それより大きい係数はさらに分割します。ダウンサンプリングで再生速度やピッチが変わらないという説明は、速度変更の処理がないことを示しています。このエフェクトは、意図的にエイリアス周波数成分を生成します。Bitcrusherのドキュメント。
設定を変える前に折り返し周波数を予測する
例として、プロジェクトレートが48,000 Hzの場合、レートを8分の1にすると有効サンプルレートは6,000 Hz、ナイキスト境界は3,000 Hzになります。7,000 Hzの入力はこの境界を超えています。理想的な無フィルターサンプリングでは、対応するベースバンドのエイリアスは1,000 Hzです。有効サンプルレートを1回差し引くと、7000 − 6000 = 1000になります。これはAudacityの基礎ドキュメントで説明されているサンプリング境界を適用したものです。
同じ計算で設定の目安も得られます。
| ダウンサンプリング係数 | 有効レート | ナイキスト境界 | 7,000 Hz入力に対する理想的なベースバンド周波数 |
|---|---|---|---|
1x |
48,000 Hz | 24,000 Hz | 7,000 Hz |
2x |
24,000 Hz | 12,000 Hz | 7,000 Hz |
4x |
12,000 Hz | 6,000 Hz | 5,000 Hz |
8x |
6,000 Hz | 3,000 Hz | 1,000 Hz |
10x |
4,800 Hz | 2,400 Hz | 2,200 Hz |
これらは理想的なサンプリングに基づく計算上の予測であり、Appleの実装におけるすべてのスペクトル成分や振幅を示す仕様ではありません。4xの場合、入力は6,000 Hzの境界を1,000 Hz超えるため、5,000 Hzに折り返されます。10xの場合、4,800 Hzを差し引くと2,200 Hzが残り、新しい境界を下回ります。
実用上の選択基準は、プロセッサーの有効ナイキスト境界より高く、プロジェクトの元の境界より低い音源周波数を選ぶことです。この例では、7,000 Hzはプロジェクトの24,000 Hz境界より低く、8xの3,000 Hz境界より高くなります。そのため、音源生成と後続のエイリアシング処理を切り分けるのに適した入力です。
係数を変える間は音源周波数を固定してください。そうしないと、2つの変数が同時に変化し、結果の解釈が難しくなります。また、この表からも分かるように、低減係数を上げてもエイリアス周波数が一定して下がるとは限りません。折り返しはトーンと有効サンプルレートの関係によって決まります。
エフェクトを保存し、Audacityで確認する
File > Bounce > Project or Sectionを選びます。StartとEndで明示的に短い範囲を指定してください。録音済みリージョンがないことを再生時間の決定に利用しないでください。この実験ではRealtimeを使い、NormalizeをOffに設定し、Include Audio Tailの選択を解除します。Appleは、オーディオテールを含める設定が有効だと、テストオシレーターによってバウンスが過度に長くなる場合があると明示的に警告しています。プロジェクトをオーディオファイルにバウンスする。
現在のバウンスオプションでUncompressedを選び、WAVEを選択し、Sample Rateを48 kHzに設定して、ビット深度には24-bitを選びます。1つのステレオファイルにはInterleavedを使います。これらは出力ファイルの設定です。計算に使ったプロジェクトレートは維持してください。非圧縮バウンスのオプション。
Bitcrusherをバイパスした状態の基準ファイルと、提案した処理を有効にした状態のファイルをそれぞれ保存します。Logicでは、スロットまたはプラグインウインドウのヘッダーからプラグインをバイパスできます。また、プロジェクトのバウンスには有効なエフェクトが含まれます。両方のバージョンを残せるよう、異なるファイル名を付けてください。プラグインの追加、削除、移動、コピー; プロジェクトのバウンス。
各ファイルをAudacityで開き、ファイルの境界から離れた安定区間を選択して、Analyze > Plot Spectrumを選びます。両方のファイルでSpectrumアルゴリズムを使い、同じ設定にしてください。Sizeを大きくすると周波数分解能が向上します。Audacityが選択範囲が短すぎると表示した場合は、より長い範囲を選ぶか、サイズを小さくしてください。スペクトルをプロット。
計算した表を仮説として使い、基準ファイルの入力周波数のピークと、処理後のファイルに含まれる低周波数成分を比較します。表が予測するのは理想的なベースバンドの位置であり、プロセッサー出力全体ではないため、ピークが追加されても実験が自動的に無効になるわけではありません。波形の見た目だけでエイリアシングを判断するより、スペクトルを比較するほうが有益です。
結果がはっきりしない場合の確認項目
極端な設定を試す前に、信号経路を順に確認します。
- プロセッサーをバイパスした状態で、
Test Oscillatorが基準トーンを生成することを確認します。 - ジェネレーターがプロセッサーより前にあることを確認します。必要に応じて、プラグインをスロット間でドラッグします。
- 比較時にバイパスするのはプロセッサーだけにします。ジェネレーターをバイパスすると音源がなくなります。
- 両方のファイルで同じバウンス範囲と出力レートを使っていることを確認します。
Logicのドキュメントでは、プラグイン管理の手順でエフェクトの移動とバイパスについて説明しています。
波形生成を別途試すには、プロセッサーをバイパスし、Test OscillatorでSquare Waveを選択して、Anti Aliasedをオフにします。AppleはSquare WaveとNeedle Pulseについて、エイリアス版とアンチエイリアス版を明示的に用意しています。この切り替えはこれらの波形に適用されるもので、正弦波の生成やプロジェクトのリサンプリング全般に使うアンチエイリアス設定としては説明されていません。Test Oscillatorのドキュメント。
制御可能な折り返し計算と書き出したエフェクトが必要なら、正弦波をプロセッサーに通す手順を使います。エイリアス波形の生成を直接試したい場合は、オシレーターの波形オプションを使います。どちらの場合も、結果を再現してさらに編集できるよう、基準ファイルと設定をレンダリング済みファイルと一緒に保管してください。
出典
- デジタルオーディオの基礎 — Audacity。
- オーディオトラックのドロップダウンメニュー — Audacity。
- 品質設定 — Audacity。
- Mac版Logic Proでプロジェクトのサンプルレートを設定する — Apple。
- Mac版Logic Proプロジェクトでトラックを作成する — Apple。
- Mac版Logic ProのTest Oscillator — Apple。
- Mac版Logic ProのBitcrusher — Apple。
- Mac版Logic Proでインサートエフェクト経由でオーディオをルーティングする — Apple。
- Mac版Logic Proでプラグインを追加、削除、移動、コピーする — Apple。
- Mac版Logic Proでプロジェクトをオーディオファイルにバウンスする — Apple。
- Mac版Logic Proの非圧縮バウンスオプション — Apple。
- スペクトルをプロット — Audacity。