<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-module/audiomixer/MixerVoice.h, branch encoding</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=encoding</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=encoding'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2020-01-16T16:48:38+00:00</updated>
<entry>
<title>Mixer: Rework for performance, particularly of the S16 case</title>
<updated>2020-01-16T16:48:38+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2020-01-12T17:02:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=449dbea4567dbc27a01ae695b9cebf776a6927f0'/>
<id>urn:sha1:449dbea4567dbc27a01ae695b9cebf776a6927f0</id>
<content type='text'>
This removes downscaling (halving-add) when multiple voices are
being mixed.  To avoid clipping, and get similar behavior to before,
set the "level" of each voice to (1/voice_count).

Slow paths that were applicable to only M0 chips were removed.

As a side effect, the internal volume representation is now 0 ..
0x8000 (inclusive), which additionally makes a level of exactly 0.5
representable.

Testing performed, on PyGamer: For all 4 data cases, for stereo and
mono, for 1 and 2 voices, play pure sign waves represented as
RawSamples and view the result on a scope and through headphones.
Also, scope the amount of time spent in background tasks.

Code size: growth of +272 bytes

Performance (time in background task when mixing 2 stereo 16-bit voices):
76us per down from 135us (once per ~2.9ms long term average)
(Decrease from 4.7% to 2.4% of all CPU time)
</content>
</entry>
<entry>
<title>move Mixer &amp; MixerVoice from 'audiocore' to 'audiomixer'</title>
<updated>2019-08-25T04:36:18+00:00</updated>
<author>
<name>sommersoft</name>
<email>sommersoft@gmail.com</email>
</author>
<published>2019-08-25T04:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=df5568d993ad10bb6ef68fc0f01f8561f3a6c78d'/>
<id>urn:sha1:df5568d993ad10bb6ef68fc0f01f8561f3a6c78d</id>
<content type='text'>
</content>
</entry>
</feed>
