Skip to content

feat: rework audio engine, simplify UI, add CI#5

Merged
fxwiegand merged 1 commit into
mainfrom
improvements
Jun 28, 2026
Merged

feat: rework audio engine, simplify UI, add CI#5
fxwiegand merged 1 commit into
mainfrom
improvements

Conversation

@fxwiegand

Copy link
Copy Markdown
Contributor

Reworks the firmware and adds CI.

  • Audio: render on core1 paced by the I2S DMA buffer (no more timer ISR), soft-clip with headroom, precomputed gain, attack ramps. Fixes a few latent bugs (constrain no-ops, interpolation reading past the sample, off-by-one loops).
  • UI: four encoder pages (select / sample / volume / pitch) with per-channel LED feedback and a 10s trigger-activity screensaver. Sample, pitch, volume and CV assignment now persist to flash.
  • Build: encoder direction and sound kit are compile-time options. CI builds every kit for both encoder directions; release-please handles versioning and attaches the firmware to releases.

Audio:
- render on core1 paced by the I2S DMA buffer instead of a timer ISR
- soft-clip the mix for headroom, precompute per-voice gain, ramp attacks
- fix constrain() no-ops, the interpolation read past the sample end and
  the off-by-one LED and trigger loop bounds

UI:
- four encoder pages: select, sample, volume, pitch
- per-channel LED colours with a 10s trigger-activity screensaver
- save sample, pitch, volume and CV assignment to flash
- encoder direction and sound kit are build-time options

CI:
- matrix build of every kit for normal and reversed encoders
- release-please for versioning and releases
@fxwiegand fxwiegand merged commit d3c88b5 into main Jun 28, 2026
24 checks passed
@poetaster

Copy link
Copy Markdown
Collaborator

Nice work!

@poetaster

Copy link
Copy Markdown
Collaborator

I had one question. Do we have the xfmt (mute) pin on a gpio? I'm using it to keep the noise down on marvelous using the mute on the pcm5012a.

@poetaster

Copy link
Copy Markdown
Collaborator

Sigh, just looked at the schematic and it's grounded out. Hmmm. version 2 :)

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