<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-module/audiomixer, branch 5.1.0</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=5.1.0</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=5.1.0'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2020-01-20T20:08:56+00:00</updated>
<entry>
<title>Mixer: rename function based on review comment</title>
<updated>2020-01-20T20:08:56+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2020-01-20T20:06:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b4ddee2bb6ae40a73efe15e30de8d33ab9ce8011'/>
<id>urn:sha1:b4ddee2bb6ae40a73efe15e30de8d33ab9ce8011</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mixer: use MP_LIKELY macro instead of locally brewed one</title>
<updated>2020-01-20T20:08:32+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2020-01-20T20:08:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=982c63a71712fc9092b35fca3ef34e4b404c03cb'/>
<id>urn:sha1:982c63a71712fc9092b35fca3ef34e4b404c03cb</id>
<content type='text'>
</content>
</entry>
<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>mixer: factor out mix_one_voice</title>
<updated>2020-01-16T16:31:26+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2020-01-12T16:12:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e6869c8983ba732f77076242c86041aa77a047e0'/>
<id>urn:sha1:e6869c8983ba732f77076242c86041aa77a047e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>audiosample: convert to use a protocol</title>
<updated>2019-12-04T15:31:52+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2019-12-04T15:31:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=feb8eb935bd69ce855533bf9a4316e3025602c1a'/>
<id>urn:sha1:feb8eb935bd69ce855533bf9a4316e3025602c1a</id>
<content type='text'>
This eases addition of new sample sources, since the manual virtual
function dispatch functions are just calls via a protocol
</content>
</entry>
<entry>
<title>audiomixer: Supply constants in a way "-Og" optimization expects</title>
<updated>2019-09-09T02:18:15+00:00</updated>
<author>
<name>jepler</name>
<email>jepler@gmail.com</email>
</author>
<published>2019-09-09T02:17:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8768896d6b0ddb35568ad996781a33fd3a0df94f'/>
<id>urn:sha1:8768896d6b0ddb35568ad996781a33fd3a0df94f</id>
<content type='text'>
These arguments are constrained to be compile-time constants, a fact
that gcc complains about under "-Og" optimization, but not in normal
builds.  Declare them as enumerated types
</content>
</entry>
<entry>
<title>remove leftover debug print</title>
<updated>2019-09-04T03:25:27+00:00</updated>
<author>
<name>sommersoft</name>
<email>sommersoft@gmail.com</email>
</author>
<published>2019-09-04T03:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=edfcee29ff88faa35a75a979cb74ad64553289a6'/>
<id>urn:sha1:edfcee29ff88faa35a75a979cb74ad64553289a6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use more accurate ARMv7 prepocessor flags; TODOs for asm instructions</title>
<updated>2019-09-01T22:36:29+00:00</updated>
<author>
<name>sommersoft</name>
<email>sommersoft@gmail.com</email>
</author>
<published>2019-09-01T22:36:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=362c1664ae5979f288e8cb12d528f8cd44100410'/>
<id>urn:sha1:362c1664ae5979f288e8cb12d528f8cd44100410</id>
<content type='text'>
</content>
</entry>
<entry>
<title>include CMSIS instrinsic addition functions for M4; cleanup C math funcs</title>
<updated>2019-08-31T22:36:54+00:00</updated>
<author>
<name>sommersoft</name>
<email>sommersoft@gmail.com</email>
</author>
<published>2019-08-31T22:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3c7c3c98d7f497df33f0503162fb7b1721ef7ecd'/>
<id>urn:sha1:3c7c3c98d7f497df33f0503162fb7b1721ef7ecd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix 'audiomixer_mixer_reset_buffer'</title>
<updated>2019-08-25T14:33:23+00:00</updated>
<author>
<name>sommersoft</name>
<email>sommersoft@gmail.com</email>
</author>
<published>2019-08-25T14:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7f64af38cbd74b417b28e28e706dceb00e42b01b'/>
<id>urn:sha1:7f64af38cbd74b417b28e28e706dceb00e42b01b</id>
<content type='text'>
</content>
</entry>
</feed>
