Repository navigation
fix(control): keep OSC input up across config pushes, repair the OSCQuery tree - #741
Merged
Merged
Conversation
…uery tree - Every config push (slider drags, and the push after each incoming OSC message) restarted the UDP listeners, the OSCQuery HTTP server and the mDNS announcement. Measured on an isolated copy: the message counter reset to 0 on every push, 3 of 30 OSCQuery requests were refused during 30 pushes and 10 mDNS announcements went out. syncOscServer now keys on the UDP and OSCQuery ports; the panel's explicit sync still forces a restart. After: counter climbs, 30/30 requests answered, no announcements. - The /visualizer and /background leaves overwrote the branches of the same name, so 12 of 51 OSCQuery addresses were missing (visualizer and background sliders, GET /cayadev/visualizer/glow returned 404). A node now keeps both its value and its contents. - GET /constructor (any inherited name) resolved to a function, could not be serialised and threw in the main process; the request hung. Lookups use own properties and an unserialisable body answers 404. - Master opacity laid a black veil over transparent windows. On a transparent background the page itself now fades. - The preview drew an extra frame on every config change while its loop was already drawing; drawOnce now only runs when the loop is paused. - Panel and README note that levels, hits and analysis need an open output. Refs #695 Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.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.
Pre-release review of the OSC work merged since #729 (#733, #735–#740). Everything below was measured on an isolated copy (temporary userData; lights, MCP and stream off) with a UDP sender, an HTTP client and an mDNS listener.
Restart on every config push
applyIncomingConfigcallssyncOscServer()on every push. That includes slider drags and the push the panel makes after each incoming OSC message.The rewritten
osc-server.start()andosc-query.start()always tear down and rebuild. Every push rebound the UDP v4 and v6 sockets, restarted the OSCQuery HTTP server and re-announced mDNS.Results over 30 pushes:
syncOscServernow keys on the UDP and OSCQuery ports. Prefix and mappings are read live and need no restart. A port that failed to bind is not retried on every push; the panel'sosc:sync(port field, toggle) forces a restart.OSCQuery tree lost 12 of 51 addresses
/visualizerand/backgroundvalue leaves overwrote the branches of the same name. All visualizer and background sliders were missing, andGET /cayadev/visualizer/glowreturned 404.GET /constructorthrew in the main processJSON.stringifyreturnedundefined.Buffer.byteLengththen threw; the fault guard logged it and the request hung.0.0.0.0, so any LAN host could trigger this.osc-mdnsanswer/questionsandparsePacketthrew nothing.Master opacity on a transparent background
Preview double render
drawOnceran a full stack render on everysetConfigwhile the rAF loop was also drawing. It now draws only when the loop is paused, which is the case it was added for.Docs
/levelwas 0/s and the clock about 15/s. With a screen open,/leveland/spectrumwere about 22/s.Tests:
tests/osc-release-review.test.jshas 7 tests. All 7 fail on main and pass here. Full suite 2993/2993; smoke PASS with the userData checksum unchanged.Refs #695