How to stream quality audio without latency

audiomusicstreaming

I'm trying to stream a live music performance from my living room.
I play a piano (digital) and live electronics (Ableton) via a MOTU mk3 connected to my MacBook Pro (13 inch,late 2014, Sierra 10.12.6).

My music uses live effects, so I need to have Ableton's output in my speakers or my headphones, otherwise I don't know what I am playing, since its not just the sound of my piano.

For video, I am using OBS studio and Black Magic mini recorder connected to my Panasonic G7 DSLR camera.

OBS Studio does not allow any interfaces that has more than two outputs which is why Soundflower or something similar is necessary. My problem is latency and quality.

iShow or Soundflower results in latency to my ears, which means I can't play my pieces properly. Loopback offers a better alternative, because it patches the sound directly from Ableton, meaning that within Ableton I still use MOTU as input and output, therefore my headphones give me sound without latency.

But with Loopback there are 2 issues: 1. It is $100 USD, which is absolutely too much for that and also for my budget. Also, I used it in trial mode before it expired, and I recorded the video from OBS and the sound of it was actually quite bad, a bit compressed and gloomy, very very different from what the Ableton output sounds.

So, I'm a bit frustrated because I feel I have tried it all I know, and most of the info online is either very old, or made for Windows or gamers. There's also lots of info for people that stream simple things like a podcasts, but in my case you have to keep in mind I do need to hear myself from Ableton because my instrument is not producing the final sound outcome in my living room.

How can I solve this problem of combining several audio channels with OBS's limitation of only 2 while maintaining a quality sound?

Any ideas appreciated, thank you so much!

Best Answer

The problem is, you're tyring to do everything in software.

It's one thing to have separate output, but if OBS limits you to only two channels and your workaround is to use Soundflower to "mux" (multiplex) those channels together to conform to OBS, then you're inherently introducing latency. The sound must be brought in on each separate channel, mixed together, then sent back out on another channel only to be read in by OBS then mixed in that, then output, you're using a tremendous amount of CPU cycles for something that should have been done "outside" the OS.

What you need is a mixer (it doesn't need to be fancy) so that you can combine the audio before bringing it into OBS. You will get much more use and versatility out of the mixer than the software.

Related Question