Introduction
Recently I had to deliver my first online teaching session. The subject was sound design and I wanted the students to hear the audio at the same quality I was hearing in my home studio. For this I needed high-quality audio streaming. I knew what I wanted to achieve with the live stream, but I wasn’t exactly clear how to do it.
My goal was to share my screen, while demonstrating Adobe Audition, through the Zoom conferencing App. I needed to route audio from my microphone and also route audio from Adobe Audition and possibly from other apps or my web browser. I also wanted to keep the audio quality as high as possible.
So, this blog post is all about how I achieved High-Quality Audio Streaming alongside Zoom.
I must say upfront that the method I used was quite complex but hopefully people can apply and adjust the techniques to their own workflows.
- Audiomovers
- Listento Plugin
- Audio Routing
- Soundflower
- Pro Tools Aggregate Device
- Monitoring
- Streaming
- Zoom & Audiomovers Listento
- Setting up Zoom Audio
- Conclusion
Audiomovers
Firstly, I conducted a test by streaming audio and video from the Zoom Conferencing App to my mobile phone. I soon realised that Zoom was not suitable for demonstrating certain sounds. For example, with quieter sounds, like background atmospheres, it was almost impossible to hear what I was playing.
So next I decided to try Audiomovers. I was aware of the AudioMovers plugin, Listento, which I’d heard was excellent for high quality audio streaming. So, I set up an account and started a 7 day free trial.
First you have to download and install the Listento plugin. The installer comes with all the main plugin formats: VST, AU, AAX and is available for Mac and Windows. Please note, I use a Mac so have not been able to test this in Windows.
After checking the AudioMovers support page and user guide I was still unsure how to proceed. It took me a while to work out the best workflow for my needs, and I had to search through internet blog posts, podcasts and forums along with some trial and error before I was able to find a working solution.
The Listento Plugin
The concept of this plugin is fairly straightforward: Load the plugin on to the master output channel in your DAW, start the stream from the plugin window, then send the stream link to your audience. The audience opens the stream link in a browser window and they can then hear the high-quality audio you are sending out.
If you require the streamed audio to be routed in to a second DAW on the receiving end, you need the Listento receiver plugin. However this was not something I needed to do.
As a side note, if you are receiving audio on a mobile device there is an Android or IOS app available from relevant app store. I did test receiving audio on an Amazon Fire HD device and had a few issues with hearing the audio stream. This is possibly down to the Silk browser that seems to be the only option on the Amazon Fire tablet and the Listento App is not available from the Amazon App Store. There is a list of supported web browsers and DAW’s on the Audiomovers Support Page.
Audio Routing
Please note, that while my main focus was demonstrating Adobe Audition, this workflow should also work for any non-DAW application that plays back audio (E.G. Itunes, Web Browsers, etc). However, I did ultimately need to use a DAW (in my case Pro Tools), as you will see.
At first, I was unsure how Listento would work as I wasn’t using the Multitrack mode in Adobe Audition. As it turns out, the Listento plugin works fine in the Effects Rack within Adobe Audition, so whether you are in Multitrack mode or not it doesn’t matter. However, I also needed to route my vocal microphone through the Listento plugin and this was not possible while just editing single files in Audition.
I thought about using the Zoom audio input just for the Vocal microphone but I wanted to have a back-up plan if the Listento plugin didn’t work. I wasn’t worried about Listento from my end but if the students weren’t able to get it working I needed a quick fix!
My ideal scenario was to get both the Vocal mic and system audio streaming through the AudioMovers plugin and the Zoom App at the same time. That way the listener could decide if they wanted the high-quality audio stream or the Zoom audio stream.
Soundflower
My solution was to route the output of Adobe Audition to Pro Tools using the Soundflower App. Then use Pro Tools to mix the signals and stream the output to the Listento plugin.
Soundflower is really useful for routing audio between apps. Think of it like a virtual audio device.
To make this work I had to go into the Adobe Audition Audio Hardware Settings and choose Soundflower 2CH as the output device.
To enable Pro Tools to detect the Soundflower output I had to use the Pro Tools Aggregate Device as the Playback Engine.
Please take note that the Pro Tools Aggregate Device needs setting up carefully before you do this. The order in which you add Audio Devices to the Aggregate device is important. See below.
Pro Tools Aggregate Device Set up
Here’s how to set up the Pro Tools Aggregate Device:-
- Open the Audio MIDI Setup app from the Applications / Utilities folder. If you are unfamiliar with the Audio MIDI setup app there is a useful article here.
- Select Pro Tools Aggregate I/O from the left-hand menu.
- Untick any selected audio devices. Then, in this order, tick the Soundflower 2CH device first, followed by your Main Audio Device (in my case a Universal Audio Apollo Thunderbolt Device).
This ensures that Pro Tools detects Soundflower as the first Audio device (crucial for the next step to work).
- Now close the Audio MIDI Setup app.
Pro Tools Session Set up
After setting up the Pro Tools Aggregate Device I then started Pro Tools and created a new session. Here is how to set up the session:-
- Go to the Playback Engine (In the Setup menu) and select Pro Tools Aggregate IO.
- Click OK and Pro tools will restart the session. Now go to the Setup menu and select IO.
To keep things as simple as possible I deleted all the existing Input and Output paths in the corresponding tabs in the IO setup. Depending on your workflow you don’t necessarily have to complete this step but it made it easier for me to demonstrate in this case.
- Next, in the Input tab create two new stereo inputs. The first is for Soundflower on 1 & 2 (which I named ‘SF In’) and the second for the UAD Apollo In on 3 & 4. Pro Tools detects these as Analogue In 3&4 but on my Audio device they are Inputs 1 & 2.
- Now switch to the Output tab and create 3 new stereo outputs. Soundflower Out on outputs 1 & 2. Then the MON L/R output on 3 & 4 which is for the main UAD Apollo outputs.
The third, is an alternate output (in my case ‘Out 1-2’) so that I could route the Audiomovers stream to it. This was so I wasn’t listening to both the input and output at the same time through my headphones.
- The only thing to check in the Bus Tab is that the output busses are mapping to their associated outputs.
- After closing the IO setup window, it’s time to create some new tracks. Create a mono audio track and a stereo audio track, plus a stereo AUX track and Master Out track.
The Mono audio track has the input set to Apollo In.L (input 1 on the Apollo) which is what my microphone is connected to.
The stereo track I have named ‘Audition’ because this picks up the output from Adobe Audition and routes it to Pro tools. The input for this track is set to SF In.
Monitoring
As you can see in the screenshot, I placed the Listento plugin on my Master track insert with the output set to Out 1-2.
Usually I monitor from the main outputs of my UAD Apollo Interface (Mon L/R in Pro Tools) and use the UAD Console App for zero latency monitoring. I would normally mute the input in Pro Tools so I wasn’t hearing the delayed output signal as well. However, in this situation I couldn’t mute the Pro Tools input as it needed to be sent to the Listento Plugin. So instead, I routed the audio track outputs to Out 1-2 which is my alternate output.
The AUX track was used as a way of sending computer audio (but not my voice) to my main output. Then I could still monitor the sounds I was playing from Adobe Audition or any other apps.
You can see in the screenshot (below) that the Audition track has a Pre-fade Send routing to Bus 1-2. This goes to Aux1 and outputs to the Main outputs (Mon L/R). This also gave me separate controls over the level being sent to my own headphones and the levels going out to the Listento audio stream.
There are different ways of achieving the same outcome in Pro Tools but this is what worked for me.
After some tests, I also added a gate to the microphone input and a limiter on the master output. The gate was set to close when I wasn’t speaking, thus reducing background noise (computer fan noise, etc). The limiter was just there to protect the streaming output from being overloaded by peaks in level.
Streaming
Finally, you need to put the 2 Audio tracks into record ready mode and you should now receive an input from your microphone and audio from the output of Audition. Pro Tools is now simply acting as a mixer to allow both Audition and the microphone audio to pass in to the Listento plugin.
You can set up the Audio stream in the Listento plugin. Give the stream a name and copy the link so you can send it on to your audience. Then click start streaming when ready. You now have High-Quality Audio Streaming from your computer.
You can set the latency and streaming audio quality at this stage or change it as you go throughout the live stream. If listeners are having streaming issues you could try reducing the audio quality.
Zoom & Audiomovers Listento
So, having got this far the next step for me was to get the Listento plugin working alongside the Zoom Conferencing App. You may want to skip this stage if you are completely confident that all participants can receive high quality audio from the Listento streaming link. As mentioned earlier, this was just a back-up option for my students.
Getting this to work in Zoom is not as straight forward as you might think because the audio options in the Zoom App are fairly limited. It’s simple, if you want to just use your built-in webcam mic or even a single external mic, but in my situation I wanted to send both a microphone and the audio from Adobe Audition or any other apps I needed.
For this to work I had to return to the Audio MIDI setup utility.
- Open the Audio Midi Setup App and click the + (Plus) symbol at the bottom left of the screen. Then select Create Multi-Output Device.
- Next, create the device (which I named Mic & Audition), using the same method as you did to create the Pro Tools Aggregate device. The only difference being that this is just an output device without any inputs.
This time I selected The Universal Audio Apollo as the first device in the list and the Soundflower 2CH as the second device. Technically, I don’t think it matters which order you add the devices at this stage.
- Next go to System Preferences and select Sound. Then select Soundflower 2CH as the output device. Now, all your system audio will route to the Pro Tools / Listento Plugin.
Setting Up Audio In Zoom
After this was done I was able to go in to the Zoom App, click the arrow next to the microphone, and set the audio inputs and outputs. See Screenshot below.
I selected ‘Mic & Audition’ as the Speaker Output. The Microphone was set as my Universal Audio Apollo Thunderbolt device.
After this was done, it was just a case of testing everything to make sure it worked.
It’s worth noting that for anyone listening to the high-quality audio stream, their Zoom audio settings would have to be changed. They would have to select ‘Leave Computer Audio’ to avoid hearing both audio streams, one with a slight delay.
Conclusion
So after all this setting up how did it work in practice?
Well, some students used the high-quality audio stream and had no problems at all. Others were unsure how to mute their Zoom audio and were hearing both streams at the same time. Around half the students just used the Zoom audio, and for whatever reason didn’t try the Audiomovers stream.
Was this method too complicated? Are there better ways of demonstrating audio online? Perhaps the alternative is to pre-record short demo videos in advance. Then students can watch these from a streaming site: YouTube or VLE media Server, for example. Then they can return to the live online class for discussion or further instruction.
The main technical issue I had was latency between the Zoom video and the high-quality audio stream. Even when I set the latency in the listento plugin to its lowest setting of 0.1 m/s I was still experiencing around 1.5 seconds of latency when using my mobile phone.
This would become quite a problem if, for instance, you were demonstrating syncing audio to video.
I can‘t deny the High-Quality Audio Streaming from Listento was excellent. Compared to the Zoom audio output it was much better even when streaming in compressed formats such as AAC 192KBps.
I’d be interested to see if there are any solutions to the latency issue. As usual, If anyone has any comments or suggestions please put them in the comments or get in contact.
Read more blog posts here
If you’d like to stay up to date with future blog posts please subscribe.