OSC-Steuerung
Die FrenschPress akzeptiert eingehende OSC-Befehle über den in den Einstellungen gesetzten OSC-Port.
| Parameter | Wert |
|---|---|
| Namespace | /fpress |
| Protokoll | OSC über UDP |
| Port | 53001 (Standard) |
| Ziel | IP-Adresse des Geräts |
Der Port kann in den Einstellungen oder direkt am Stream Deck geändert werden. Er wird gemeinsam mit dem internen QLab-Feedback-Listener genutzt.
Befehlsübersicht
| Befehl | Argumente | Gespeichert |
|---|---|---|
/fpress/mode | 1, 2, 3 | Ja |
/fpress/set | A, B, C + optionale Maske | Ja |
/fpress/preset | Preset-ID (String) | Ja |
/fpress/button | Taste + optionale Aktion | Nein |
/fpress/macro | Macro-Name oder -ID + optionale Aktion | Nein |
/fpress/timeline/arm | Timeline-Selektor | Ja |
/fpress/timeline/disarm | Timeline-Selektor | Ja |
/fpress/timeline/arm_all | – | Ja |
/fpress/timeline/disarm_all | – | Ja |
/fpress/led | r g b oder target r g b | Nein |
/fpress/led/release | – oder target | Nein |
/fpress/streamdeck/button | row col [action] | Nein |
/fpress/streamdeck/feedback | button state | Nein |
/fpress/streamdeck/feedback/all | state | Nein |
/fpress/streamdeck/feedback/clear | – | Nein |
/fpress/query | – oder Gruppe | Nein |
/fpress/mode
Schaltet den Gerätebetriebsmodus um.
| Wert | Modus |
|---|---|
1 / "qlab" | QLab-Modus |
2 / "macro" / "custom" | Macro-Modus |
3 / "companion" | Companion-Modus |
/fpress/mode 1
/fpress/mode 2
/fpress/mode 3
/fpress/set
Schaltet das aktive Macro-Button-Set um. Funktioniert nur im Macro-Modus.
Erstes Argument – Ziel-Set:
| Wert | Set |
|---|---|
"A" / 1 | Set A |
"B" / 2 | Set B |
"C" / 3 | Set C |
Zweites Argument (optional) – Maske: begrenzt, welche Buttons umgeschaltet werden. Ohne Maske werden alle Buttons gesetzt.
/fpress/set "A"
/fpress/set "B"
/fpress/set "C" "stop,go,pause"
/fpress/set "A" 7
Maskenverzeichnis
Das zweite Argument kann ein Integer-Bitmask, ein Selector-String oder "all" sein. Als Trennzeichen im Selector-String funktionieren ,, ;, | und Leerzeichen.
| Selector-Token | Bitmask |
|---|---|
stop, 0 | 1 << 0 |
go, 1 | 1 << 1 |
pause, 2 | 1 << 2 |
enc, encoder, push, 3 | 1 << 3 |
left, prev, ccw, 4 | 1 << 4 |
right, next, cw, 5 | 1 << 5 |
push_left, combo_left, combo_prev, 6 | 1 << 6 |
push_right, combo_right, combo_next, 7 | 1 << 7 |
all | 0xFF |
/fpress/set "B" "stop,go,pause"
/fpress/set "C" "all"
/fpress/set "A" 255
/fpress/set "A" 7
/fpress/preset
Lädt ein Preset per ID. Es wird die Preset-ID verwendet, nicht der Anzeigename. Die IDs sind im Preset-Picker des Webinterface sichtbar.
| Preset-Typ | Format |
|---|---|
| User-Preset | "mein-preset-12ab" |
| Plugin-Preset | "pluginId:presetId" |
| Leeren | "empty" |
/fpress/preset "my-user-preset-12ab"
/fpress/preset "osc-qlab-basics:transport"
/fpress/preset "empty"
/fpress/button
Löst eine physische Taste virtuell aus – als käme der Tastendruck vom Gerät selbst. Damit lassen sich auch Press-/Release-Macros aus der Ferne sauber bedienen.
Erstes Argument – Taste:
| Wert | Taste |
|---|---|
"stop" / 0 | STOP |
"go" / "play" / 1 | GO |
"pause" / 2 | PAUSE |
Zweites Argument (optional) – Aktion, Standard "tap":
| Aktion | Wirkung |
|---|---|
"tap" / "trigger" / "go" | Drücken und sofort loslassen |
"press" / "on" / "1" | Nur drücken (Taste bleibt logisch gehalten) |
"release" / "off" / "0" | Nur loslassen |
/fpress/button "go"
/fpress/button "stop" "press"
/fpress/button "stop" "release"
/fpress/button 1 "tap"
Wer press sendet, muss auch release senden. Eine logisch gehaltene Taste blockiert sonst Release-Sequenzen und Toggle-Zustände.
/fpress/macro
Startet ein Macro direkt über seinen Namen oder seine ID, unabhängig davon, ob es einer Taste zugewiesen ist.
Erstes Argument – exakter Macro-Name oder Macro-ID. Ist ein Name mehrdeutig, wird der Befehl abgelehnt.
Zweites Argument (optional) – Aktion, Standard "trigger":
| Aktion | Wirkung |
|---|---|
"trigger" / "tap" / "start" | Macro einmal ausführen |
"on" / "press" / "1" | Snapshot-Macro einschalten; bei allen anderen Macros wie trigger |
"off" / "release" / "0" | Snapshot-Macro ausschalten |
"toggle" | Snapshot-Macro umschalten |
/fpress/macro "Haus AN"
/fpress/macro "Haus AN" "toggle"
/fpress/macro "macro-7f3a" "trigger"
off, release und toggle sind ausschließlich für Snapshot-Macros (Art-Net/sACN DMX-Snapshots) verfügbar, da nur diese einen dauerhaften Ein/Aus-Zustand haben.
/fpress/timeline/arm & /fpress/timeline/disarm
Schaltet eine einzelne Timeline scharf bzw. entschärft sie.
Argument – Timeline-Selektor. Akzeptiert wird:
| Form | Beispiel |
|---|---|
| Sichtbare Nummer aus dem Dropdown | "1" |
| Anzeigename | "Main Timeline" |
| Interne ID | "main" |
/fpress/timeline/arm "1"
/fpress/timeline/arm "Main Timeline"
/fpress/timeline/disarm "main"
/fpress/timeline/arm_all & /fpress/timeline/disarm_all
Schaltet alle Timelines gemeinsam scharf oder entschärft sie. Ohne Argumente.
/fpress/timeline/arm_all
/fpress/timeline/disarm_all
Die Befehle sind idempotent: ein bereits erreichter Zustand löst keinen Schreibvorgang auf dem Dateisystem aus. Änderungen an allen Timelines werden atomar gespeichert.
/fpress/led
Setzt eine Laufzeit-RGB-Farbe für alle LEDs oder eine einzelne LED. Die Farbe wird nicht gespeichert.
Wertebereich: 0–255 pro Kanal
Akzeptierte Targets:
| Target | Beschreibung |
|---|---|
"all" / "*" / 0 | Alle LEDs |
"stop" / "btn0" / "button0" / 1 | Stop-Taste |
"go" / "btn1" / "button1" / 2 | Go-Taste |
"pause" / "btn2" / "button2" / 3 | Pause-Taste |
"encoder" / "enc" / "push" / "btn3" / 4 | Encoder |
/fpress/led 255 0 0
/fpress/led "all" 255 0 0
/fpress/led "stop" 255 0 0
/fpress/led "go" 0 255 0
/fpress/led "pause" 255 140 0
/fpress/led "encoder" 0 80 255
Der Override bleibt aktiv, bis ihn ein weiteres /fpress/led ändert oder /fpress/led/release freigibt. Modus- und Feedback-Updates laufen im Hintergrund weiter und werden nach dem Release wieder sichtbar.
/fpress/led/release
Gibt Laufzeit-Overrides frei und stellt die aktuelle Live-Farbe wieder her. Ohne Argument werden alle Overrides gelöscht. Die Targets sind dieselben wie bei /fpress/led.
Alias: /fpress/led/clear
/fpress/led/release
/fpress/led/release "all"
/fpress/led/release "stop"
Stream Deck über OSC
Diese Befehle wirken nur, wenn ein Stream Deck angeschlossen ist.
/fpress/streamdeck/button
Löst eine Deck-Taste virtuell aus. Row und Column sind nullbasiert.
Zwei gleichwertige Schreibweisen:
/fpress/streamdeck/button 1 2
/fpress/streamdeck/button/1/2
Optionale Aktion als letztes Argument (Standard "tap"):
| Aktion | Wirkung |
|---|---|
"tap" / "trigger" / "go" | Drücken und loslassen |
"press" / "on" / "1" | Nur drücken |
"release" / "off" / "0" | Nur loslassen |
/fpress/streamdeck/button 0 0 "tap"
/fpress/streamdeck/button/0/0 "press"
/fpress/streamdeck/button/0/0 "release"
Tasten, die als Timecode-Anzeige reserviert sind, sowie die Tools-Taste führen auch über OSC keine Macros aus.
/fpress/streamdeck/feedback
Übersteuert die Feedback-Farbe einer Deck-Taste von außen – etwa um den Zustand eines Fremdsystems auf dem Deck sichtbar zu machen.
Zustandswerte:
| Wert | Bedeutung |
|---|---|
1, "on", "true", "active", true | Active-/Feedback-Farbe erzwingen |
0, "off", "false", "idle", false | Idle-Farbe erzwingen |
"clear", "auto", "local", "release" | Override aufheben, lokale Logik übernimmt wieder |
Floats zwischen 0.0 und 1.0 werden bei 0.5 gerundet.
Adressierung per Tastennummer (1–32, einsbasiert):
/fpress/streamdeck/feedback 5 1
/fpress/streamdeck/feedback/5 1
/fpress/streamdeck/5/feedback 1
Adressierung per Raster (Row/Column, nullbasiert):
/fpress/streamdeck/feedback/1/2 1
/fpress/streamdeck/1/2/feedback "clear"
/fpress/streamdeck/feedback/all
Setzt alle Tasten gemeinsam auf einen Zustand.
/fpress/streamdeck/feedback/all 1
/fpress/streamdeck/feedback/all "clear"
/fpress/streamdeck/feedback/clear
Hebt sämtliche OSC-Overrides auf. Ohne Argumente.
/fpress/streamdeck/feedback/clear
/fpress/query
/fpress/query "qlab"
/fpress/query
Fragt den Zustand des Geräts ab. Die FrenschPress antwortet mit einer oder mehreren /fpress/status/…-Nachrichten – zurück an die Adresse und den Port, von denen die Anfrage kam. Ein Empfänger muss also nur auf dem Port lauschen, von dem er gesendet hat.
/fpress/query
/fpress/query "mode"
Ohne Argument kommen alle vier Antworten. Mit einem der Gruppennamen device, mode, set oder qlab kommt nur die betreffende.
Antworten
| Nachricht | Argumente |
|---|---|
/fpress/status/device | Gerätename · Firmware-Version · MAC-Adresse · IP-Adresse |
/fpress/status/mode | Mode (qlab / macro / companion) · QLab-Transport (osc / msc) · interner Transport-Code |
/fpress/status/set | Aktives Button-Set (A / B / C) · Set je Taste als Buchstabenfolge |
/fpress/status/qlab | Läuft ein Cue (0/1) · Pausiert (0/1) · QLab-Feedback abonniert (0/1) |
Abfragen werden auf eine Antwort alle 100 ms je Absender begrenzt; schnellere Anfragen werden verworfen. Anfragen von der eigenen Adresse werden ignoriert.
Wer FrenschPress aus Bitfocus Companion heraus steuern will, braucht diese Befehle nicht selbst zu bauen – das Companion-Modul erledigt Abfrage und Auswertung bereits.
Kurzreferenz
/fpress/mode 2
/fpress/set "B"
/fpress/set "B" "stop,go,pause"
/fpress/preset "my-user-preset-12ab"
/fpress/preset "osc-qlab-basics:transport"
/fpress/button "go"
/fpress/button "stop" "press"
/fpress/macro "Haus AN" "toggle"
/fpress/timeline/arm "Main Timeline"
/fpress/timeline/disarm_all
/fpress/led "stop" 255 0 0
/fpress/led 255 80 0
/fpress/led/release
/fpress/streamdeck/button/0/0
/fpress/streamdeck/feedback/1/2 1
/fpress/streamdeck/feedback/clear
/fpress/query
/fpress/query "qlab"