Repository navigation
firmware, tools: the audio path reworked — /audio-in as a console page, partial saves, an extension that holds - #475
Merged
Merged
Conversation
…e, partial saves, an extension that holds and says what is happening Audio edition and the audio extension only; the firmware core, the console chrome and the other editions are untouched. /audio-in - The page is a console page: light by default, the console's parts, a Sources list that says who has the knobs (microphone listening, off, not fitted; extension or phone app), knobs named K1..K4, dB and Hz on the axes. - It reads the panel's mapping before it can write, and an edit posts only the field that changed, one request in flight. A failed read can no longer be followed by an edit that overwrites four bands. - The cursor, level line and readout show what the knob gets. - Levels ride the console's PF.poll lane instead of a private loop. - The builder only assembles (the adapter, CSS and bar are real files), strips comments, and --check gates the stamped page at 17.5 KB gzip: 17.2 KB now, 19.9 before. features/audio_in, features/audio - POST /api/audio-in applies a band's field when any of that band's fields is present; reset takes band=N; reset-all includes attack. - A microphone that is not available cannot drive the knobs; nan arguments are refused. The d= message and every documented field stay. tools/patternflow-audio-extension (0.2.0) - One mapping model (mapping.js) shared by popup, offscreen and editor. - The steady value is resent, so a silent or paused tab holds the knobs at rest instead of releasing the lanes after 500 ms. - Live means the panel is being driven: Audio-React off, a silent tab, a closed tab, a wrong address and a panel without the Audio edition each say so. New installs start in Auto range with the Smooth curve. - The editor works down to a half-screen window and a phone, Preview no longer covers what it demonstrates. console_serve.py answers the audio endpoints with switchable states (/mock?audio=music|silence|off|fresh|nomic|stalled|phone|ext|noread) and assembles /audio-in live. Checked: build.sh all, the footprint pins, the console and source checks; on a panel with the microphone (mapping kept across the update, one-field save, unchanged frame time) and with the real extension against it (hold through silence, Aud off, Stop). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
This branch was successfully deployed
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.
The whole audio path: the browser extension, the
/audio-inconsole page, and the two audio features. Only the Audio edition and the extension change. The firmware core, the console chrome and the other editions are untouched.It started from an audit (five reviewers, about 80 findings) that came down to three causes:
/audio-incould not be developed like a console page (no mock endpoints; CSS and JS inside Python strings), which is how it missed the light redesign./audio-in
PF.pollinstead of a private loop.--checkgates the page at 17.5 KB gzip: 17.2 KB now, 19.9 before.Firmware (features/audio_in, features/audio)
POST /api/audio-inapplies a band's field when any of that band's fields is posted.resettakesband=N.nanarguments are refused.d=message and every status field stay.Extension 0.2.0
mapping.js.Dev server
console_serve.pyanswers the audio endpoints with switchable states (/mock?audio=music|silence|off|fresh|nomic|stalled|phone|ext|noread) and assembles/audio-inlive.Checked
build.sh all(five compositions),check_footprint.py,console_pages.py check(with the size gate),check_sources.py,check_boundaries.py.attack=0.645alone and held across a reload.Not checked
/audio-in(touch was emulated).Left as is, on purpose
docs/audio-ws-spec.mdand not fixed here.🤖 Generated with Claude Code