Skip to content

Avoid overrunning osc table (#966); default num_voices to 1; let drums set their own oscs_per_voice.#967

Merged
dpwe merged 1 commit into
mainfrom
alloc_osc_block
Jul 24, 2026
Merged

Avoid overrunning osc table (#966); default num_voices to 1; let drums set their own oscs_per_voice.#967
dpwe merged 1 commit into
mainfrom
alloc_osc_block

Conversation

@dpwe

@dpwe dpwe commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

There was a bug in the code finding blocks of available oscs when allocating voices in patches_load_patch; code was reworked. Testing revealed that loading drum patches involved allocating twice, because the drum patches start by setting their own num_voices and oscs_per_voice. Made num_voices default to 1 if not specified (and if no existing value) in patches_load_patch. This simplifies loading drum patches to amy.send(synth=10, patch=384) etc. Updated documentation.

@github-actions

Copy link
Copy Markdown
Contributor

🎛️ AMY HW CI (AMYboard bench)

Flashed this PR's AMY (LoadTestChord: 6-voice Juno patch=1, one held note every 2 s) onto the physical AMYboard and measured the smoothed render load as the chord grows — back-to-back with the same sketch built at the PR's merge base, so Δ is this PR's own cost.

PASS — the bench ran the test to completion.

notes held main @ 0e0508c this PR Δ
1 1379 1377 -2
2 1548 1546 -2
3 2132 2135 +3
4 2323 2318 -5
5 2963 2963 +0
6 3161 3159 -2

Full chord settled render μs: 3158 (was 3159, Δ -0.0%) (peak 3166, 39 samples)

⬇️ Artifacts: serial log · load trace · report

Self-hosted bench (amyboardci). FAIL means only that the test could not run — the load values are informational, with no threshold and no audio compare. See tools/arduino_loadsweep/.

@dpwe
dpwe merged commit 6cebb32 into main Jul 24, 2026
12 checks passed
@bwhitman

Copy link
Copy Markdown
Collaborator

⛓️ tulipcc integration PR opened

This merge was pinned into tulipcc for full-system CI: shorepine/tulipcc#1230

Test it there and merge that PR to move tulipcc onto this AMY.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants