Skip to content

engine/audio: configurable spectrum grid for Audio Triggers#2036

Open
Ximerixx wants to merge 1 commit into
mcallegari:masterfrom
Ximerixx:feature/audio-triggers-spectrum-grid
Open

engine/audio: configurable spectrum grid for Audio Triggers#2036
Ximerixx wants to merge 1 commit into
mcallegari:masterfrom
Ximerixx:feature/audio-triggers-spectrum-grid

Conversation

@Ximerixx
Copy link
Copy Markdown

Summary

  • Add spectrumgrid utility with LogUniform (legacy ln f bands) and SemiLogPreferred (1-2-5 decade grid with merge/split to N bands).
  • Extend AudioCapture band registry by grid mode and low-band emphasis (gamma 1.0–4.0); raise max spectrum bands to 64.
  • Partition FFT bins without overlap between bands to fix identical adjacent bar levels (“shelves”) when band Hz width is below FFT resolution.
  • VC Audio Triggers (Qt Widgets + QML): grid mode, emphasis, Hz labels, variable bar widths, XML persistence.
  • Unit tests: engine/test/spectrumgrid/.
  • translate.sh: find lrelease/lupdate under /usr/lib/qt6/bin on Debian/Ubuntu.

Test plan

  • engine/test/spectrumgrid/spectrumgrid_test (7 tests)
  • make check / ./unittest.sh ui (Linux)
  • Manual: Audio Triggers with 64 bars, semi-log grid, emphasis 1.5–2.0; verify no flat shelves on music
  • QLC+ 5: qlcplus-qml, same properties in VCAudioTriggers

Notes

  • Online docs for new options are not included (see CONTRIBUTING.md — can follow up in qlcplus-docs).
  • Linear 10–20 kHz tail in semi-log activates only when SPECTRUM_MAX_FREQUENCY exceeds 10 kHz (still 5 kHz today).

Made with Cursor

Add spectrumgrid with uniform log and 1-2-5 semi-log band partitioning,
extend AudioCapture registration by grid mode and low-band emphasis (up
to 64 bands), and partition FFT bins exclusively to avoid duplicate bar
levels. Expose grid mode and emphasis in VC Audio Triggers (widgets and
QML), variable bar widths from Hz edges, and spectrumgrid unit tests.
translate.sh: locate lrelease/lupdate on Debian Qt paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant