CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
3.2 KiB
3.2 KiB
MIDI Bridge
Formål
TuxDMX kan modtage normaliserede MIDI-events fra en ekstern Windows- eller Linux-maskine via en separat Python-bro i tools/tuxdmx-midi-bridge/.
Bridgen læser kun MIDI og sender events videre til TuxDMX. Den genererer aldrig DMX direkte.
Eksisterende arkitektur før ændringen
- Sceneaktivering fandtes allerede via
POST /api/v1/scenes/{scene_slug}/activate - Scenerelease fandtes allerede via
POST /api/v1/scenes/{scene_slug}/release - Blackout fandtes allerede via
POST /api/v1/dmx/blackoutogPOST /api/v1/dmx/release-blackout - Effektstart/-stop fandtes allerede via
POST /api/v1/effects/{effect_slug}/triggerogPOST /api/v1/effects/{effect_slug}/stop - Live status blev sendt ud via WebSocket på
/ws/live - Session/CSRF og API-tokenmodeller fandtes i backend, men MIDI-broen havde ingen eksisterende transport eller mappingmodel
Nye backend-endpoints
Admin / WebUI
GET /api/v1/integrations/midi/bridgesGET /api/v1/integrations/midi/mappingsPOST /api/v1/integrations/midi/mappingsPUT /api/v1/integrations/midi/mappings/{mapping_id}DELETE /api/v1/integrations/midi/mappings/{mapping_id}POST /api/v1/integrations/midi/mappings/{mapping_id}/testGET /api/v1/integrations/midi/tokensPOST /api/v1/integrations/midi/tokensDELETE /api/v1/integrations/midi/tokens/{token_id}GET /api/v1/integrations/midi/learnPOST /api/v1/integrations/midi/learn/startPOST /api/v1/integrations/midi/learn/cancel
Bridge transport
POST /api/v1/integrations/midi/bridge/heartbeatPOST /api/v1/integrations/midi/bridge/events
Bridge-endpoints kræver Authorization: Bearer <token>.
Datamodel
midi_bridges
bridge_iddevice_nameip_addressprotocol_versiononlinelast_heartbeat_atlast_event_atlast_errorlast_event
midi_bridge_tokens
labeltoken_hashbridge_idvalgfri låsning til ét bridge-idscopeslast_used_atrevoked_at
midi_mappings
nameenabledbridge_iddevice_namemessage_typechannelnumberactiontarget_typetarget_idmodeminimum_valuemaximum_value
Understøttede actions
activate_scenedeactivate_scenetoggle_sceneflash_sceneblackout_onblackout_offblackout_toggleset_master_dimmerset_scene_intensitystart_effectstop_effect
Modes
triggertoggleholdflashcontinuous
Sikkerhed
- Tokens returneres kun i klartekst ved oprettelse
- Efter lagring vises kun
token_preview - Bridge-token logges ikke
- Protokolversion skal være
1 - Bridge kan låses til specifikt
bridge_id - Ugyldige eller tilbagekaldte tokens afvises med
401
Bridge-installation
Se den fulde bridgepakke i:
tools/tuxdmx-midi-bridge/README.mdtools/tuxdmx-midi-bridge/config.example.yamltools/tuxdmx-midi-bridge/tuxdmx-midi-bridge.service.example
Kendte begrænsninger
- Fysisk MIDI-hardware er ikke testet i denne workspace-session
- Bridge bruger HTTP, ikke indgående WebSocket, selv om UI stadig bruger WebSocket til live status
set_effect_speeder ikke implementeret, fordi effektmotoren endnu ikke har et stabilt genanvendeligt speed-interface