Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion AUDIODSP_PIN
Original file line number Diff line number Diff line change
Expand Up @@ -414,5 +414,23 @@
# promotions in the SVF handover (#264). audiosampler is a new module and
# touches no node that existed.
#
# Moved to f98eb17 on 2026-10-20, for audiosampler's 128-voice ceiling
# (audiodsp#289), so an instrument can ask the sampler for more than 64
# voices. Named by commit; no release carries it yet. What else moved
# beneath the components, by `git log 6db15e3..f98eb17 -- src`: audiosampler
# keeps its samples in a SampleBuffer outside the collected heap and fades
# a stopped or stolen voice over 5 ms; audiomixer passes a unity-level
# voice through unscaled, and on CPython scales any other in C (#273);
# synthio returns silence for a block where nothing sounds (#278);
# audioladder takes buffer_size; audiooscillator is new, and audiopump and
# audiometer change only their USB paths. audioecho.FeedbackDelay's loop
# shifter now searches a whole window for a splice that nothing near fits
# (audiodsp#284), but not on a fading repeat (audiodsp#290): #284 alone
# dropped PitchShifter's third repeat 19 dB at 22.05 kHz, -5 semitones and
# Feedback 0.3 (T3), and with #290 it reads 2.5 dB over its bar's
# reference, as it did before #284. The two `@options` rows in
# test_measure_effect_cost run the loop shifter on held material and move
# with #284; their digests are re-read there.
#
# <ref> <commit> -- ref is what CI installs (git+https://...@<ref>)
6db15e311a17ca83784f0276d326f98b77950b5f 6db15e311a17ca83784f0276d326f98b77950b5f
f98eb17695c1c1e64284a4ef1f2abee7f3cdeefa f98eb17695c1c1e64284a4ef1f2abee7f3cdeefa
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ there, and are recorded in its changelog.

### Changed

- The gates run against audiodsp f98eb17, where the sampler's voice ceiling
is 128, so a SoundFont pool built with `max_voice_count` above 64 gets the
voices it asks for. The loop shifter that `PitchShifter`'s feedback runs
through now searches further for a splice that fits a held chord
(audiodsp#246), but not on a fading repeat, so the repeats keep their
level (audiodsp#290).
- A SoundFont `Voices` pool makes its sampler with the voices it was asked
for, not the build's ceiling. Since audiodsp raised that ceiling to 128, a
48-voice pool held about 32 KB more heap on MicroPython (68 KB, from 36 KB)
Expand Down
7 changes: 5 additions & 2 deletions tests/test_measure_effect_cost.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,13 @@ def test_the_damping_row_turns_the_loop_low_pass_on(self):
# as a chord each change its bytes, and both together give these.
# Before v0.6.6 it was e7a07359012d7a8e, and 9e06dd6c5d8a2f38 with
# damping. The base and fb0.9 rows run no shifter and did not move.
# audiodsp#284, a splice that nothing near fits searching on out to
# a whole window, moved both again; they were 7dfa014ed463ea16 and
# 101319c53132701d before it.
options = digest("audioecho.FeedbackDelay@options")
self.assertEqual(options, "7dfa014ed463ea16")
self.assertEqual(options, "845477cccfdef016")
self.assertEqual(digest("audioecho.FeedbackDelay@options+damping"),
"101319c53132701d")
"181eec0ad19eae28")


class TheBesideRow(unittest.TestCase):
Expand Down
Loading