Skip to content

Add extra OSC destination (second host:port) - #4

Draft
harrrisbc wants to merge 13 commits into
mainfrom
cursor/gui-standalone-app-5a6a
Draft

Add extra OSC destination (second host:port)#4
harrrisbc wants to merge 13 commits into
mainfrom
cursor/gui-standalone-app-5a6a

Conversation

@harrrisbc

Copy link
Copy Markdown
Owner

Summary

Adds a second OSC destination that fans out the same controller mapping to another host:port.

  • YAML: osc.extra.enabled / host / port
  • GUI: OSC extra + Extra host / Extra port
  • CLI: --osc2, --osc2-host, --osc2-port, --no-osc2
  • Extra dest can run even if primary OSC is off

Also includes post-merge fixes already on this branch (Mac freeze, Windows MeterBar _w crash, clone/build scripts).

Usage

python stickosc.py --osc2 --osc2-host 192.168.1.20 --osc2-port 8000

Test plan

  • python3 tools/test_osc_bridge.py
  • layout / MIDI tests
  • GUI extra dest + two OSC listeners
Open in Web Open in Cursor 

cursoragent and others added 13 commits August 21, 2026 03:17
Map Xbox buttons to MIDI notes and sticks/triggers/D-pad to CCs
via mapping.yaml, with CLI flags to enable MIDI, choose port/channel,
and a small offline bridge test plus midi_listen helper.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Introduce xbox/ps5 joystick index profiles, name-based layout detection,
--layout override, and docs/tests so DualSense pads map to the same
logical OSC/MIDI controls as Xbox.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Extract StickEngine for shared CLI/GUI use, add a tkinter control
window (--gui), and Mac/Windows build scripts plus a PyInstaller spec.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Add a dedicated stickosc.macos.spec (onedir + BUNDLE) and rewrite
tools/build_mac.sh to create a venv, build dist/StickOSC.app, and
print clear open/install steps for Gatekeeper.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Provide tools/clone_and_build_mac.sh so a Mac can git clone the GUI
branch into ~/stickosc and run the StickOSC.app build in one step.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Prefer Python 3.9–3.13 (especially 3.12), recreate incompatible
venvs, and document brew install python@3.12 so pygame installs
from wheels instead of compiling without SDL.h.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Provide build_win.bat with Python 3.9–3.13 detection/venv, plus
clone_and_build_win.bat and a PowerShell one-shot helper mirroring
the Mac flow.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Drive StickEngine from the tkinter main thread via begin/poll/end,
force dummy SDL video/audio before pygame loads, and avoid background
pygame threads that beachball StickOSC.app on Mac.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Avoid subclassing tk.Canvas and calling delete() during __init__,
which raises TclError invalid command name \"180\" on Windows
PyInstaller builds. Use a Frame+Canvas composition instead.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Renamed bar size attrs away from tkinter's reserved self._w path
name, which caused TclError invalid command name \"180\" on Windows.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
No conflicts: main already contains the squash of PR #3, which this
branch supersets (MIDI, PS5, GUI, packaging, later Mac/Windows fixes).

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.com>
Fan out controller OSC to an extra host:port via mapping.yaml
osc.extra, GUI OSC extra fields, and --osc2/--osc2-host/--osc2-port.

Co-authored-by: H.arimadion <harrrisbc@users.noreply.github.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.

2 participants