<div><h3id="writeframestowavfile">Write Frames to WAV File</h3><pre><codeclass="python language-python hljs"><spanclass="hljs-function"><spanclass="hljs-keyword">def</span><spanclass="hljs-title">write_to_wav_file</span><spanclass="hljs-params">(filename, frames_int, mono=True)</span>:</span>
frames_short = (struct.pack(<spanclass="hljs-string">'<h'</span>, a) <spanclass="hljs-keyword">for</span> a <spanclass="hljs-keyword">in</span> frames_int)
file.writeframes(<spanclass="hljs-string">b''</span>.join(get_bytes(a) <spanclass="hljs-keyword">for</span> a <spanclass="hljs-keyword">in</span> frames_float))
</code></pre></div>
<div><h3id="examples-1">Examples</h3><div><h4id="savesasinewavetoamonowavfile">Saves a sine wave to a mono WAV file:</h4><pre><codeclass="python language-python hljs"><spanclass="hljs-keyword">from</span> math <spanclass="hljs-keyword">import</span> pi, sin
frames_f = (sin(i * <spanclass="hljs-number">2</span> * pi * <spanclass="hljs-number">440</span> / <spanclass="hljs-number">44100</span>) <spanclass="hljs-keyword">for</span> i <spanclass="hljs-keyword">in</span> range(<spanclass="hljs-number">100000</span>))
frames_i = (int(a * <spanclass="hljs-number">30000</span>) <spanclass="hljs-keyword">for</span> a <spanclass="hljs-keyword">in</span> frames_f)
<div><h4id="addsnoisetoamonowavfile">Adds noise to a mono WAV file:</h4><pre><codeclass="python language-python hljs"><spanclass="hljs-keyword">from</span> random <spanclass="hljs-keyword">import</span> randint
add_noise = <spanclass="hljs-keyword">lambda</span> value: max(<spanclass="hljs-number">-32768</span>, min(<spanclass="hljs-number">32767</span>, value + randint(<spanclass="hljs-number">-500</span>, <spanclass="hljs-number">500</span>)))
frames_i = (add_noise(a) <spanclass="hljs-keyword">for</span> a <spanclass="hljs-keyword">in</span> read_wav_file(<spanclass="hljs-string">'test.wav'</span>))
<div><h4id="addsnoisetoamonowavfile">Adds noise to a mono WAV file:</h4><pre><codeclass="python language-python hljs"><spanclass="hljs-keyword">from</span> random <spanclass="hljs-keyword">import</span> random
add_noise = <spanclass="hljs-keyword">lambda</span> value: max(<spanclass="hljs-number">-1</span>, min(<spanclass="hljs-number">1</span>, value + (random()<spanclass="hljs-number">-0.5</span>)*<spanclass="hljs-number">0.03</span>))
frames_f = (add_noise(a) <spanclass="hljs-keyword">for</span> a <spanclass="hljs-keyword">in</span> read_wav_file(<spanclass="hljs-string">'test.wav'</span>))