Audio Tracking
Seervision Audio Tracking Setup Guide
Steering a PTZ camera based on Shure MXA920 microphone panels using Seervision
This guide is a primer to setting up Audio Tracking with Seervision using Shure MXA920 panels. The end result should be that based on talker position data from the MXA920, Seervision automatically steers PTZ cameras to the speaker location and frames them.
This guide is still evolving and is expected to change and improve over time. Do not be surprised if the next time you access this page, things look a bit different.
There are a few individual parts to get connected, here is how the process breaks down:
- Set up and install the Shure MXA920
- Set up and install the Seervision server + PTZ camera
- Connect the two via Node-RED (the main topic of this guide)
Can I do this in a different way, with different hardware, or make other changes?
That really depends on the changes! We are happy to discuss with you what your needs are and how we can help or make it work for different hardware, configurations or logic. Don’t be shy to get in touch!
Requirements
There’s some requirements up front that need to be met before you can proceed:
- The Shure MXA920, Seervision server and PTZ camera all need to be able to communicate with each other over IP. This means that they must all be located in the same IP subnet, or that the respective subnets are able to communicate with each other.
- During installation and commissioning only: the Seervision server(s) must be online and remotely accessible, so we can guarantee they are up to date before commissioning kicks off. They can be kept offline during normal operation
- Steering of the PTZ camera only works if it is a PTZ camera supported by Seervision, as listed on our integrations page.
- The Shure MXA920 must be correctly configured by accredited Shure representatives, in order for Seervision’s steering to be accurate.
Before you start
Before proceeding with the rest of this guide, make sure you have already properly configured the Seervision server to correctly control the PTZs you intend to steer. If you’re not sure where to start, our Getting Started guide will walk you through it.
Only proceed with the next section once you have successfully completed the above, as this is a prerequisite to the next steps.
Setting up and installing the Shure MXA920
In this guide, we won’t be covering how to set up the Shure MXA920 for optimal audio, that’s best left to your Shure representative and the Shure MXA920 manual. The outcome here should be that you have an MXA920 that is ready to go and correctly configured. You will also need the IP of the Shure panel, as we’ll be using that to connect to the panel’s API, needed for talker position data.
Shure MXA920 Configuration Notes:
- The area of interest within which you wish to pick up audio must be defined as a covered area in the Shure designer.
- To simplify the calibration later on, make sure that the mounting orientation of the microphone panels and the PTZs are either parallel or perpendicular:
- For square panels, this means that the edges of the panels are parallel or perpendicular to the orientation of the PTZs
- For round panels, this means that the LED is at a 45 degree angle to the mounting orientation of the PTZs
- For optimal performance Automatic Coverage must be enabled for these areas. While our system can work Automatic Coverage disabled, it negatively impacts speaker tracking performance.
- If there are loudspeakers in the room, their signal must be fed into the AEC Reference of the Shure MXA920
Calibration
To correctly steer PTZs based on talker position input, we need to measure all the distances between the microphones and the PTZs. To measure these, you will need the following:
- The Seervision servers should be on a network that is connected to the internet, so they are remotely accessible by Seervision (necessary only for the duration of the setup). Without remote access, calibration is not possible.
- A top-view schematic of the room that shows the microphone location and PTZ locations
- Our printed markers, one per microphone (sent to you as PDF)
- A laser meter to measure additional distances where necessary
Automatic Measuring Using Markers
In many cases, we can automatically establish the distances by attaching markers to the microphones, and steer the PTZs so they can see the markers. To prepare for automatic calibration:
- Print one marker per microphone that needs to be calibrated (we will send you these as PDF via email)
- Measure the length of the line on the front of each marker: it should be 25 cm. If it is not, let us know what the actual width of the line is, so we can scale accordingly
- Read the instructions on the back of the marker, it is very important they are placed on the correct corners of the microphone panel, as shown in the instructions!
- Once all markers are in place, let us know and we can start the calibration
Note: If you have round microphone panels, you will have to place the marker parallel to the LED, flat on the microphone surface.
Automatic Measuring Using Markers
Sometimes, the layout of the room or positioning of the markers does not allow for automatic measuring based on the markers. In that case, for each PTZ, you will have to measure using a laser distance meter (to approximately 5 cm precision):
- The X and Y distances from the center of the microphone panel to the lens of the PTZ (see schematic below)
- The Z distance between the PTZ lens and the ceiling to which it is attached
Final Result and Validation
With the final results of the calibration, it should be possible to draw a schematic that contains the distance information. The below schematic is just an example, but it illustrates all the distance information that should be available at this point.
To validate the measurements are correct, the next step is to check that the PTZs are moving to the correct location in the room by setting up a conference call, and having somebody on-site speak from different positions. Depending on the observed accuracy, the size of the room, and the amount of cameras, this step can take multiple hours, also depending on the parameters that we need to tune and the use-case of the room.
Control Programming
In nearly all situations, you will want to connect your venue control panel, such as Q-SYS, AMX or Crestron, to our audio setup, to turn it on, off, or know when to switch video feeds. To be able to configure this, you will need to know a minimal amount of Node-RED and JavaScript. In this case we will provide you with access to the Node-RED instance running the Seervision room control.
The following paragraphs are purely intended as an overview of the programming that will be required to control our audio flows. It is therefore intentionally a high-level description. If you need more detail on getting started with Node-RED and what our integration looks like, check out our Developer Guide.
Communication Protocol
Thanks to the flexibility of Node-RED, it is entirely up to you to decide how to communicate with our room control. Node-RED provides multiple options, such as UDP sockets, TCP sockets, HTTP calls or WebSockets. You are free to decide which of these you prefer – all you will need to do is implement it correspondingly in Node-RED (which is usually straightforward, as many protocols are supported out of the box).
On/Off Control
To enable or disable our audio tracking flow, we will provide you with hooks that you can activate to start or stop tracking. Additionally, you will need to send a “heartbeat” every 2 seconds with the current state (on or off) so that we can correctly synchronize in the case of a network interruption or reboot.
Video Feed Switching Control
Our Node-RED flow will provide hooks that inform you when a camera should go live. All you will have to do in Node-RED is write a node to consume this information and send it to your control software.
Operating the SV Suite Remotely
Operating the SV Suite Remotely
How to operate the SV Suite remotely/off-site
Especially with the pandemic, a recurring question we get is “Can I operate the SV Suite remotely?”. The answer’s a resounding yes, but it does come with a few caveats and, depending on the implementation you choose, will require some LAN networking adjustments. In the sections below, we’ll attempt to walk you through the various “flavours” of remote operation, and you can decide which one would suit your workflow best.
Operating the system remotely requires a high-bandwidth, stable and low-latency network. Of course, that’s no trivial requirement, but anything below that will likely cause unexpected behaviour (streams or input controls lagging, inconsistent UI states), which is why we stress this. In case you’re still not sure, WiFi is an absolute no-go for this type of operation.
Remote Fundamentals
At its most basic, the UI of the SV Suite is just an interface hosted locally on the Seervision server, and you access this interface through a browser. Any attempt to remotely control it will concretely mean that you’re looking for a way to remotely access the server and the interface it serves. Both of the approaches below will walk you through how to get that done without needing to install anything on the Seervision server itself – all of the routing is done using your own available infrastructure.
Simplest: Remote Desktop
The easiest way is using any remote desktop software. There’s lots of software that does this – at Seervision, we’re pretty partial to Parsec, as it plays nice with discrete GPUs and is one of the smoothest implementations we’ve seen so far. Of course, there’s plenty of alternatives that will work just fine.
The setup
Connect the Seervision server and the PTU as you usually would, and use an on-premise device (laptop or desktop) to confirm everything works as expected. Once it’s up and running, install the Remote Desktop software of your choice, and leave the machine running (you can turn off the display, but don’t let the machine go to sleep).
Once remote, log in to the machine via your Remote Desktop software, and you should be able to operate the system from wherever you are!
More complex: VPN
With the VPN approach, the goal is to be able to access the Seervision server’s IP by routing your remote traffic via a VPN that is on the same network as the server.
If you intend to use a VPN, it will need to be able to provide a bandwidth of at least 5 Mbps sustained
The setup
The first step is to set everything up normally, and to make sure that the machine that will be the VPN endpoint is already able to access the Seervision server’s IP and UI as normal.
The second step is to configure this machine as the VPN endpoint. Most VPNs will work, though we like the open-source Wireguard the most as it’s probably the lowest-latency one we’ve seen, and has seen rapid adoption across the digital world. Alternatively, our go-to is ZeroTier which is also a wonderfully performant alternative. Note that ZeroTier would require additional configuration to act as the bridge network (as that’s not its default intended use-case).
We don’t have an in-depth guide to offer here, as the configuration of the VPN heavily depends on the available networking infrastructure and what exactly it is that you want to do. Of course, we’re happy to help out and offer some ideas, just shoot us an email!
Seervision Server Setup
Seervision Server Setup
Here's how to configure a Seervision server to control the PTU of your choice
If you are using Seervision with a Q-SYS setup or NC Series PTZ camera, please follow the instructions on support.qsys.com or those provided by your Q-SYS rep.
This page will talk about getting the Seervision server to nicely “talk to” (i.e. control) the pan-tilt unit (PTU) you have (be that a PTZ or a robotic head). There’s a few more steps left, but before we dive in, let’s make sure we’re on the same page. At this stage, you should have:
- Powered on your PTU and connected it to your LAN. If that’s not the case, check out the Quickstart section and get set up.
- Powered on the Seervision server and connected it to the same LAN
- The SDI or NDI® feed of your PTU feeding into the Seervision server (for help on how to do that, see the SDI/NDI® page).
- A laptop/PC with a Chrome browser that’s on the same LAN as the PTU and the Seervision server
- Nice to have: in the case of a robotic head, have your lens control set up – that’s not a hard requirement to verify everything works, but good to have. More detail about this can be found on the Robotic Head Quickstart page.
If this is the case, great, let’s dive in!
This page is one of the hardest to write adequate documentation for, as there are many variables that come together in your setup. We’ve tried hard to make it as exhaustive as possible. If we’ve missed something, don’t hesitate to reach out!
Accessing the Seervision interface
So first questions first, how can you access the Seervision Suite? The Suite is served as a web app on the IP of the server, so you will need a client machine with Google’s Chrome browser installed to access it.
The HDMI ports of the Seervision server do not give access to the interface. They only serve a terminal login and nothing else. To access the Seervision Suite, simply access the IP via your browser.
To bring up the interface, you’ll need to find out the IP of the Seervision server.
By default, new Seervision servers are configured to take a DHCP IP. If you have connected the Seervision server on a network with a DHCP server, consult the DHCP server’s client list to find the IP of the server. If you need the MAC address, this is physically printed on the back of the server.
If you do not have access to the DHCP server, or there is none present, use our Seervision Discovery tool to find the server’s IP.
Accessing the link-local interface of the Seervision server
If you’re on a network that doesn’t have a DHCP server, the Seervision server will configure itself to take a link-local IP of the form 169.254.0.0/16 (for more information, see Wikipedia on the link local address). You can discover this IP using the Seervision discovery tool. Once you have the link-local IP, you will have to configure your PC/laptop to sit on this network, before you can open our interface.
macOS
On macOS, go to System Preferences > Network, and use the little + to add a new virtual Network Interface. Make sure to select the correct interface that you are using, add it, and set the Configure IPv4 dropdown to Manually. As an IP address, add 169.254.1.5, set the Subnet Mask to 255.255.255.0. You can leave the Router option empty as there shouldn’t be one.
Microsoft Windows
Windows does not currently seem to conveniently allow the creation of virtual interfaces (please let us know if we’re wrong there!) so you will have to modify the settings of your current network connection.
- Navigate to Network & Internet and find the network connection you want to use for accessing the Seervision server.
- Click the network connection and under IP Settings, hit Edit.
- In the dropdown, select Manual and enable the IPv4 slider
- Set the IP address to 169.254.12.5
- Set the Subnet prefix length to 16
- Set the Gateway to 169.254.1.1
- You can leave the DNS empty
Hit Save, you should now be able to access the server’s link-local IP in your Chrome browser.
2. Configuring the Seervision server
Now that you can access the Seervision Suite, it is time to configure it to communicate with the PTU of your choice. At this stage, you should already have completed the PTU setup (see our other Quickstart guides).
Using the Google Chrome browser, type in the server’s IP you found in the steps above, and go to the Operations Server (for example at http://192.168.1.101/operations/server) and in the PTU Configuration, click the three vertical dots to create a new configuration.
- Give the configuration a name that you can easily recognise, such as Main Room Cam 1 for example
- For PTU, select the driver that is applicable to your PTU
- Under IP, fill in the IP of the PTU that you wish to control
- For the Camera menu, make sure to select the relevant lens configuration. If you don’t see yours listed, don’t worry, it can be added when necessary through lens calibration later on (see below). Just select Calibration for now.
- Save your configuration, then hit the green Launch or Relaunch button
After a few minutes, the system should be up and running, and if you scroll down in the Operations Server, the PTU Status should show Connected. If that’s the case, congratulations, you’re close to done! Go check out the Seervision Manual to see what you can do with your newly setup Seervision server.
If not, no problem, this setup has a lot of moving parts! Just shoot us an email and we’ll help you get set up.
3. Calibrating the lens (for Robotic Heads only)
This is only relevant if you are using a robotic head, all PTZ setups come with a pre-calibrated lens.
At this point, you should be able to access the UI, control the head, and control the lens’ zoom and focus. If that’s the case, great! Now it’s time to calibrate the lens to get better tracking performance.
An in-depth walkthrough of the calibration can be found in our online manual. The basic steps are as follows:
- Point the camera at a feature-rich environment
- In the Preferences pane, navigate to Lenses, select the Calibration camera, and the corresponding Calibration Lens
- Once selected, in the same panel, click the Add New button in the top right. Add in the name of your currently mounted camera, and the name of the current lens that you have mounted
- Click Start Calibration and wait for the process to complete
- Once the process has completed, open up the Lenses tab again and select your newly calibrated camera/lens pair!
Disclaimer: NDI® is a registered trademark of Vizrt Group.