Commit graph

11 commits

Author SHA1 Message Date
Michael Winter f3a5dda4bc Add ramp-to-chord with per-voice tracking and configurable siren IP 2026-04-04 21:46:15 +02:00
Michael Winter 94b34b4dc4 Add Shift+click for siren and k/K for kill
- Add /api/play-siren endpoint for Shift+click
- Add /api/kill-siren endpoint for k/K keys
- Add set_chords method to OSCSender for dynamic voice count
- Update soft kill to 20Hz in osc_sender.py
- Refactor CLI to use send_kill method
- Fix kill to send to all voices regardless of count
2026-04-01 13:01:50 +02:00
Michael Winter 6ab162003e Add OSC playback to path navigator webapp
- Add /api/set-fundamental and /api/play-freq endpoints to server.py
- Add send_single method to osc_sender.py for sending single frequencies
- Add fundamental frequency input and click handler to path_navigator.html
- Distinguish between click (play) and drag (move) on nodes
- Add osc_receiver.scd for SuperCollider to receive /freq messages
2026-04-01 11:23:24 +02:00
Michael Winter dfdc0497a0 Add independent voice control to OSC sender with improved display 2026-03-28 17:13:51 +01:00
Michael Winter 1dff1022ce Add custom dims support via --dims-custom and update JSON output format 2026-03-28 15:12:14 +01:00
Michael Winter 8326fc1d11 Add interactive OSC sender with preview mode and chord navigation
- Add preview mode (p key) to toggle between send/preview behavior
- Arrow keys for navigation with optional send
- Enter sends current chord (only when not in preview mode)
- Jump to chord by number + Enter
- k/K keys for kill soft (15.0) and kill hard (0.0) commands
- Display prev/current/next chords with frequencies to 2 decimals
- Add OSC test receiver for debugging
- Use arrow key escape sequences for left/right navigation
2026-03-19 15:57:17 +01:00
Michael Winter 4a1e1f7ec2 Simplify quit: use Escape key instead of Ctrl+C
- Rollback to original tty-based input
- Add Escape key to quit
- Remove arrow key detection (use < > keys only)
- Simplify the play() method
2026-03-17 17:41:09 +01:00
Michael Winter d2c88ccc3f Use select with timeout for keyboard input
- Replaces tty-based input with select-based approach
- Adds signal handler for Ctrl+C
- Allows KeyboardInterrupt to propagate correctly
2026-03-17 17:26:23 +01:00
Michael Winter fd4b89670e Fix Ctrl+C handling in OSC playback 2026-03-17 17:19:52 +01:00
Michael Winter ea3acf9efe Replace --osc-enable with --osc-play
- Add --osc-play with optional file argument
- If no file provided, defaults to output/output_chords.json
- Fix python-osc API (addr -> address)
- Keep --fundamental, --osc-ip, --osc-port
2026-03-17 17:10:37 +01:00
Michael Winter 1ccab2088f Add OSC sender for real-time playback
- Create src/osc_sender.py with OSCSender class
- Add CLI args: --osc-enable, --osc-ip, --osc-port, --fundamental
- Load chords from output_chords.json
- Interactive keyboard control (< > keys)
- Display chord number, frequencies, HS arrays
- Support configurable fundamental frequency
2026-03-17 16:47:30 +01:00