Tips & Tricks
Jump to: Reboot | Sample Rate | Mic Permissions | 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.
Sample Rate Issues / Robot Voice
FarPlay operates at a sample rate of 48kHz. If your partner's sound is strange, like a "robot voice", or if it comes out in the wrong key (a half step off, for example), it could be that you have another audio app open that's using a different sample rate, or that your audio device is set to 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. Also, check that your audio device is set to 48kHz (if you're using your built-in mic, that setting will be in your System Preferences). After any of these changes, leave and rejoin your FarPlay session.
Microphone Permissions on Mac
If you're not getting any sound input on MacOS, this is likely due to a mic permissions issue. To fix this, quit FarPlay, then do the following:
Apple Menu → System Preferences → Security & Privacy
→ click the Privacy tab at the top
→ click Microphone in the left column
→ scroll down to FarPlay in the right column
→ make sure the checkbox next to FarPlay is ticked
Reopen FarPlay, and you should now see sound input from your microphone.
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 leave the current FarPlay session and either rejoin it or start a new one. This way, when you connect, you'll be sure that Ethernet is being used.
Working with Windows
Low-latency audio on Windows requires an ASIO driver. If you have an external audio interface, it's likely that it already has an ASIO driver installed. You can simply select this driver as your audio device in FarPlay. If you don't have an external interface, you can use the free ASIO4ALL. Here's our guide to using ASIO4ALL with FarPlay, and if you'd like to go further, here's our in-depth guide to optimizing your Windows computer for low-latency audio.
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 Preferences 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 preferences; however, video feeds are typically slower than audio so you may have to do some trial and error to find the correct number.