Commands & snapshots
A macro is a saved command or sequence. You can assign the same macro to a device button, an encoder, a Stream Deck key or a timeline cue. When you edit the macro, every assignment that uses it picks up the new contents straight away.
Assigning a macro
- Open the assignment, for example a button or an encoder, then its macro field.
- Pick an existing macro from the library, Quick-Create for a single command, or Multi-Step for a sequence of several steps.
- Set up the command as described in the sections below and save with Save Changes.
The library lets you search, edit, test and delete macros. Eligible custom macros can also be duplicated.
Test really sends the command. Before testing, check which destination is selected and whether it can start lighting, audio or video.
Single commands
- Choose the protocol and its settings in the editor.
- Select device lists the installed plugins. Their fields build the command for your destination. If there is no suitable plugin, enter the values yourself.
- Choose Save Changes and confirm the name in the dialog.
If you opened the editor from an assignment, the new macro is assigned there as well.
Min Time Between Go (s) sets how quickly the same macro may fire again. It guards against accidental double presses. It is not a delay within the sequence.
MIDI
| Setting | Meaning |
|---|---|
| Output: USB1 / USB2 / RTP | Outputs for this step, each selectable on its own. RTP needs RTP-MIDI enabled. USB 2 must be available as a MIDI device port. |
| Channel | MIDI channel 1–16 |
| Note | Note and velocity. Send Note Off on release ends the note when you let go. |
| Control Change | Controller number and value. Absolute sets a value, Relative + / − changes it in steps. |
| Fade for CC | Fades between the configured A and B values over the given time (milliseconds). |
| Program Change | Program number. Check how your destination numbers its programs. |
| SysEx | Hex bytes of the device-specific command, such as F0 … F7 |
A MIDI plugin can provide the device-specific fields. The output selection still applies.
OSC
Choose a saved Target, or enter IP and port under Custom target. Send to backup target also sends to a second destination, such as a backup machine. Use QLab addressing for this step offers a Workspace ID and an optional passcode. A QLab scan can fill in the host values.
Without a plugin, set Address, Type and Value. The types are no argument, String, Integer, Float and Double. The type has to match what the destination expects: "1" as text and 1 as a number are different arguments.
Relative values
With Relative value control, an OSC command does not send a fixed value but changes the current value step by step, for example a mixing console fader in steps of 0.05. The option appears for type Integer or Float without a plugin.
- Set Type to Integer or Float and turn on Relative value control. The Value field now reads Starting value.
- Choose the Direction: Increase or Decrease.
- Enter Step size, Minimum and Maximum. The starting value must lie between minimum and maximum.
- For an encoder, map
RIGHT >to Increase and< LEFTto Decrease, quickest via Opposite encoder directions.
Without feedback, the FrenschPress remembers the last value it sent and carries on from there. After a restart it begins at the starting value again. If someone changes the value directly on the device, the FrenschPress doesn't know.
Feedback (optional): with Value source → Device feedback, the FrenschPress works from the value the device reports back. The device has to reply to the FrenschPress IP and its OSC Listen Port, using the same scale as the command.
| Field | Meaning | Default |
|---|---|---|
| Feedback address | Address on which the device reports the value. Empty: the same as the command. | – |
| Query command | Optional command that asks for the value, e.g. /ch/01/mix/fader | – |
| Feedback argument | Which argument of the reply holds the value, counted from 0 | 0 |
| Refresh | When stale: query again once the value is older than Stale after. Initial sync, then live updates: query once, then only listen. Before every adjustment: query before each step (needs a query command). | When stale |
| Stale after (ms) | When a reported value counts as out of date | 30000 |
| Reply wait (ms) | How long the FrenschPress waits for the reply | 100 |
| Reply to query source port | For devices that reply to the sender's port instead of a fixed port | off |
If valid feedback is missing or out of date, the FrenschPress skips the step rather than send a wrong value. Relative values can't be combined with Use second command, Enable release command or QLab addressing.
HTTP
Choose a target, or host/IP and port. Then set Method, Path and, if needed, Headers and Payload.
- Methods: GET, POST, PUT and DELETE.
- Headers: one per line, as
Header-Name: value. - Payload: text or JSON. If you enter a payload, it is sent with GET as well.
Your destination decides which values are needed.
TCP
Choose a target, or host and port. Data holds what is sent. With Send as binary off, the content goes out as text. With Send as binary on, hex values are converted to bytes. A plugin can build this data from readable device fields.
Toggle alternate TCP payload sends the alternate data on every other press. Its binary setting follows the primary command. Send release payload sends on release and has its own binary option. The primary, alternate and release actions can each come from plugin fields.
Alternate and release fields that are switched on must be complete. When you reopen the command later, the editor shows the saved plugin settings again.
Art-Net & sACN
| Setting | Art-Net | sACN |
|---|---|---|
| Universe | 0–32767 | 1–63999 |
| Unicast | Destination IP or saved target | Destination IP or saved target |
| Without Unicast | Broadcast to 255.255.255.255 | Multicast for the universe |
| Priority | – | 1–200, default 200 |
| Channel / Level | Channels and percentages | Channels and percentages |
| Fade Mode / Fade Time | Fade between off and the target levels | Fade between off and the target levels |
Channel / Level uses the syntax you know from a lighting console:
1-12@50, 34+36+37@30, 120-130@100
This sets channels 1 to 12 to 50%, channels 34, 36 and 37 to 30%, and channels 120 to 130 to 100%. Values are 0–100%, not raw DMX values of 0–255. The fade only sets the time taken to reach the levels; the levels themselves stay as entered.
Momentary bump
Where it is offered, choose Momentary bump under Send release action. The lighting action is active while you hold the button. On release, the FrenschPress sends the matching return action. Use it for an accent that lasts exactly as long as the press. The option is only available with Toggle alternate action off.
Opposite encoder directions
When you assign an encoder turn, Also map the opposite direction may appear. It creates the opposite direction at the same time, such as level up and level down. Before saving, check the note that tells you which second control will be mapped. For Art-Net/sACN on encoder push, use the master fader instead.
Extra actions
- Toggle alternate action switches between the primary and the alternate action on successive presses.
- Send release action fires an additional action on release.
The editor only shows these options for compatible protocols and assignments. MIDI and OSC have their own second and release fields; TCP uses the payload fields described above.
For HTTP, the extra actions only change the payload. Target, method, path and headers come from the primary command.
Switch Set also offers Restore previous set selection on release. The selected set applies while you hold the button. On release, the previous sets return. This gives you temporary access to a second mapping layer.
For a complete on/off sequence with several steps, use the separate sequences in the Multi-Step editor.
Multi-Step
- Enter a name and description.
- Add steps and set up each one in its protocol editor.
- Drag steps to change the order if needed.
- Apply with Save Changes.
| Sequence | When it runs |
|---|---|
| On Press | normal button press |
| On Next Press | every other press, alternating with On Press |
| On Release | on release |
You switch on On Next Press and On Release in the editor.
Besides the protocols above, these step types are available:
| Step | Effect |
|---|---|
| Delay | waits the given time in milliseconds before the next step |
| Button Mapping Switch / Switch Set | switches the selected device buttons or encoder controls to set A, B or C |
| Variable | sets the name and value of a device variable |
| TimeCode | controls the MTC master or the internal timecode |
Snapshots
A snapshot stores incoming Art-Net or sACN channel values for up to ten universes. It lets you play back a prepared lighting look without the console having to keep running.
- In the macro picker, choose snapshot creation for Art-Net or sACN.
- Enter Universe Start and, if needed, Universe End. Art-Net starts at 0, sACN at 1. Ten universes at most.
- Set unicast and destination IP as needed.
- Set Fade Duration (ms), plus Priority for sACN.
- Choose the Trigger Mode:
- Toggle switches on and off with each press.
- Temp acts while you hold and restores the current external input on release.
- Create the snapshot and assign it.
- With the desired look arriving from the console, hold the assigned button for five seconds. The button flashes green three times when the recording is stored, and red three times if it failed.
Ignore recorded zeros leaves channels that were at 0 during recording under console control. This includes channels you set to 0 on purpose. With sACN the receiver must support per-address priority, with Art-Net it must merge HTP.
Hold to re-record lets you record again later with a long hold. Turn it off if a long-held Temp look should not overwrite the stored look.
Checking and correcting
Monitor shows the stored values without triggering the snapshot. Choose a universe. Non-zero only hides channels at 0. Refresh reloads the stored state.
You do not have to re-record to correct individual channels:
- Open the existing snapshot for editing. Recorded content shows a summary.
- Choose the universe.
- Under Levels to apply, enter the levels, for example
1-12@50, 20@100. - Choose Apply.
Only those channels change; all others keep their stored values. Apply writes the correction immediately.
Snapshot macros cannot be duplicated, because the recording belongs to the original macro. Keep important looks safe in a backup.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| MIDI does not arrive over RTP | RTP-MIDI is not enabled | Enable RTP-MIDI, then test again |
| MIDI does not arrive over USB 2 | USB 2 is working as a USB host for a Stream Deck or the LTC dongle | In Settings, turn off Enable USB Host support and choose Save & Restart USB 2 |
| OSC destination does not react although the address is right | Argument type does not match, e.g. text instead of a number | Set Type to what the destination expects |
| Saving fails | Alternate or release fields that are switched on are incomplete, or plugin fields are still loading | Complete or switch off the fields; wait until the plugin fields have loaded |
| Macro fires only once when pressed quickly | Min Time Between Go (s) blocks the repeat | Lower the value |
| Snapshot was overwritten by accident | Temp look held for a long time with Hold to re-record on | Turn off Hold to re-record |
| Duplicate is missing for a snapshot | Snapshot macros cannot be duplicated | Keep the look in a backup |