Commit graph

12 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 42aa7798d2 Simplify play-siren: remove unused frequency+voice mode 2026-04-04 19:57:54 +02:00
Michael Winter 90f00e56c6 Add chord number labels with click-to-siren
- Add label nodes at top of each chord column
- Modify xforce layout to skip label nodes
- Click label to play entire chord on siren
- Use chordIndex/nodeIndex (server calculates frequency)
- Fix server to support both calling conventions
- Fix client to use proper JSON headers for kill-siren
2026-04-04 19:56:39 +02:00
Michael Winter 2a17339edc Add octave offset for play-freq, adjustable via UI input 2026-04-01 18:39:13 +02:00
Michael Winter ab7e949f07 Clean up unused API endpoints and server code 2026-04-01 17:14:15 +02:00
Michael Winter 5b92e4ff83 Fix calculate_cents - use simple math.log2 instead of broken bit_length logic 2026-04-01 16:47:45 +02:00
Michael Winter 8f332fac52 Add batch API endpoints for cents calculation, client fetches cents from server 2026-04-01 16:44:20 +02:00
Michael Winter 79e1259f5b Add filepath input for loading any JSON file via API 2026-04-01 16:33:13 +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 dff8a4e6c2 Add all-chords continuous canvas with xforce bounds and pan navigation 2026-04-01 09:59:30 +02:00
Michael Winter 88a9528e12 Add Flask server with Python backend for Path Navigator
- Server calculates graph edges and ratios using src/pitch.py
- Frontend fetches computed graph from API
- Supports loading different output files via dropdown
- All pitch calculations now in Python, JS only for rendering
2026-03-30 22:38:52 +02:00