|
11 | 11 | playback_blocksize = 256 |
12 | 12 | latency = 0 |
13 | 13 | reading_blocksize = 1024 |
14 | | -reading_qsize = 16 # Number of blocks, has to be power of two |
| 14 | +rb_size = 16 # Number of blocks, has to be power of two |
15 | 15 |
|
16 | 16 | with sf.SoundFile(filename) as f: |
17 | 17 | with rtmixer.Mixer(channels=f.channels, |
18 | 18 | blocksize=playback_blocksize, |
19 | 19 | samplerate=f.samplerate, latency=latency) as m: |
20 | 20 | elementsize = f.channels * m.samplesize |
21 | | - q = rtmixer.RingBuffer(elementsize, reading_blocksize * reading_qsize) |
| 21 | + rb = rtmixer.RingBuffer(elementsize, reading_blocksize * rb_size) |
22 | 22 | # Pre-fill ringbuffer: |
23 | | - _, buf, _ = q.get_write_buffers(reading_blocksize * reading_qsize) |
| 23 | + _, buf, _ = rb.get_write_buffers(reading_blocksize * rb_size) |
24 | 24 | written = f.buffer_read_into(buf, dtype='float32') |
25 | | - q.advance_write_index(written) |
26 | | - action = m.play_ringbuffer(q) |
| 25 | + rb.advance_write_index(written) |
| 26 | + action = m.play_ringbuffer(rb) |
27 | 27 | while True: |
28 | | - while q.write_available < reading_blocksize: |
| 28 | + while rb.write_available < reading_blocksize: |
29 | 29 | if action not in m.actions: |
30 | 30 | break |
31 | 31 | sd.sleep(int(1000 * reading_blocksize / f.samplerate)) |
32 | 32 | if action not in m.actions: |
33 | 33 | break |
34 | | - size, buf1, buf2 = q.get_write_buffers(reading_blocksize) |
| 34 | + size, buf1, buf2 = rb.get_write_buffers(reading_blocksize) |
35 | 35 | assert not buf2 |
36 | 36 | written = f.buffer_read_into(buf1, dtype='float32') |
37 | | - q.advance_write_index(written) |
| 37 | + rb.advance_write_index(written) |
38 | 38 | if written < size: |
39 | 39 | break |
40 | 40 | m.wait(action) |
|
0 commit comments