Zum Hauptinhalt springen

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:

FormBedeutungBeschreibbar
$nameEigene Variable im Speicher des Gerätsja
$sys_nameGerätewert: Modus, Cue, Timecode, IP …nein, die FrenschPress füllt sie selbst
Nur Anzeigetext

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:

WegWomit
OSC/fpress/var <name> <wert>
Macro-SchrittProtokoll Variable im Step-Editor
Companion-ModulAction Set device variable oder Feedback Sync variable to FrenschPress
HTTP-APIPOST /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.

NameInhalt
$sys_modeControl Mode: qlab, macro oder companion
$sys_setAktives Button-Set: A, B oder C
$sys_set_buttonsSet je Taste, acht Buchstaben in der Reihenfolge stop, go, pause, Encoder-Push, links, rechts, push+links, push+rechts
$sys_nameGerätename
$sys_fwFirmware-Version
$sys_ipIP-Adresse des aktiven Interface
$sys_peersAnzahl der FrenschPress-Peers im Netzwerk
$sys_cueName des laufenden QLab-Cues. Leer, solange nichts läuft
$sys_standbyName des Cues, auf dem QLab steht, also was GO als Nächstes auslöst
$sys_remainingRestzeit des laufenden Cues. Leer, solange nichts läuft
$sys_runningAnzahl laufender QLab-Cues
$sys_pausedAnzahl pausierter QLab-Cues
$sys_tcEingehender MTC-Timecode, hh:mm:ss:ff. Leer ohne Timecode
$sys_tc_hhTimecode-Stunden, zweistellig
$sys_tc_mmTimecode-Minuten, zweistellig
$sys_tc_ssTimecode-Sekunden, zweistellig
$sys_tc_ffTimecode-Frames, zweistellig
Timecode auf eigenen Tasten

$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 $.

  1. Wähle $. Die Liste zeigt alle Namen, die die FrenschPress gerade auflösen kann, eigene und sys_-Werte, jeweils mit dem aktuellen Wert daneben. Über das Filterfeld suchst du darin.
  2. Klick auf einen Eintrag. $name wird an der Cursorposition eingefügt.
  3. 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-9 und _.
  • 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 $ 5 bleiben 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 $cue ohne Variable cue ergibt CUE , eine Beschriftung nur aus $cue bleibt 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.
Variablen überleben keinen Neustart

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/var nimmt Name und Wert. Der Wert darf ein String, ein Integer, ein Float oder ein Bool sein. Zahlen werden in Text umgewandelt.
  • /fpress/var/clear mit 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​

AufrufWirkung
GET /api/variablesAlle 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​

SymptomUrsacheAbhilfe
Taste zeigt an der Stelle der Variable nichtsName unbekannt oder falsch geschriebenVariable über $ aus der Liste einfügen statt tippen
Alle eigenen Variablen sind leerDie FrenschPress wurde neu gestartetWerte erneut schreiben, zum Beispiel per OSC oder Companion-Feedback
$sys_cue, $sys_standby und Co. bleiben leerKeine OSC-Verbindung zu QLab, oder es läuft kein CueOSC-Verbindung einrichten; MIDI/MSC liefert keine Rückmeldung
Wert ist abgeschnittenMehr als 48 ZeichenWert kürzen
Beschriftung lässt sich nicht speichernSie enthält $$$$ entfernen
Schreiben per OSC oder HTTP wird abgewiesenName beginnt mit sys_ oder ist ungültigNamen aus A-Z, a-z, 0-9, _ mit 1–24 Zeichen wählen
Deck zeigt nicht die FrenschPress-BeschriftungCompanion-Satellite-Betrieb: Companion zeichnet das DeckText in Companion setzen