Initial tablet POC: project restructure + WebSocket/HTTP server + JS client
- Restructured project into /app, /server, /client with run.py entry point - WSServer (QWebSocketServer) with log_signal, start/stop, client tracking - HTTP server serves /client on port 8080 - Vanilla JS client: faders, toggles, transport, drag-to-arrange, lock/save layout - Start Tablet button + floating Tablet log window in app UI - Preset broadcast on load/switch, DAW state relay, hardware sync via widget_update - Widget colors synced from app palette, toggle state fixed (sends 0/127 correctly) - Layout saved per preset UUID back to presets.json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import rtmidi
|
||||
from midi_receiver import midi_receiver
|
||||
|
||||
|
||||
MIDI_CH = 0
|
||||
TRANSPORT_MIDI_CH = 0
|
||||
|
||||
midi_out = rtmidi.MidiOut()
|
||||
transport_midi_out = rtmidi.MidiOut()
|
||||
|
||||
available_ports = midi_out.get_ports()
|
||||
print("Available MIDI ports:", available_ports)
|
||||
|
||||
|
||||
def send_cc(cc_number, value, channel=None):
|
||||
ch = (channel - 1) if channel is not None else MIDI_CH
|
||||
msg = [0xB0 | ch, cc_number, value]
|
||||
if midi_out.is_port_open():
|
||||
midi_out.send_message(msg)
|
||||
midi_receiver.midi_out_signal.emit(msg)
|
||||
|
||||
|
||||
def send_transport_cc(cc_number, value):
|
||||
msg = [0xB0 | TRANSPORT_MIDI_CH, cc_number, value]
|
||||
if transport_midi_out.is_port_open():
|
||||
transport_midi_out.send_message(msg)
|
||||
midi_receiver.midi_out_signal.emit(msg)
|
||||
Reference in New Issue
Block a user