Skip to main content

Configuring the Stream Deck

As soon as a supported Stream Deck is detected, a Streamdeck tab appears in the web interface. Without a device attached the tab is hidden.

The grid in the browser is built from the geometry the device reports — it is not hard-coded to one model.

Streamdeck tab with device card and key grid


Device card

ControlFunction
Deck / LEDsTwo brightness faders, 0–100 %, linkable with the link button
Logo backdropDraws the FrenschConnection logo across unmapped, unlabelled keys as one continuous graphic
Timecode displayReserves a key row as a timecode readout — including row selection, digit colours and display size
STOP/GO/PAUSE displayMirrors the three device buttons onto the deck
QLab standby displayShows the standby cue and the running cue from QLab — including row selection

All three displays are described under Display rows.

Deck and LEDs — linked or separate

By default the deck and the panel LEDs run on one shared value. Every control then moves the same number: the faders here, the LED slider in settings, hold STOP + turn the encoder, the BRT+/BRT- keys in the on-deck menu, and a Companion BRIGHTNESS message.

The link button next to the two faders breaks that coupling. The deck then keeps its own level and the LEDs keep theirs — meant for a deck sitting under a work light while the LEDs run in a blacked-out house.

The deck receives its value mapped onto its own 0–100 scale with a floor of 10 %, so its EXIT key stays readable even when the LEDs are dimmed further.


Mapping keys

Clicking a key in the grid opens the editor dialog.

Stream Deck key editor

FieldDescription
MacroSelect a macro or create one via Quick Create / Multi-Step — identical to Custom Mode
Button textLabel. The field accepts up to 48 characters, but far less fits on a key — see Text rendering
IdleColour or image for the resting state
Active / FeedbackColour or image for the active state
Invert idleDerives the feedback image from the idle image, inverted — see Key images
Show fade progressShows a running Art-Net/sACN fade as a bar on the key — see Fade display
FeedbackEnables/disables state switching for this key

The browser preview shows every key with its text and a thin colour bar at the top reflecting the current state (idle or active) — including a retained toggle state after key release.

Colour and feedback model

SituationBehaviour
Feedback offThe key stays idle at all times
Normal macro, feedback onActive while the key is held, back to idle on release
Toggle macro / toggle sequenceActive is retained after release and returns to idle when toggled off
Unmapped or failedStays idle — there is no separate error colour

After every reconnect the full desired state is rewritten, because a Stream Deck loses its display contents when disconnected.

Setting feedback over OSC

A deck key's state can also be set from outside — useful when the truth about "on or off" lives in the target system rather than in the FrenschPress. A lighting console can colour the key that fires its scene.

The commands are documented under OSC remote control: /fpress/streamdeck/feedback for one key, /fpress/streamdeck/feedback/all for all of them, and /fpress/streamdeck/feedback/clear to hand control back to the key itself. A page switch drops any overrides in place.

Text rendering

A few practical rules:

  • One word per line, at most 6 lines — so six words maximum. Wrapping happens on spaces.
  • Realistically about 5 characters fit per line in the large face (three such lines on a 72 px key). A longer word drops the whole label to the small face (around 11 characters per line), so short words stay considerably more readable.
  • A space is a deliberate line break — that is how you put a caption over a value.
  • A word that does not fit even at the smallest size is truncated, not wrapped.
  • ASCII 32–126 is supported including lowercase; anything else becomes ?.
  • Text colour is derived automatically from the background luminance so contrast stays correct.
  • Keys in a group (macro labels, the menu) render at one shared glyph size, so a page is not built from five different sizes.
note

If a host cannot transfer images at all, the key is filled with the background colour instead. The configuration remains valid either way.

Key images

Idle and Active/Feedback can carry an image instead of a colour. In the editor, switch the relevant card from Colour to Image and pick a file via Choose image….

All the preparation happens in the browser:

  • Any image format the browser can open (PNG, JPG, …) is accepted.
  • The image is cropped square from the centre (never squashed) and scaled to the key's pixel size.
  • Transparent areas of a PNG take the colour of that slot as their background.
  • The label is rendered into the image — light on dark, dark on light, each with an outline. The text can be changed later without picking the file again.
  • The result is stored as a JPEG, compressed automatically until it fits the 8 KB per key limit.

Invert idle derives the feedback image from the idle image — inverted, with no second file needed.

Fade display

With Show fade progress enabled in the key editor, the key fills from the bottom while an Art-Net or sACN fade belonging to that macro runs.

The bar's height is the current output level, not elapsed time:

SituationBar
Fading inrises
Fading outfalls
Pressed mid-fadereverses out of its current height instead of jumping
Fade finishedthe key returns to its normal look

It is drawn in the key's own colours: idle colour as the background, active colour as the fill, with the label still readable. Snapshot fades are shown the same way.

note

The option is greyed out as soon as the key carries an image — a bar cannot be drawn over a picture. It is off by default.

tip

The bar also appears when using the encoder as a master fader: while you turn, the key shows the level you have set.


Display rows

Three readouts can claim keys on the deck: timecode, STOP/GO/PAUSE and QLab standby. All three are switched on from the device card.

Display rows on the device card

Reserved keys run no macros — neither physically nor over OSC. Their stored mappings stay intact and return as soon as the readout is switched off or moved to another row.

On the Stream Deck +, STOP/GO/PAUSE and QLab claim no keys — they live in the window.

Timecode

With Timecode display on, the selected row reserves its keys as a readout:

Deck widthLayout
4 columnsHH MM SS FF
5+ columnsSTATUS/SOURCE HH MM SS FF
  • The status/source field has a white background with black text and names the source: USB 1, USB 2, MTC Master or Art-Net.
  • The four numeric fields are black; the digits are white (stopped), green (running) or orange (paused).
  • Values are updated locally on USB 2 from the running MTC stream — only digits that changed are redrawn.

The last row is not offered: its lower-right key is permanently reserved for the tools menu. If the timecode row would reach into the page-key column on a multi-page deck, the status/source field is dropped automatically.

Colours and style

The digit colours for Stopped, Running and Paused are freely configurable; Reset restores the defaults.

Size selects the rendering:

SettingRendering
MediumStandard face
LargeLarge face
Digital clockClock-style digits
Digital clock largeClock style, large face

STOP/GO/PAUSE

The middle three keys of the last row mirror the three device buttons: each takes the LED colour of its button, and in Custom Mode also the name of the macro sitting on it.

That way the deck shows what the console is doing without looking back at the device.

The readout needs a deck at least five columns wide; on the Stream Deck + it lives in the window.

QLab standby

Three keys of the selected row show what QLab is doing:

FieldContent
LinkWhether QLab is reachable
StandbyThe cue on standby — number and name, in that cue's own colour
RunningThe running cue with its remaining time
Requirement

The readout only works when the FrenschPress is connected to QLab over OSC (see QLab Mode – network connection). MIDI/MSC has no return channel.

If QLab stops answering for more than a second and a half, the Link field turns red and the other two fields freeze on their last state — so a lost connection is distinguishable from a show simply standing still.

The readout needs a deck at least four columns wide; on the Stream Deck + it lives on the touchbar.


Stream Deck +

The Stream Deck + adds four knobs and a touch strip.

ControlCan be mapped to
Encoder pushIts own macro (press/release like a key)
Encoder CW / CCWOne macro each, executed per detent
Touch stripFour fields with text labels; tap, long tap, swipe left/right

Each touch strip field is laid out by the zones actually in use — an encoder used only for turning gets the full height for its two directions instead of a blank band:

push + turns turns only push only
+----------------+ +--------+-------+ +----------------+
| PUSH | | CCW | CW | | |
+--------+-------+ | | | | PUSH |
| CCW | CW | +--------+-------+ | |
+--------+-------+ +----------------+
tip

Touch gestures are deliberately additive: every gesture is also reachable from a knob or a key. Glass gives no tactile feedback, and a mis-touch during a show is expensive.

The touchbar always shows exactly one view. A swipe left or right steps to the next one:

ViewAppears when
Encoder labelsan encoder on the active page is mapped
Timecodethe timecode readout is switched on
STOP/GO/PAUSEthe STOP/GO/PAUSE readout is switched on
QLab standbythe QLab standby readout is switched on

Only enabled views are in the carousel. With just one enabled, swiping does nothing. Small chevrons at the edges indicate that there is something to swipe to.

The selected view is remembered and comes back after a restart, after closing the tools menu, and after unlocking.

note

On the Stream Deck +, STOP/GO/PAUSE and QLab cost no keys — the window is their home. On every other deck they claim a row.


Pages

A deck can hold up to four pages.

PropertyPer pageShared
Key and encoder mappings
Key images
Brightness
Display rows
Reserved keys
  • Pages work on every supported deck.
  • From two pages on, a deck with at least three rows reserves two keys in the last column above the tools key: PG+ on the first row, PG- on the second. Both show the current position (PG+ 2/4) and wrap around.
  • On decks whose rows cannot carry those keys (two-row decks such as the Stream Deck +), a short press on the tools key steps one page forward. Holding it still opens the tools menu.
  • A page switch releases keys that are physically held: their release action runs, and pending encoder turns, queued images and OSC feedback overrides are dropped. This is necessary because a release slot is addressed by key index, and that index means a different macro after the switch.
  • Toggle states are retained per page. A toggled-on key is active again when you page back to it. That state lives in RAM only, so a restart or a deck reconnect clears it.
  • The selected page is persisted 1.5 s after the last switch; the deck comes back on the same page after a restart.
  • Pages are appended, and only the last one can be removed.
Editing follows the active page

Editing in the browser always applies to the active page. Selecting a different page in the browser switches the deck with it: what you edit is what the deck shows.


Lock mode

The FrenschPress lock mode has priority over everything happening on the deck.

Entering lock releases held deck macros, discards pending encoder turns and visual jobs, disables the local timecode display and clears every key. LO CK ED is then rendered across the middle three keys. Keys, encoders and virtual OSC actions are ignored until unlock — after which mappings, retained feedback, timecode and the tools key are restored from their current state.