Audacityを使っていると、オシロスコープのように波形の周期や立ち上がり(トランジェント)など、微細な時間的変化を測定したくなる場面があります。
しかし、Audacityでは画面上の表示だけでは 1ms未満の時間精度で測定することはできません。 そこで代わりに、サンプル数を用いてサンプリング周波数から時間を換算する方法が有効だと考えました。
当初は、音源ファイルのサンプリング周波数(例:192kHz)を基に、サンプル数から時間を計算していました。しかし、実際の時間と大きなズレがあり、試行錯誤の末、Audacityが表示するサンプル数は、環境設定にある「プロジェクトのサンプリング周波数」に依存していることが分かりました。
つまり、時間長さを正しく測定するには、ソースのサンプリング周波数ではなく、Audacityの環境設定の「プロジェクトレート」を基準に計算する必要があるのです。
この記事では、Audacity上でサンプル数を使って波形の周期や1ms未満の微小な時間長さを正確に測定する方法を、具体的に紹介します。
なお、使用環境は、Audacity 3.5.1 及び macOS 15.5 です。
サンプル数について
下部ツールバードック領域にある「選択ツールバー」でサンプル数表示を選択できます。 通常は、時間表示で使用しますが、1ms未満を測定するためには、下の赤丸で示す▼矢印から「サンプル」を選びます。 このサンプル数は、時間測定したい波形部分を選択しドラッグすると、サンプル数が増減します。
Audacity は読み込んだ音声ファイルを 自動的にプロジェクトレートに切り替らず、表示・計測はプロジェクトレートに従う仕様です。 このため、実際のサンプリング周波数と表示上のサンプル数が一致しない状況が発生します。
注意‼️
この、サンプル数は、ソースのサンプリング周波数で無く、次に説明する環境設定で指定されるプロジェクトのサンプリング周波数に依存するので注意を要します。
プロジェクトのサンプリング周波数の設定
Audacityの環境設定を開き、下の赤枠で示す 「プロジェクトのサンプリング周波数(以下プロジェクトレートと言う)」を設定します。
では、サンプル数から選択時間を求めてみます
時間幅を測るための手順
- [設定] → [品質]**でプロジェクトレートをソース音源のサンプリング周波数と同じにする
- 時間計算 = [サンプル数] ÷ [プロジェクトレート] で行う
時間計算は、例えばプロジェクトレートが192khzなら、[サンプル数] / 192 でms単位の時間になる。 つまり、測定できる最小値は 1サンプル / 192 = 0.00520833ms ≒ 5.2usになります。
1khz 正弦波 周期時間の測定
スクラッチノイズ幅の測定
ココがポイント