Avid S3L Remote Power On

The ICF recording studio where I do mixing for live video and internet broadcasts for is, shall we say, small. Due to its small size and the presence of multiple large screens, it can become quite warm, despite fans to help cool it.

ICF Recording Booth

To remove a source of heat generation, I moved the Avid E3 Engine outside and on top of the booth, a change that both made it quieter and much cooler. (Note, we use a separate console for recording our bands in the studio, so the E3 fan noise doesn’t cause any problems as it is normally powered off.)

Placing the device outside though means I cannot as easily flip the power switch to power it on. To get around this limitation, I did some research and found that I can power the device on using the Ethernet Wake-on-LAN protocol.

Avid E3 Engine

To remotely wake the E3 engine, you need three things:

  1. A computer that is connected to the same Ethernet network as the E3 engine. If VLANs are in use, they must be on the same VLAN.
  2. The MAC address for the engine. The MAC address is available under the Options > Devices tab and right-clicking on the E3 engine image.
  3. The IP subnet address of the network. (Optional,  depending on the software used.)

Software for remotely waking the E3 engine.

There are several software packages available to send the special Wake-on-LAN Magic Packet.

Mac

  • Wake On Lan by Depicus (Mac App Store, $1.99)
  • Remote Desktop  (Apple, $79.99) – Also useful for controlling the S3L-X remotely.

Windows

Command-line

For those comfortable with the command-line, a short Python script will also do the job. Save this script somewhere as wakeonlan.py and make it executable with chmod +x. Myself, I keep a copy of the script in my ~/usr/bin directory.

#!/usr/bin/env python
# https://apple.stackexchange.com/questions/95246/wake-other-computers-from-mac-osx

import socket
import sys

if len(sys.argv) < 3:
    print "Usage: wakeonlan.py <ADR> <MAC>     (example: 192.168.1.255 00:11:22:33:44:55)"
    sys.exit(1)

mac = sys.argv[2]
data = ''.join(['FF' * 6, mac.replace(':', '') * 16])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(data.decode("hex"), (sys.argv[1], 9))

To wake my system, I call the  script like below, where 172.16.0.255 is the subnet of my network, and 00:90:fb:4a:13:9e the MAC address of my E3 engine.

~/usr/bin/wakeonlan.py 172.16.0.255 00:90:fb:4a:13:9e

Avid Stage 16

Unfortunately, the Stage 16 Box cannot be remotely power cycled without additional equipment. I haven’t set this up yet, but my plan would be to use one of the devices below to enable remote power on/off of the device.

HyperDeck multi-mono audio to surround

I recently made a recording with a Blackmagic Design HyperDeck 12G from an HDMI source which had 5.1 audio. Unfortunately, the HyperDeck recorded 16 independent mono channels, which meant that everything was on the center channel when I imported it into Final Cut Pro X. In addition, the C and LFE channels were swapped in the same manner that Media Express swaps them.

To fix the issue, I was able to use a similar command to what I used for fixing recordings from Media Express (see my post on that issue). The one change was using “-map 0:1” as the HyperDeck stores the video as Stream #0. This command has the nice side-effect of stripping the extra unused audio channels from the file, which also reduces the file size.

ffmpeg -i input.mov \
-c:v copy \
-filter_complex \
"pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:1 -map [out1] -c:a pcm_s24le \
output.mov

I also have some 7.1 sources, and for them I’ll be using a slightly modified version of the command.

ffmpeg -i input.mov \
-c:v copy \
-filter_complex \
"pan=8c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5|c6=c6|c7=c7[out1]" \
-map 0:0 -map [out1] -c:a pcm_s24le \
output.mov

Media Express C/LFE channel swap

Media Express by Blackmagic Design incorrectly swaps the C (Center) and LFE (low-frequency effects) channels on 5.1 surround material. This can be fixed using the ffmpeg command.

TL;DR

I recently purchased a Blackmagic Design UltraStudio 4K to do some recording from HDMI sources. Recordings must be made using the provided Media Express software, which is fine, except for the fact that the C and LFE audio channels are swapped in 5.1 material. As you can see in this screenshot, the spoken word coming through the center channel is on channel #4 instead of channel #3.

For reference

  • The standard 5.1 channel order for Wave files is: L, R, C, LFE, Ls, Rs
  • The non-standard Media Express 5.1 channel order is: L, R, LFE, C, Ls, LR

After significant troubleshooting, I found a solution using ffmpeg from the command-line to swap the C and LFE channels. The remaining steps require a working ffmpeg installation. I haven’t found a standalone version for macOS, but it is available via Homebrew.

HOWTO: Swap C and LFE channels on .mov file written by Media Express. Replace the input.mov and output.mov filenames as appropriate. The actual magic happens with the c2=3|c3=2 part of the –filter_complex flag.

ffmpeg -i input.mov \
-filter_complex "pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:0 -c:v copy \
-map [out1] -c:a pcm_s24le \
output.mov

If by chance you’ve already worked on a broken file with Final Cut Pro and want to fix the channel ordering on the exported file, the command is only slightly different—change the -map 0:0 to -map 0:1. FCP writes video as stream #0 and audio as stream #1, whereas ME writes audio as stream #0.

ffmpeg -i input.mov \
-filter_complex "pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:1 -c:v copy \
-map [out1] -c:a pcm_s24le \
output.mov

References

  • [Blackmagic Forum] Audio: LFE and Center channels being switched. I made a post on Jan 19, 2019 with similar information to that above.