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.
Working with Windows
FarPlay supports native Windows audio devices, so you can use FarPlay immediately with your computer’s integrated audio device, without any additional downloads. FarPlay also supports ASIO devices and drivers, which will give you the best possible latency. We have more information on optimizing your Windows setup here.
Fine-tune your Hardware Buffer
When you first start a session, before anyone else connects, you’ll find your Local Latency displayed under Remote Sound. This is a measure of the total latency in your audio hardware, from capture at the mic to reproduction in your headphones. You can fine-tune this by adjusting the Audio Buffer Size in Preferences. This will have different effects depending on your hardware and platform. On Mac, you should easily be able to go to the lowest values without problems; on Windows, you may need to experiment with this value for the optimal setup.
Manually Adjust your Latency
With the Auto button engaged, FarPlay will continuously adjust your latency to maintain good sound quality in your monitoring. If there’s a spike in internet traffic, for example, FarPlay will automatically increase your latency to avoid glitches in the audio.
This works well for many cases, but for advanced use, when maintaining the lowest, most stable latency is important (when playing highly rhythmic music, for example), we recommend disengaging the Auto button and setting your latency manually using the slider. If there’s a spike in internet traffic, you may briefly hear some audio glitches, but they should quickly go away, and your overall latency will stay stable.
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 appropriate 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.