Tips & Tricks
Jump to: Reboot | Robot Voice | Ethernet | Windows | Broadcast Output
When in doubt, reboot
If you encounter any issues with FarPlay, the first thing to try is to restart your computer. Yes, we know that's the oldest trick in the book, but it's amazing how often it helps.
If your partner's sound is strange, like a "robot voice", it could be that you have another audio app open that's using a different sample rate. Start by quitting as many other apps as possible, especially those that are actively using audio. Then, if you need to use another audio app at the same time as FarPlay, make sure its internal sample rate is set to 48kHz. After any of these changes, leave and rejoin your FarPlay session.
Make sure Ethernet is being used
Sometimes, if both WiFi and Ethernet are available on your computer, your computer may use WiFi rather than Ethernet, even though WiFi is much less reliable. This will result in higher latencies and more noisy artifacts in the sound. To make sure Ethernet is being used, turn off WiFi on your computer. Then end the current FarPlay session and start a new one. This way, when you connect, you'll be sure that Ethernet is being used.
Working with Windows
Windows (especially laptops) tends to have more issues getting down to real-time latencies than Macs.
The best guide we’ve found on the internet for optimizing Windows for real-time latencies can be found here: How to Optimize a Windows Laptop for Low Latency Real Time Audio. It's full of tweaks that will allow you to handle lower latencies with fewer audio dropouts. These tweaks range from very basic and safe (close all other applications and plug your laptop in) to more advanced/risky if done incorrectly (measuring DPC latency and removing unnecessary drivers). Only do the ones you feel confident about and do so at your own risk. Of course, the more optimizations you are able to apply, the better your computer will run FarPlay or any other professional audio software (ignore the recommendation about unplugging ethernet, of course!).
Before using FarPlay, ensure that the latest manufacturer-provided ASIO driver for your audio interface is installed. This is usually found on the manufacturer’s website in the “Support” or “Downloads” section. If your audio interface doesn’t offer this, you can try the more general ASIO4ALL driver.
The preferences for your ASIO driver are usually accessed through an icon in your system tray. If you have an RME Fireface interface, for example, you'll access the settings here:
In your ASIO driver’s settings panel, look for an option that says Buffer Size. Your options are typically powers of two (64, 128, 256, etc…).
Lower numbers are faster but more prone to audio errors/dropouts. You need to find the lowest buffer size with little to no audible audio dropouts. In my experience, 256 tends to be the maximum I can use to play with a remote partner in real-time; however, 128 and 64 are more comfortable. If 256 still has too many audio dropouts you need to apply more optimizations as described above.FarPlay also has its own Buffer Size setting. It is simplest to have FarPlay reflect the same Buffer Size as your ASIO audio driver. You can do so by opening FarPlay, going to Menu -> Settings, ensuring the correct ASIO Interface is selected, and choosing “ASIO Buffer Size” in the Audio Buffer Size setting. Don’t forget to click “Apply” after you have selected your desired settings.
Advanced users may choose to experiment with FarPlay running at a different Buffer Size than the ASIO driver but this is not usually helpful.
What is Broadcast Output and why is it necessary? FarPlay allows you to play music with a remote partner in near real-time. When pushing the limits of low-latency audio, there can be cases where your computer or internet connection cannot fully handle the load and audio dropouts occur. Even with this reality, it is often the case that we will prioritize lower latency over audio quality. This is because our tolerance for latency when playing rhythmic music is very low (usually <20 ms) so sometimes we have to put up with a small amount of audio dropouts in order to play in time with our remote partner.
For FarPlay to be a viable tool for high quality recording or live-streams however, no audio dropouts can be present. FarPlay's Broadcast Output enables this by processing the audio a second time with a delay, giving the computer/internet time to process it error-free.
To use Broadcast Output, you will need a FarPlay subscription (free of charge during the open beta period). Open FarPlay, sign-in, and open the settings panel.
Select the "Broadcast Output" tab at the top and check the box for "Use Broadcast Output". Here you can choose the device you'd like Broadcast Output to output the delayed audio to. This can be your audio interface or a software loopback program. More information on loopback later on. In the "Channel Layout" dropdown, you can choose what audio you'd like Broadcast Output to Output (Remote Sound, Your Sound, or both), whether you'd like them to output in Mono (1 channel) or Stereo (L/R), and what order you'd like those audio feeds to be broadcast in. Selecting "Your Sound" in addition to "Remote Sound" outputs your local audio and remote partner's audio in perfect sync, removing the need to match the local/remote audio feeds later on. Finally, you can select the length of delay you'd like Broadcast Output to use. The default (500ms) is usually fine but if you still hear audio dropouts in your Broadcast Output, you will need to increase the delay time until dropouts go away. At the bottom, you will see an overview of what channels your real-time Monitor and Broadcast Outputs are located on.
Great! Broadcast Output is now outputting a pristine copy of FarPlay audio to various audio channels. Now, how do you go about recording or streaming it? For this audio to be recognizable by recording or streaming software, you will need to understand audio loopback. For clarity, I will explain loopback using physical cables and later explain how it can be done entirely in software.
DAWs, OBS, or similar software can only see audio inputs (like a microphone or 1/4" line/instrument). FarPlay and other software playback programs are not capable of sending audio directly to an input, only to an output (usually going to headphones, speakers, or monitors). In the example above, FarPlay is broadcasting my remote partner's audio to output 3/4 of my audio interface. For that audio to be seen as an input, I could connect 2 1/4" TRS cables from output 3/4 on the back of my audio interface into input 3/4 on the front. Now when I open up a DAW or OBS I can select Input 3/4 as my "microphone", and it will receive the signal coming from FarPlay's Broadcast Output. Voilà!
Now, not everyone wants to use a physical cable, and you may not even have an audio interface with more than 2 physical outputs. This is no problem. Some audio interfaces by manufacturers like Focusrite, Audient, and RME have a way of loopbacking audio built-in to their drivers. In those cases you can simply open up your interface's software mixer, select the channels that FarPlay is broadcasting to, and enable Loopback on them. Please see your audio interface manufacturer's documentation for specific instructions. If your interface does not have this feature, you can use a software loopback cable. This will create a virtual audio output and input device. Any audio sent to the virtual audio output is automatically "looped back" to the virtual input device, which can then be seen by a DAW or OBS. The two most popular are the free Blackhole by Existential Audio and the pricier but excellent Loopback by Rogue Amoeba. A free alternative on Windows is VB-Cable, but it is not easy to use with ASIO. Software loopback does use additional CPU power and may incur more latency. Be sure to check your loopback program's documentation to determine if additional latency is being added.
FarPlay's Broadcast Output is now seen by your recording or streaming software. For recording yourself and your partner in a DAW, simply create two audio tracks (one for you and one for your partner) and select the approriate input channels. If you'd like to send your DAW's stereo mix to OBS or other software, you will need to do another loopback as described above. For streaming, you will need to delay the video in your streaming software to sync with the delayed audio. You can begin by setting the delay amount to the same length of time set in FarPlay's Broadcast Output settings; however, video feeds are typically slower than audio so you may have to do some trial and error to find the correct number.