Variablen
Eine Stream-Deck-Beschriftung ist normalerweise fest: Was im Editor steht, steht auch auf der Taste. Variablen machen aus der Beschriftung eine Vorlage. Enthält der Text ein $name, zeigt die Taste den aktuellen Wert dieser Variablen und zeichnet neu, sobald sich der Wert ändert.
Beschriftung im Editor auf der Taste
CUE $sys_cue → CUE Blackout
KANAL $ch → KANAL 12
$sys_tc → 01:12:44:07
Es gibt zwei Sorten:
| Form | Bedeutung | Beschreibbar |
|---|---|---|
$name | Eigene Variable im Speicher des Geräts | ja |
$sys_name | Gerätewert: Modus, Cue, Timecode, IP … | nein, die FrenschPress füllt sie selbst |
Variablen wirken nur in Beschriftungen: auf Stream-Deck-Tasten und in den Push-, Links- und Rechts-Beschriftungen der Encoder des Stream Deck +. Macro-Parameter, Preset-Namen, Timeline-Bezeichnungen und Network Targets werden nicht ersetzt.
Wo die Werte herkommen
Eigene Variablen setzt du von außen, die FrenschPress legt sie nicht selbst an. Vier Wege führen in denselben Speicher:
| Weg | Womit |
|---|---|
| OSC | /fpress/var <name> <wert> |
| Macro-Schritt | Protokoll Variable im Step-Editor |
| Companion-Modul | Action Set device variable oder Feedback Sync variable to FrenschPress |
| HTTP-API | POST /api/variables mit {name, value} (Login nötig) |
Macro-Schritt „Variable“
Wähle im Step-Editor das Protokoll Variable. Der Schritt schreibt einen Namen und einen Wert.
Der Wert darf selbst ein $name oder $sys_name enthalten. Diese Referenz wird beim Auslösen des Macros aufgelöst. Ein Schritt mit dem Wert $sys_cue hält also den Cue-Namen dieses Moments fest, statt ihm weiter zu folgen. So baust du eine Anzeige „Was lief zuletzt“.
Aus Companion
Das Companion-Modul für Bitfocus Companion bietet zwei Wege: eine Action, die beim Drücken einen Wert schreibt, und ein Feedback, das eine Companion-Variable dauerhaft spiegelt. Beide stehen unter Gerätevariablen aus Companion setzen. Die FrenschPress bekommt in beiden Fällen nur den fertigen Text.
Gerätewerte ($sys_…)
Diese Namen sind reserviert. Sie stehen immer zur Verfügung, ohne dass jemand sie schreibt. Ein Schreibversuch darauf wird abgewiesen.
| Name | Inhalt |
|---|---|
$sys_mode | Control Mode: qlab, macro oder companion |
$sys_set | Aktives Button-Set: A, B oder C |
$sys_set_buttons | Set je Taste, acht Buchstaben in der Reihenfolge stop, go, pause, Encoder-Push, links, rechts, push+links, push+rechts |
$sys_name | Gerätename |
$sys_fw | Firmware-Version |
$sys_ip | IP-Adresse des aktiven Interface |
$sys_peers | Anzahl der FrenschPress-Peers im Netzwerk |
$sys_cue | Name des laufenden QLab-Cues. Leer, solange nichts läuft |
$sys_standby | Name des Cues, auf dem QLab steht, also was GO als Nächstes auslöst |
$sys_remaining | Restzeit des laufenden Cues. Leer, solange nichts läuft |
$sys_running | Anzahl laufender QLab-Cues |
$sys_paused | Anzahl pausierter QLab-Cues |
$sys_tc | Eingehender MTC-Timecode, hh:mm:ss:ff. Leer ohne Timecode |
$sys_tc_hh | Timecode-Stunden, zweistellig |
$sys_tc_mm | Timecode-Minuten, zweistellig |
$sys_tc_ss | Timecode-Sekunden, zweistellig |
$sys_tc_ff | Timecode-Frames, zweistellig |
$sys_tc_hh bis $sys_tc_ff brauchst du, wenn der Timecode nicht als Anzeige-Reihe laufen soll, sondern auf Tasten deiner Wahl. Zum Beispiel nur Minuten und Sekunden, groß und vom Saal aus lesbar.
Die QLab-Werte setzen eine OSC-Verbindung zu QLab voraus (siehe QLab Mode). Über MIDI/MSC gibt es keinen Rückkanal.
Variablen in eine Beschriftung einsetzen
Im Tasten-Editor der Streamdeck-Seite liegt rechts neben Button text die Schaltfläche $.
- Wähle
$. Die Liste zeigt alle Namen, die die FrenschPress gerade auflösen kann, eigene undsys_-Werte, jeweils mit dem aktuellen Wert daneben. Über das Filterfeld suchst du darin. - Klick auf einen Eintrag.
$namewird an der Cursorposition eingefügt. - Prüfe die Vorschau unter dem Eingabefeld. Sie zeigt den Text so, wie das Deck ihn in diesem Moment zeichnen würde.
Die Liste aktualisiert sich, solange sie offen ist. Du wählst also die Variable, die gerade 12 anzeigt, und musst dir nicht merken, dass sie ch heißt.
Regeln
- Ein Name hat 1–24 Zeichen aus
A-Z,a-z,0-9und_. - Ein Wert hat höchstens 48 Zeichen, dieselbe Grenze wie eine Tastenbeschriftung. Längeres wird ohne Warnung abgeschnitten.
- Die FrenschPress speichert bis zu 64 eigene Variablen.
- Ein
$beginnt nur dann einen Namen, wenn ein Namenszeichen folgt.100$,US$und$ 5bleiben unverändert stehen. Deshalb gibt es kein Escape-Zeichen, und bestehende Beschriftungen sehen nicht plötzlich anders aus. - Ein unbekannter Name ergibt einen leeren Text.
CUE $cueohne VariablecueergibtCUE, eine Beschriftung nur aus$cuebleibt leer. - Keine Rekursion: Enthält ein Wert selbst ein
$, wird er wörtlich gezeichnet. $$ist für spätere, peer-übergreifende Variablen reserviert und wird beim Speichern abgewiesen. Der Editor zeigt dazu eine Meldung.
Der Speicher liegt im Arbeitsspeicher und wird nicht gesichert. Nach einem Neustart sind alle eigenen Variablen leer, bis sie wieder geschrieben werden. Das ist Absicht: Ein Wert von gestern Abend auf einer Taste ist schlimmer als eine leere Taste.
Das Companion-Feedback Sync variable to FrenschPress schreibt seine Zuordnungen von selbst in langsamen Abständen nach. Nach einem Neustart der FrenschPress sind diese Werte deshalb nach kurzer Zeit wieder da.
Wie oft das Deck neu zeichnet
Eine Taste mit Variable wird höchstens alle 200 ms neu geschrieben, und nur, wenn sich ihr ausgewerteter Text tatsächlich geändert hat. Ändert sich nichts, gibt es keinen Datenverkehr zum Deck.
Im Companion-Satellite-Betrieb zeichnet die FrenschPress keine Beschriftungen. Dort gehört das Deck Companion, und Companion schickt seinen eigenen Text.
Über OSC setzen und löschen
/fpress/var "cue" "Blackout"
/fpress/var "ch" 12
/fpress/var/clear "cue"
/fpress/var/clear
/fpress/varnimmt Name und Wert. Der Wert darf ein String, ein Integer, ein Float oder ein Bool sein. Zahlen werden in Text umgewandelt./fpress/var/clearmit Namen löscht diese eine Variable, ohne Argument alle.- Namen mit
sys_und ungültige Namen werden abgewiesen, jeweils mit einer Meldung im Log.
Details und die übrigen Befehle stehen unter OSC-Fernsteuerung.
Über die HTTP-API
| Aufruf | Wirkung |
|---|---|
GET /api/variables | Alle Variablen inklusive der sys_-Werte als JSON |
POST /api/variables {"name":"ch","value":"12"} | Setzen |
POST /api/variables {"name":"ch"} | Löschen: Der fehlende value-Schlüssel ist das Löschsignal |
Beide Aufrufe verlangen eine angemeldete Sitzung. Ein leerer String als value ist ein gültiger Wert und wird gespeichert. Gelöscht wird nur, wenn der Schlüssel fehlt.
Wenn es nicht klappt
| Symptom | Ursache | Abhilfe |
|---|---|---|
| Taste zeigt an der Stelle der Variable nichts | Name unbekannt oder falsch geschrieben | Variable über $ aus der Liste einfügen statt tippen |
| Alle eigenen Variablen sind leer | Die FrenschPress wurde neu gestartet | Werte erneut schreiben, zum Beispiel per OSC oder Companion-Feedback |
$sys_cue, $sys_standby und Co. bleiben leer | Keine OSC-Verbindung zu QLab, oder es läuft kein Cue | OSC-Verbindung einrichten; MIDI/MSC liefert keine Rückmeldung |
| Wert ist abgeschnitten | Mehr als 48 Zeichen | Wert kürzen |
| Beschriftung lässt sich nicht speichern | Sie enthält $$ | $$ entfernen |
| Schreiben per OSC oder HTTP wird abgewiesen | Name beginnt mit sys_ oder ist ungültig | Namen aus A-Z, a-z, 0-9, _ mit 1–24 Zeichen wählen |
| Deck zeigt nicht die FrenschPress-Beschriftung | Companion-Satellite-Betrieb: Companion zeichnet das Deck | Text in Companion setzen |