-
-
Couldn't load subscription status.
- Fork 41
Description
Currently, the ATEM module in Companion allows us to set the transition rate (per M/E, per style), but there is no way to read the current rate into a variable or to adjust it relatively.
This creates two major limitations:
• We can’t display the current rate on a Stream Deck Plus rotary/OLED.
• We can’t implement rotary-style incremental control (+1 / –1) without workarounds.
What I’m asking for:
1. Expose the current transition rate as a variable/feedback
• e.g.
• Ideally per style as well:
• $(atem:me1_mixrate)
• $(atem:me1_diprate)
• $(atem:me1_wiperate)
• $(atem:me1_dverate)
2. Add a “Transition Rate: Adjust (relative)” action
• Parameters: delta (positive or negative integer), min, max
• Example: +1 → increments by one frame until max, –1 → decrements until min.
Use case:
Stream Deck Plus rotaries. The hardware is ideal for scrubbing a parameter like transition rate. Operators could:
• Rotate left → decrement rate (min 1 frame)
• Rotate right → increment rate (max per ATEM model, often 250 frames)
• OLED shows live rate feedback via variable.
Benefit:
This makes Companion much more powerful for ATEM users, especially with Stream Deck Plus, by letting us adjust and monitor transition rates smoothly without external bridges or shadow variables.
SDK reference:
The ATEM API already exposes this:
// For Mix transition parameters
IBMDSwitcherTransitionMixParameters* mixParams = nullptr;
meBlock->QueryInterface(IID_IBMDSwitcherTransitionMixParameters, (void**)&mixParams);
if (mixParams) {
uint32_t rate;
mixParams->GetRate(&rate); // <-- read current rate
mixParams->SetRate(rate+1); // <-- example increment
}
Equivalent GetRate/SetRate methods exist for Dip, Wipe, and DVE parameter interfaces.
References:
• ATEM SDK: GetRate() and SetRate() available for Mix, Dip, Wipe, and DVE transition parameter interfaces.
• Current Companion module already implements Set but not Get or Adjust.