Add reference curve overlays for FFT and octave spectrum#421
Open
Skeyelab wants to merge 31 commits into
Open
Conversation
Introduce unit tests for ring buffer, IEC metering, pitch tracker widget behavior, and splash settings; run them in GitHub Actions with coverage. Also adds dark palette fallback, configurable splash screen, dock settings Close buttons, and agent skills configuration for fork development. Co-authored-by: Cursor <cursoragent@cursor.com>
sounddevice fails to import without libportaudio2 on Ubuntu runners. Co-authored-by: Cursor <cursoragent@cursor.com>
Non-editable pip install runs site-packages code while coverage measures the checkout, reporting ~3% instead of ~15%. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep test-linux on push and pull_request; Windows, Linux AppImage, macOS, and release jobs are skipped until re-enabled. Co-authored-by: Cursor <cursoragent@cursor.com>
Add test suite, CI, and Linux UX improvements
Cover audioproc FFT sizing, level meter IEC mapping, ballistic peak hold behavior, and silent pitch input; raise CI coverage floor to 16%. Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce AudioHarness for pushing frames through AudioBuffer like production, cover levels/spectrum/octave widgets and settings bootstrap, exclude helpers from discovery, and raise CI coverage floor to 22%. Co-authored-by: Cursor <cursoragent@cursor.com>
Expand test suite with widget integration and core audio tests
Split PortAudio into portaudio_ingest adapter, add TestAudioIngest for tests, wire Analyzer and Settings through get_audio_ingest(), and keep AudioBackend() as a backward-compatible alias. Closes #2 Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce injectable audio ingest seam
Add DockAnalysisWidget protocol, RingBufferFrameReader for FFT docks, migrate spectrum and levels helpers, wire dock typing without ignores, and document test harness conventions. Closes #3 Co-authored-by: Cursor <cursoragent@cursor.com>
Formalize dock analysis widget protocol
Move smoothing state and spectrum math out of Spectrum_Widget into a pure numpy module with unit tests; widget becomes a thin QML adapter. Closes #4 Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract SpectrumFrameAnalyzer module
Inject InputDeviceCatalog into Settings_Dialog, move fatal no-device policy to Analyzer, and apply saved device selection on the ingest layer at startup. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Run Windows, Linux, and macOS builds plus artifact upload when a v* tag is pushed; keep PR and master pushes on test-linux only. Co-authored-by: Cursor <cursoragent@cursor.com>
Split settings from input device catalog
Release 0.55
Introduces a live peak/RMS dock widget, moves calibration onto Long-time levels, and darkens the default UI palette for low-light use. Co-authored-by: Cursor <cursoragent@cursor.com>
dB levels dock, calibration, and 0.56 release
App-wide offset and unit flow through sidebar meters, dB levels dock, long-term levels, and frequency widgets; calibration anchors RMS to a reference while peak stays ~3 dB higher on sine tones. Co-authored-by: Cursor <cursoragent@cursor.com>
Publish Windows and Linux artifacts when tag builds finish; macOS can attach later once a runner is available. Co-authored-by: Cursor <cursoragent@cursor.com>
Use a three-column grid with per-channel sizing so dual readouts fit without clipping. Co-authored-by: Cursor <cursoragent@cursor.com>
Release Windows/Linux artifacts without waiting for macOS
Global input calibration, mic cal files, per-dock overrides, and stereo dB levels layout fix.
Global calibration, mic cal files, and stereo dB levels layout fix. Co-authored-by: Cursor <cursoragent@cursor.com>
Release 0.57
Flat, pink, A-weighting, and house presets with a manual offset help compare live measurements against common targets during tuning. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #51
Test plan
PYTHONPATH=. python -B friture/test/runner.py(125/126 pass; dark palette test is env-specific)Made with Cursor