From 029d0adce28ed8b49fa2a898e2606dfa4029402f Mon Sep 17 00:00:00 2001 From: Benjamin McDonald Date: Fri, 29 Jul 2022 14:32:27 +1000 Subject: [PATCH] add warning and clipping for samples outside of int16 range in writefile --- scripts/pyaudio3dtools/audiofile.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py index d01d078245..46bb452082 100755 --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -107,6 +107,11 @@ def writefile(filename: str, x: np.ndarray, fs: int = 48000) -> None: """ _, file_extension = os.path.splitext(os.path.basename(filename)) + clipped_samples = np.sum(np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)) + if clipped_samples > 0: + print(" Warning: %i samples clipped"%clipped_samples) + x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max) + if file_extension == ".wav": x = x.astype(np.int16) wav.write(filename, fs, x) -- GitLab