あなたが述べているように、公開されているドキュメントでは、浮動小数点に使用される範囲についての詳細は説明されていません。ただし、過去数年間の業界での実践と、浮動小数点ファイルとして存在する実際のデータから、これは有効な仮定であると言えます。
これには実用的な理由と、カラー、オーディオ、3D などの高精度データの正規化の非常に一般的な範囲があります。
範囲が [-1, 1] の範囲内にある主な理由は、ターゲット ビット範囲へのスケーリング/変換が高速かつ簡単であるためです。ターゲット範囲を指定して乗算するだけです。
例えば:
16ビットで再生したい場合は、次のようにします(疑似、整数の結果に丸められた符号付きを想定):
sample = in < 0 ? in * 0x8000 : in * 0x7fff;
または 24 ビット:
sample = in < 0 ? in * 0x800000 : in * 0x7fffff;
または 8 ビット:
sample = in < 0 ? in * 0x80 : in * 0x7f;
元の入力値を調整する必要はありません。-1 と 1 は、ターゲット (1x = x) に変換されるときの最小/最大値を表します。
[-0.5, 0.5] の範囲を使用した場合、最初に (またはある時点で) 入力値を調整する必要があるため、たとえば 16 ビットへの変換には追加の手順が必要になります。余分なステップだけでなく、計算が重い浮動小数点ドメインで作業する場合もあります (最近の浮動小数点処理は非常に高速であるため、後者はおそらく少し古い理由ですが、いずれにせよ)。
in = in * 2;
sample = in < 0 ? in * 0x8000 : in * 0x7fff;
事前にスケーリングされた範囲 ([-32768, 32767] など) ではなく [-1, 1] の範囲に保つことで、精度のためにより多くのビットを使用することもできます (IEEE 754 表現を使用)。
2017/07更新
テスト
コメントの質問に基づいて、1 秒の正弦波で 3 つのファイルを使用してテストを行い、トリプルチェックすることにしました。
A) クリップされた浮動小数点
B) 最大 0dB の浮動小数点、および
C) クリップされた整数 (A から変換)
次に、チャンクおよびサイズ フィールドの後に始まる正の値 <= -1.0 および >= 1.0 をスキャンしてdata
、最小/最大値がオーディオ データで見つかった実際の値を反映するようにします。
結果は、範囲が実際に [-1, 1] を含む範囲内にあることを確認します(クリッピングしていない場合(非真 <= 0 dB))。
しかし、それは別の側面も明らかにしました -
浮動小数点として保存された WAV ファイルでは、0 dB の範囲を超える値を使用できます。これは、通常はクリップする値の範囲が実際には [-1, 1] を超えていることを意味します。
これについての説明は、浮動小数点形式は、将来の処理 (ゲイン ステージング、圧縮、制限など) で (損失なしで) 値を戻すことができるダイナミック レンジの損失がほとんどないため、プロダクション セットアップでの中間使用を目的としている可能性があります。最終的かつ正常な -0.2 ~ 0 dB の範囲内に十分に収まる。したがって、値はそのまま保持されます。
結論は
浮動小数点を使用する WAV ファイルは、クリッピングされていない場合 (<= 0dB)、[-1, 1] の値を保存しますが、クリッピングされたと見なされる値は許可します
ただし、整数形式に変換すると、これらの値は、整数形式のビット範囲でスケーリングされた同等の [-1, 1] 範囲にクリップされます。これは、各幅が保持できる範囲が限られているため、当然のことです。
そのため、プレーヤー/DAW/編集ソフトウェアは、データを正規化するか、単に [-1, 1] にクリップして戻すことにより、クリップされた浮動小数点値を処理します。

注: すべてのファイルの最大値は、サンプル データから直接測定されます。

注: クリップされた浮動小数点 (+6 dB) として生成され、符号付き 16 ビットに変換されて浮動小数点に戻されます

注: +6 dB にクリッピング

注: +12 dB にクリップ
簡単なテスト スクリプトとファイルは、ここにあります。