Skip to content

Commit b147b3b

Browse files
committed
Audio
1 parent 7a2574d commit b147b3b

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2340,7 +2340,7 @@ rotation=<int>|<datetime.timedelta>|<datetime.time>|<str>
23402340
* **`'<str>'` - Any of above as a string: `'100 MB'`, `'1 month'`, `'monday at 12:00'`, ...**
23412341

23422342
### Retention
2343-
**Sets a condition which old log files are deleted.**
2343+
**Sets a condition which old log files get deleted.**
23442344
```python
23452345
retention=<int>|<datetime.timedelta>|<str>
23462346
```
@@ -2613,7 +2613,7 @@ from PIL import Image
26132613
<tuple/int> = <Image>.getpixel((x, y)) # Returns a pixel.
26142614
<Image>.putpixel((x, y), <tuple/int>) # Writes a pixel to image.
26152615
<ImagingCore> = <Image>.getdata() # Returns a sequence of pixels.
2616-
<Image>.putdata(<list/tuple>) # Writes a sequence of pixels.
2616+
<Image>.putdata(<list/tuple/ImagingCore>) # Writes a sequence of pixels.
26172617
<Image>.paste(<Image>, (x, y)) # Writes an image to image.
26182618
```
26192619

@@ -2629,9 +2629,9 @@ from PIL import Image
26292629
```python
26302630
WIDTH, HEIGHT = 100, 100
26312631
size = WIDTH * HEIGHT
2632-
hue = [255 * i/size for i in range(size)]
2632+
hues = [255 * i/size for i in range(size)]
26332633
img = Image.new('HSV', (WIDTH, HEIGHT))
2634-
img.putdata([(int(h), 255, 255) for h in hue])
2634+
img.putdata([(int(h), 255, 255) for h in hues])
26352635
img.convert('RGB').save('test.png')
26362636
```
26372637

@@ -2723,7 +2723,7 @@ nframes = <Wave_read>.getnframes() # Number of frames.
27232723
+-----------+-------------+------+-------------+
27242724
```
27252725

2726-
### Read Float Frames from WAV File
2726+
### Read Float Samples from WAV File
27272727
```python
27282728
def read_wav_file(filename):
27292729
def get_int(a_bytes):
@@ -2732,13 +2732,13 @@ def read_wav_file(filename):
27322732
with wave.open(filename, 'rb') as file:
27332733
frames = file.readframes(file.getnframes())
27342734
width = file.getsampwidth()
2735-
chunks = (frames[i: i + width] for i in range(0, len(frames), width))
2736-
return [get_int(a) / pow(2, width * 8 - 1) for a in chunks]
2735+
samples = (frames[i: i + width] for i in range(0, len(frames), width))
2736+
return [get_int(a) / pow(2, width * 8 - 1) for a in samples]
27372737
```
27382738

2739-
### Write Float Frames to WAV File
2739+
### Write Float Samples to WAV File
27402740
```python
2741-
def write_to_wav_file(filename, frames_float, nchannels=1, sampwidth=2, framerate=44100):
2741+
def write_to_wav_file(filename, float_samples, nchannels=1, sampwidth=2, framerate=44100):
27422742
def get_bytes(a_float):
27432743
a_float = max(-1, min(1 - 2e-16, a_float))
27442744
a_float += sampwidth == 1
@@ -2748,7 +2748,7 @@ def write_to_wav_file(filename, frames_float, nchannels=1, sampwidth=2, framerat
27482748
file.setnchannels(nchannels)
27492749
file.setsampwidth(sampwidth)
27502750
file.setframerate(framerate)
2751-
file.writeframes(b''.join(get_bytes(a) for a in frames_float))
2751+
file.writeframes(b''.join(get_bytes(a) for a in float_samples))
27522752
```
27532753

27542754
### Examples
@@ -2762,7 +2762,7 @@ write_to_wav_file('test.wav', frames_f)
27622762
#### Adds noise to a mono WAV file:
27632763
```python
27642764
from random import random
2765-
add_noise = lambda value: value + (random()-0.5) * 0.03
2765+
add_noise = lambda value: value + (random() - 0.5) * 0.03
27662766
frames_f = (add_noise(a) for a in read_wav_file('test.wav'))
27672767
write_to_wav_file('test.wav', frames_f)
27682768
```

index.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2022,7 +2022,7 @@
20222022
<li><strong><code class="python hljs"><span class="hljs-string">'&lt;time&gt;'</span></code> - Time of day.</strong></li>
20232023
<li><strong><code class="python hljs"><span class="hljs-string">'&lt;str&gt;'</span></code> - Any of above as a string: <code class="python hljs"><span class="hljs-string">'100 MB'</span></code>, <code class="python hljs"><span class="hljs-string">'1 month'</span></code>, <code class="python hljs"><span class="hljs-string">'monday at 12:00'</span></code>, …</strong></li>
20242024
</ul>
2025-
<div><h3 id="retention">Retention</h3><p><strong>Sets a condition which old log files are deleted.</strong></p><pre><code class="python language-python hljs">retention=&lt;int&gt;|&lt;datetime.timedelta&gt;|&lt;str&gt;
2025+
<div><h3 id="retention">Retention</h3><p><strong>Sets a condition which old log files get deleted.</strong></p><pre><code class="python language-python hljs">retention=&lt;int&gt;|&lt;datetime.timedelta&gt;|&lt;str&gt;
20262026
</code></pre></div>
20272027

20282028

@@ -2228,7 +2228,7 @@
22282228
<pre><code class="python language-python hljs">&lt;tuple/int&gt; = &lt;Image&gt;.getpixel((x, y)) <span class="hljs-comment"># Returns a pixel.</span>
22292229
&lt;Image&gt;.putpixel((x, y), &lt;tuple/int&gt;) <span class="hljs-comment"># Writes a pixel to image.</span>
22302230
&lt;ImagingCore&gt; = &lt;Image&gt;.getdata() <span class="hljs-comment"># Returns a sequence of pixels.</span>
2231-
&lt;Image&gt;.putdata(&lt;list/tuple&gt;) <span class="hljs-comment"># Writes a sequence of pixels.</span>
2231+
&lt;Image&gt;.putdata(&lt;list/tuple/ImagingCore&gt;) <span class="hljs-comment"># Writes a sequence of pixels.</span>
22322232
&lt;Image&gt;.paste(&lt;Image&gt;, (x, y)) <span class="hljs-comment"># Writes an image to image.</span>
22332233
</code></pre>
22342234
<div><h3 id="modes-1">Modes</h3><ul>
@@ -2239,9 +2239,9 @@
22392239
<li><strong><code class="python hljs"><span class="hljs-string">'HSV'</span></code> - 3x8-bit pixels, Hue, Saturation, Value color space.</strong></li>
22402240
</ul><div><h3 id="examples">Examples</h3><div><h4 id="createsapngimageofarainbowgradient">Creates a PNG image of a rainbow gradient:</h4><pre><code class="python language-python hljs">WIDTH, HEIGHT = <span class="hljs-number">100</span>, <span class="hljs-number">100</span>
22412241
size = WIDTH * HEIGHT
2242-
hue = [<span class="hljs-number">255</span> * i/size <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(size)]
2242+
hues = [<span class="hljs-number">255</span> * i/size <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(size)]
22432243
img = Image.new(<span class="hljs-string">'HSV'</span>, (WIDTH, HEIGHT))
2244-
img.putdata([(int(h), <span class="hljs-number">255</span>, <span class="hljs-number">255</span>) <span class="hljs-keyword">for</span> h <span class="hljs-keyword">in</span> hue])
2244+
img.putdata([(int(h), <span class="hljs-number">255</span>, <span class="hljs-number">255</span>) <span class="hljs-keyword">for</span> h <span class="hljs-keyword">in</span> hues])
22452245
img.convert(<span class="hljs-string">'RGB'</span>).save(<span class="hljs-string">'test.png'</span>)
22462246
</code></pre></div></div></div>
22472247

@@ -2320,18 +2320,18 @@
23202320
+-----------+-------------+------+-------------+
23212321
</code></pre></div>
23222322

2323-
<div><h3 id="readfloatframesfromwavfile">Read Float Frames from WAV File</h3><pre><code class="python language-python hljs"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">read_wav_file</span><span class="hljs-params">(filename)</span>:</span>
2323+
<div><h3 id="readfloatsamplesfromwavfile">Read Float Samples from WAV File</h3><pre><code class="python language-python hljs"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">read_wav_file</span><span class="hljs-params">(filename)</span>:</span>
23242324
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_int</span><span class="hljs-params">(a_bytes)</span>:</span>
23252325
an_int = int.from_bytes(a_bytes, <span class="hljs-string">'little'</span>, signed=width!=<span class="hljs-number">1</span>)
23262326
<span class="hljs-keyword">return</span> an_int - <span class="hljs-number">128</span> * (width == <span class="hljs-number">1</span>)
23272327
<span class="hljs-keyword">with</span> wave.open(filename, <span class="hljs-string">'rb'</span>) <span class="hljs-keyword">as</span> file:
23282328
frames = file.readframes(file.getnframes())
23292329
width = file.getsampwidth()
2330-
chunks = (frames[i: i + width] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">0</span>, len(frames), width))
2331-
<span class="hljs-keyword">return</span> [get_int(a) / pow(<span class="hljs-number">2</span>, width * <span class="hljs-number">8</span> - <span class="hljs-number">1</span>) <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> chunks]
2330+
samples = (frames[i: i + width] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">0</span>, len(frames), width))
2331+
<span class="hljs-keyword">return</span> [get_int(a) / pow(<span class="hljs-number">2</span>, width * <span class="hljs-number">8</span> - <span class="hljs-number">1</span>) <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> samples]
23322332
</code></pre></div>
23332333

2334-
<div><h3 id="writefloatframestowavfile">Write Float Frames to WAV File</h3><pre><code class="python language-python hljs"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">write_to_wav_file</span><span class="hljs-params">(filename, frames_float, nchannels=<span class="hljs-number">1</span>, sampwidth=<span class="hljs-number">2</span>, framerate=<span class="hljs-number">44100</span>)</span>:</span>
2334+
<div><h3 id="writefloatsamplestowavfile">Write Float Samples to WAV File</h3><pre><code class="python language-python hljs"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">write_to_wav_file</span><span class="hljs-params">(filename, float_samples, nchannels=<span class="hljs-number">1</span>, sampwidth=<span class="hljs-number">2</span>, framerate=<span class="hljs-number">44100</span>)</span>:</span>
23352335
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_bytes</span><span class="hljs-params">(a_float)</span>:</span>
23362336
a_float = max(<span class="hljs-number">-1</span>, min(<span class="hljs-number">1</span> - <span class="hljs-number">2e-16</span>, a_float))
23372337
a_float += sampwidth == <span class="hljs-number">1</span>
@@ -2341,7 +2341,7 @@
23412341
file.setnchannels(nchannels)
23422342
file.setsampwidth(sampwidth)
23432343
file.setframerate(framerate)
2344-
file.writeframes(<span class="hljs-string">b''</span>.join(get_bytes(a) <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> frames_float))
2344+
file.writeframes(<span class="hljs-string">b''</span>.join(get_bytes(a) <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> float_samples))
23452345
</code></pre></div>
23462346

23472347
<div><h3 id="examples-1">Examples</h3><div><h4 id="savesasinewavetoamonowavfile">Saves a sine wave to a mono WAV file:</h4><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> pi, sin
@@ -2351,7 +2351,7 @@
23512351

23522352

23532353
<div><h4 id="addsnoisetoamonowavfile">Adds noise to a mono WAV file:</h4><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> random <span class="hljs-keyword">import</span> random
2354-
add_noise = <span class="hljs-keyword">lambda</span> value: value + (random()<span class="hljs-number">-0.5</span>) * <span class="hljs-number">0.03</span>
2354+
add_noise = <span class="hljs-keyword">lambda</span> value: value + (random() - <span class="hljs-number">0.5</span>) * <span class="hljs-number">0.03</span>
23552355
frames_f = (add_noise(a) <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> read_wav_file(<span class="hljs-string">'test.wav'</span>))
23562356
write_to_wav_file(<span class="hljs-string">'test.wav'</span>, frames_f)
23572357
</code></pre></div>

0 commit comments

Comments
 (0)