HyperDecks
Last updated
Last updated
MixEffect can control up to four HyperDecks from the app and any number of HyperDecks using Shortcuts.
Once you are connected to a switcher, do the following to configure your HyperDecks for use with your switcher. If you have already configured them in ATEM Software Control, you can skip this step.
Tap Settings in the Switcher Section navigation list.
Tap HyperDeck.
Enter the IP address of the HyperDeck.
Configure the Input if the HyperDeck if it is connected to your ATEM switcher.
Set the Auto Roll and Offset values if desired.
Tap Save.
If the switcher is able to connect to the HyperDeck, a green checkmark will appear next to the IP address.
You can configure up to four HyperDecks to work inside the MixEffect application.
If you create a new switcher, the HyperDecks section will appear in your Switcher Section navigation list. If you are using an existing switcher, the HyperDecks section may not appear in the list. To add it, follow these steps:
Go to the Switcher Detail page for your switcher.
Tap Reset Layout.
The HyperDeck section will appear below Color Generators. You can tap Edit from the Switcher Navigation section to rearrange the order of your switcher sections.
You can add a HyperDecks panel to your switcher page by following these steps:
Go to the Switcher section.
Tap the Switcher Page menu in the upper-right hand corner.
Tap Edit This Page.
Tap Add Panel to XXX where XXX is the switcher page section you wish to add the panel to.
Choose HyperDecks from the menu that appears.
Tap Edit to rearrange the order of the panel in the section.
Tap Close.
The HyperDeck panel is where you control the functions of the HyperDeck from MixEffect.
A HyperDeck can either record or playback videos stored on storage cards inserted into the HyperDeck. MixEffect displays these in two separate tabs to differentiate between the two modes.
The Record tab displays the current timecode from the ATEM switcher, along with the amount of recording time available on the currently selected storage card.
If you are not recording, you can tap on the card icons in the bottom-left hand corner to switch storage devices.
There is a Warning icon located in the bottom-right of the Record panel. Enabling that will turn the selected panel red when a recording session is not active. Use this as a reminder that a HyperDeck should be recording.
The Playback tab is used to controlling the playback of video clips stored on the HyperDeck. It has the following controls:
Clip Name: The name of the currently selected clip.
Clip Length: The length of the currently selected clip.
Time Elapsed: How much time has elapsed in the currently selected clip.
Time Remaining: How much time is remaining in the currently selected clip.
Back: Goes to the previous clip. If a clip is currently playing and two or more seconds have elapsed, tapping this button will move the playhead to the start of the current clip.
Play: Starts and stops playback of the currently selected clip. If no clips are selected, the first clip will start playing.
Single Clip: When toggled, MixEffect will instruct the HyperDeck to play just the selected clip and stop. If not toggled, the HyperDeck will play subsequent clips (until the end of the clip list) after completing the current clip.
Next: Goes to the next clip. If on the last clip and loop all is not enabled, the last frame of the last clip will be displayed. If loop all is enabled, tapping the Next button will go to the first clip.
Loop: Toggle between Single Clip looping, Loop All, and No Loop.
Shuttle / Jog Controls: A toggle to switch between shuttle and jog. If you have a device with a Taptic Engine, spinning the Jog Control wheel will provide haptic feedback. Long-press on the Jog Control wheel to increase the jog speed.
Clip List: The list of video clips stored on the HyperDeck for the currently selected card.
Card List: Icons representing the storage slots of the HyperDeck. Tap to switch cards when not playing or recording.
Input: The input of the ATEM switcher that the HyperDeck is attached to.
The Send HyperDeck Command action allows you to send a command to any network-addressable HyperDeck.
Command: The command to send to the HyperDeck. See list of commands below.
IP address: The IP address of the HyperDeck.
Port Number: The port number to communicate with the HyperDeck. The default is 9993.
A string that is the result of the HyperDeck command.
Refer to the HyperDeck manual for a complete list of support commands. Here is a sampling of the commands you can send to HyperDecks running 1.11 firmware. Note that some older HyperDecks that run the 1.08 firmware may not support all of these commands.
help: return list of supported commands
commands: return commands in XML format
device info: return device information
disk list: query clip list on active disk
disk list: slot id: {n}: query clip list on disk in slot {n}
quit: disconnect ethernet control
ping: check device is responding
preview: enable: {true/false}: switch to preview or output
play: play from current timecode
play: speed: {-5000 to 5000}: play at specific speed
play: loop: {true/false}: play in loops or stop-at-end
play: single clip: {true/false}: play current clip or all clips
playrange: query play range setting
playrange set: clip id: {n}: set play range to clip {n} only
playrange set: clip id: {n} count: {m}: set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}: set play range to play between:
timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out: {out}: set play range in units of frames between:
timeline position {in} and position {out}
playrange clear: clear/reset play range setting
play on startup: query unit play on startup state
play on startup: enable: {true/false}: enable or disable play on startup
play on startup: single clip: {true/false}: play single clip or all clips on startup
play option: query play options
play option: stop mode: {lastframe/nextframe/black}: set output frame when playback stops
record: record from current input
record: name: {name}: record named clip (supports UTF-8 name)
record spill: spill current recording to next slot
record spill: slot id: {n}: spill current recording to specified slot. Use current slot id to spill to same slot
stop: stop playback or recording
clips count: query number of clips on timeline
clips get: query all timeline clips
clips get: clip id: {n}: query a timeline clip info
clips get: clip id: {n} count: {m}: query m clips starting from n
clips get: version: {1/2}: query clip info using specified output version:
version 1: id: name startT duration
version 2: id: startT duration inT outT name
clips add: name: {name}: append a clip to timeline
clips add: clip id: {n} name: {name}: insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name}: append the {inT} to {outT} portion of clip
clips remove: clip id: {n}: remove clip {n} from the timeline (invalidates clip ids following clip {n})
clips clear: empty timeline clip list
transport info: query current activity
slot info: query active slot
slot info: slot id: {n}: query slot {n}
slot select: slot id: {n}: switch to specified slot
slot select: video format: {format}: load clips of specified format
slot unblock: unblock active slot
slot unblock: slot id: {n}: unblock slot {n}
cache info: query cache status
dynamic range: query dynamic range settings
dynamic range: playback override: {off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}: set playback dynamic range override
notify: query notification status
notify: remote: {true/false}: set remote notifications
notify: transport: {true/false}: set transport notifications
notify: slot: {true/false}: set slot notifications
notify: configuration: {true/false}: set configuration notifications
notify: dropped frames: {true/false}: set dropped frames notifications
notify: display timecode: {true/false}: set display timecode notifications
notify: timeline position: {true/false}: set playback timeline position notifications
notify: playrange: {true/false}: set playrange notifications
notify: cache: {true/false}: set cache notifications
notify: dynamic range: {true/false}: set dynamic range settings notifications
goto: clip id: {start/end}: goto first clip or last clip
goto: clip id: {n}: goto clip id {n}
goto: clip id: +{n}: go forward {n} clips
goto: clip id: -{n}: go backward {n} clips
goto: clip: {start/end}: goto start or end of clip
goto: clip: {n}: goto frame position {n} within current clip
goto: clip: +{n}: go forward {n} frames within current clip
goto: clip: -{n}: go backward {n} frames within current clip
goto: timeline: {start/end}: goto first frame or last frame of timeline
goto: timeline: {n}: goto frame position {n} within timeline
goto: timeline: +{n}: go forward {n} frames within timeline
goto: timeline: -{n}: go backward {n} frames within timeline
goto: timecode: {timecode}: goto specified timecode
goto: timecode: +{timecode}: go forward {timecode} duration
goto: timecode: -{timecode}: go backward {timecode} duration
goto: slot id: {n}: goto slot id {n} equivalent to "slot select: slot id: {n}"
jog: timecode: {timecode}: jog to timecode
jog: timecode: +{timecode}: jog forward {timecode} duration
jog: timecode: -{timecode}: jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}: shuttle with speed
remote: query unit remote control state
remote: enable: {true/false}: enable or disable remote control
remote: override: {true/false}: session override remote control
configuration: query configuration settings
configuration: video input: {SDI/HDMI/component/composite}: change the video input
configuration: audio input: {embedded/XLR/RCA}: change the audio input
configuration: file format: {format}: switch to specific file format
configuration: audio codec: {PCM/AAC}: switch to specific audio codec
configuration: timecode input: {external/embedded/preset/clip}: change the timecode input
configuration: timecode preset: {timecode}: set the timecode preset
configuration: audio input channels: {n}: set the number of audio channels recorded to {n}
configuration: record trigger: {none/recordbit/timecoderun}: change the record trigger
configuration: record prefix: {name}: set the record prefix name (supports UTF-8 name)
configuration: append timestamp: {true/false}: append timestamp to recorded filename
uptime: return time since last boot
format: slot id: {n} prepare: {exFAT/HFS+} name: {name}: prepare formatting operation filesystem type with volume name {name}
"slot id" can be omitted for the current mounted slot
"name" defaults to current volume name if mounted (supports UTF-8)
format: confirm: {token}: perform a pre-prepared formatting operation using token
identify: enable: {true/false}: identify the device
watchdog: period: {period in seconds}: client connection timeout
Use the Send HyperDeck Command to create interactive interfaces to your HyperDecks via Shortcuts.
The screenshot above shows how you can create a menu to send various commands to a HyperDeck.
It's recommend to store a reference to the HyperDeck's IP address in a variable so you don't have to enter it every time. You can also copy and paste a shortcut action multiple times to do the same thing. Use this sample shortcut as a starter.