Files
thomas 1f110866f5
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
Update docs and screenshots
2026-07-25 10:26:29 +02:00

60 lines
1.6 KiB
Markdown

# TuxDMX MIDI Bridge
Standalone Python-bro, som lytter på en lokal USB-MIDI-controller og sender normaliserede MIDI-events videre til TuxDMX over HTTP.
## Krav
- Python 3.11+
- En MIDI-inputenhed, som kan læses af `mido` / `python-rtmidi`
- En TuxDMX-instans med en gyldig MIDI-token
## Hurtig start
### Windows
```bat
install-windows.bat
copy config.example.yaml config.yaml
run-windows.bat config.yaml
```
Autostart kan laves via Windows Task Scheduler med:
```bat
.venv\Scripts\python.exe -m tuxdmx_midi_bridge --config C:\path\to\config.yaml
```
### Linux
```bash
./install-linux.sh
cp config.example.yaml config.yaml
./run-linux.sh config.yaml
```
Eksempel på systemd-service ligger i `tuxdmx-midi-bridge.service.example`.
## CLI
```bash
python -m tuxdmx_midi_bridge --config config.yaml
python -m tuxdmx_midi_bridge --list-devices
python -m tuxdmx_midi_bridge --test-connection --config config.yaml
python -m tuxdmx_midi_bridge --debug --config config.yaml
```
## Konfiguration
- `server.url`: HTTP-base til TuxDMX bridge-endpoints, fx `http://host:8000/api/v1/integrations/midi/bridge`
- `server.api_token`: kan overstyres af `TUXDMX_API_TOKEN`
- `midi.device_name`: delnavn der matches mod tilgængelige MIDI-inputs
- `midi.channel_filter`: sæt til `0-15` eller `null`
- `performance.control_change_interval_ms`: rate limit på fadere og knapper
- `performance.suppress_duplicate_values`: ignorer gentagne identiske værdier
## Sikkerhed
- Token logges aldrig i klartekst.
- TLS-verifikation er standard og slås kun fra eksplicit i konfigurationen.
- Bridge sender kun MIDI-events og heartbeats. Den genererer ikke DMX direkte.