Companion-Modul
Mit dem FrenschPress-Modul für Bitfocus Companion drehst du die Richtung um: Nicht die FrenschPress bedient Companion, sondern Companion bedient die FrenschPress. Ein Show-Button in Companion kann so das Video starten und gleichzeitig die FrenschPress auf Set B umschalten, ihre LEDs einfärben oder eine Timeline scharf schalten.
| Weg | Wer bedient wen | Beschrieben unter |
|---|---|---|
| Companion Mode / Satellite | Die FrenschPress (und optional ein Stream Deck daran) ist eine Bedienfläche für Companion | Companion Mode, Stream Deck als Companion-Surface |
| Companion-Modul | Companion steuert die FrenschPress | diese Seite |
Du kannst beides kombinieren: Companion nutzt eine FrenschPress als Fläche und steuert eine andere als Gerät.
Installation
Das Modul gibt es als Paketdatei (.tgz) zum Download.
- In Companion Settings → Modules → Import module package öffnen.
- Die
.tgz-Datei auswählen.
Sobald das Modul im Bitfocus-Modulstore liegt, entfällt der Import. Dann reicht die Suche nach FrenschPress.
Eine Version aus dem Store hat Vorrang vor einer importierten. Ist die Store-Version da, entferne den importierten Stand.
Verbindung einrichten
Voraussetzung: Companion und FrenschPress erreichen sich im selben Netzwerk. Das Modul spricht OSC über UDP.
- In Companion eine neue Connection anlegen.
- FrenschConnection FrenschPress wählen.
- Unter Discovered devices die FrenschPress auswählen oder Host und Port von Hand eintragen.
- Speichern. Bleibt die Verbindung rot, sieh unter Wenn es nicht klappt nach.
| Feld | Bedeutung | Standard |
|---|---|---|
| Discovered devices | Liste der FrenschPress-Geräte, die sich im Netzwerk ankündigen. Eine Auswahl füllt Host und Port automatisch aus. | – |
| Host | IP-Adresse oder Hostname des Geräts | – |
| Port | Der OSC-Eingangsport des Geräts | 53001 |
| HTTP port | Nur zum Lesen der Preset-Liste des Geräts. Kein Login nötig. | 80 |
| Poll device status | Fragt regelmäßig den Gerätezustand ab. Aus: keine Variablen und keine Feedbacks, das Modul sendet nur. | – |
| Poll interval (ms) | Abstand der Abfragen | 1000 |
Die Geräteliste kommt über mDNS. mDNS überschreitet keine VLAN-Grenze und scheitert häufig, wenn Companion in einem Docker-Container läuft. Host und Port von Hand einzutragen ist ein normaler Weg, kein Notbehelf.
Actions
| Action | Was sie macht |
|---|---|
| Set mode | Wechselt zwischen QLab, Custom und Companion |
| Switch button set | Schaltet auf Set A, B oder C, optional nur für ausgewählte Tasten |
| Apply preset | Lädt ein Preset. Die Liste kommt vom Gerät; du kannst ein Preset auch als Name oder über eine Variable angeben. Optional in ein bestimmtes Set. |
| Press a FrenschPress button | Löst STOP, GO oder PAUSE virtuell aus, als tap, press oder release |
| Run a macro | Startet ein Macro über Name oder ID. on, off und toggle wirken auf Snapshot-Macros. |
| Arm timeline / Disarm timeline | Schaltet eine Timeline scharf oder unscharf, über Nummer, Name oder ID |
| Arm all timelines / Disarm all timelines | Dasselbe für alle Timelines auf einmal |
| Set LED colour | Färbt eine LED (STOP, GO, PAUSE oder alle) mit dem Farbwähler |
| Release LED override | Gibt die LED wieder frei. Sie zeigt danach ihre normale Farbe. |
| Stream Deck: press a key | Löst eine Taste des angeschlossenen Stream Decks über Reihe und Spalte aus |
| Stream Deck: set key feedback | Setzt den Zustand einer Deck-Taste: einzelne Taste, Reihe/Spalte, alle Tasten oder alles zurück auf lokal |
| Set device variable | Schreibt einen Wert in eine Variable auf der FrenschPress |
| Clear device variable | Löscht eine Variable über ihren Namen |
| Clear all device variables | Löscht alle 64 Variablen auf einmal |
Die Dropdowns für Apply preset und Arm / Disarm timeline liest das Modul vom Gerät und frischt sie einmal pro Minute auf. Ein neu angelegtes Preset oder eine neue Timeline taucht also von selbst auf. Beide Felder nehmen auch freien Text: Nummer, Anzeigename, ID oder eine Companion-Variable. Ist das Gerät über HTTP nicht erreichbar, bleibt die Liste leer. Ein getippter Wert wird trotzdem gesendet.
Feedbacks
| Feedback | Wird wahr, wenn |
|---|---|
| Mode is | das Gerät im gewählten Mode ist |
| Button set is | das gewählte Set aktiv ist, wahlweise für die ganze FrenschPress oder für eine einzelne Taste |
| QLab has running cues | in QLab mindestens ein Cue läuft |
| QLab is paused | QLab pausiert ist |
| Sync variable to FrenschPress | Kein optisches Feedback. Spiegelt laufend eine Companion-Variable in eine Gerätevariable. |
Gerätevariablen aus Companion setzen
Die FrenschPress setzt Variablen in Stream-Deck-Beschriftungen ein: Eine Taste mit dem Text CUE $cue zeigt, was gerade in cue steht. Mit Companion füllst du diese Werte am bequemsten.
Einmalig beim Drücken: Set device variable
Die Action nimmt Name und Wert. Beide Felder nehmen Companion-Variablen. Companion löst sie vor dem Senden auf. Die FrenschPress bekommt immer einen fertigen Text und weiß nichts von Companion.
Name: cue
Value: $(internal:time_hms)
Eine Deck-Taste mit der Beschriftung $cue zeigt danach bei jedem Auslösen der Action den neuen Wert.
| Regel | Wert |
|---|---|
| Name | 1–24 Zeichen aus A-Z, a-z, 0-9, _ |
| Reservierte Namen | alles ab sys_ gehört dem Gerät und wird abgewiesen |
| Länge des Werts | über 48 Zeichen schneidet das Gerät ohne Warnung ab |
$$ in einer Beschriftung | reserviert, wird beim Speichern abgewiesen |
Dauerhaft: das Feedback Sync variable to FrenschPress
Soll ein Wert von selbst aktuell bleiben statt an einen Tastendruck gebunden zu sein, leg das Feedback auf einen beliebigen Companion-Button. Es bekommt einen festen FrenschPress-Namen und einen Ausdruck als Wert. Den Companion-Button selbst verändert es optisch nicht.
Companion führt ein Feedback neu aus, sobald sich eine darin verwendete Variable ändert. Das Modul fasst schnelle Änderungen zusammen und sendet höchstens zehn Aktualisierungen pro Sekunde, immer nur den neuesten Wert.
Zusätzlich trägt das Modul seine Zuordnungen langsam nach: eine pro Sekunde, je Zuordnung höchstens alle zehn Sekunden. Nach einem Neustart der FrenschPress sind die Gerätevariablen so von selbst wieder gefüllt, ohne dass alle Zuordnungen auf einmal losgehen.
Das Feedback wirkt, solange es existiert. Löschst du es, endet die Spiegelung.
Löschen
Clear device variable löscht eine Variable. Verweist eine Beschriftung darauf, fällt nur dieser $name weg: Aus CUE $cue wird CUE , eine Beschriftung, die nur aus $cue besteht, wird zur leeren Taste. Der Text im Editor bleibt unverändert.
Clear all device variables löscht alle 64 auf einmal und hat keine Optionen.
Bis 0.4.0 war „alle löschen“ dieselbe Action wie „eine löschen“, ausgelöst durch ein leeres Namensfeld. Das war auch der Standard einer frisch hinzugefügten Action. Heute löscht ein Clear device variable mit leerem Namen nichts mehr. Hat sich ein Button darauf verlassen, wähl dort die eigene Action Clear all device variables.
Variablen
Das Modul stellt unter $(frenschpress:…) diese Companion-Variablen bereit:
| Variable | Inhalt |
|---|---|
device_name · fw · mac · ip | Gerätename, Firmware-Version, MAC-Adresse, IP-Adresse |
mode | qlab, macro oder companion |
transport · midimode | QLab-Transport (osc/msc) und der interne Transport-Code |
set_active | Aktives Button-Set |
set_buttons | Acht Buchstaben, ein Set je Taste, in der Reihenfolge stop, go, pause, Encoder-Push, links, rechts, push+links, push+rechts |
qlab_running · qlab_paused · qlab_subscribed | QLab-Zustand: laufend, pausiert, Feedback abonniert |
Nach einem maskierten Set-Wechsel können die Tasten auf unterschiedlichen Sets stehen. set_active zeigt dann nur den letzten Wechsel, der die ganze FrenschPress betraf. set_buttons ist in diesem Fall der genaue Wert.
Diese Variablen sind Companion-Variablen. Mit den Gerätevariablen auf der FrenschPress haben sie nichts zu tun. Von der einen Sorte zur anderen kommst du über die Action oder das Feedback aus dem Abschnitt oben.
Mitgelieferte Buttons (Presets)
Fertige Companion-Buttons mit passenden Feedbacks: Mode QLab / Macro / Companion, Set A / B / C, STOP / GO / PAUSE, QLab running, QLab paused und zwei LED-Buttons (Farbe halten, solange gedrückt, und Freigabe).
Wenn es nicht klappt
| Symptom | Ursache | Abhilfe |
|---|---|---|
| Keine Variablen, keine Feedbacks | Poll device status ist aus | Einschalten |
| Verbindung bleibt rot | Host oder Port falsch | Der Port muss dem OSC-Eingangsport des Geräts entsprechen |
| Preset-Liste leer | HTTP-Port stimmt nicht, oder das Gerät ist über HTTP nicht erreichbar | HTTP-Port und Erreichbarkeit prüfen |
| Zustand aktualisiert sich träge | Poll-Intervall zu groß | Poll-Intervall verkleinern, Minimum 250 ms |
Die FrenschPress beantwortet Statusabfragen höchstens alle 100 ms je Absender. Ein Poll-Intervall unter 250 ms bringt deshalb nichts.