What is the best way to route audio tracks out of Live and into another application during playback/performance?

Hi all. I'm trying to route 8 tracks of audio out of Live and into another application so I can process the audio data in realtime and create visualizations. For now I am trying to do this on the same computer, but ideally I'd like to have the option to send some of the audio samples in the buffer of each track out over a local area network as say, UDP packets.

I'm a pro/advanced user and write my own software so I'm not looking for the basics - I'm hoping other advanced users out there could shed some light on this.

If I could, I would send the 8 tracks I'm trying to process to 8 matching Sends (in Live) and keep the original 8 tracks going out to the master (and out to the speakers) and then route the Sends to a virtual audio cable type driver to be received in my application that will visualize the audio data.

My main problem thus far is that I can't access more than one sound device at a time which prevents the above solution from happening. If I use a virtual audio cable driver to route the tracks into an external application it works, but since it's virtual I can't actually send it t the speakers any more. I could potentially play back and mix the audio in my custom application but I have some mastering/finalizing chains on the master track in Live that I can't reproduce outside of Live.

I realize that under Mac OS (I could potentially go with either Windows or Mac OS depending what offers the best solution) you can create a virtual audio device comprised of several audio devices together masking as single device, which in theory would achieve the goal, but on the Ableton site it advises against this for performance for reasons of audio stream sync and stability (and yes this is intended for performance).

The other possibility I thought of would be to have two physical computers both with an outboard 8 in/8 out audio interface (one for audio running Live, and one for visualization running my custom graphics software) - and literally send the tracks out 8 hardware outputs on the Live machine and through physical cables into the 8 hardware inputs on the second computer. This isn't ideal because of the amount of equipment and cost involved.

The only other path I haven't explored, and honestly don't know much about, is Max for Live. Is it possible to get access to the samples in the audio buffers/streams of tracks in Live? And if so could I somehow liberate them and send them out to either A) another audio device (such as a virtual audio cable driver - and into my graphics app) or B) send the data as network packets? Does anyone have any experience with this? I understand I could use Max for Live to do visualizations most likely, but I am writing custom visualization software and my goal is to route it to my software and not dive into Max (at least at this juncture).

Has anyone tried anything like or does anyone have some creative thinking that I haven't thought of yet? Any help would be tremendously appreciated. Thanks!

2 followers

_cymatic 8 months ago | 0 comments

2 answers

  • _cymatic
    contribution
    1 answer
    1 vote received
    1 vote

    Well. I managed to answer this one myself. Jack Audio (http://jackaudio.org) let me create a virtual patching environment AND send to my main sound card output using an ASIO driver. I sent a copy of the 8 tracks to 8 sends to duplicate the audio and then routed the original 8 to master and the extended 8 sends to the virtual outputs from Jack.

    I wrote custom software to capture the raw audio stream from those 8 virtual ASIO outputs. I'm using 256 sample buffers per channel. The normal audio rate of 44100 hz and 256 samples per buffer would be 256 x 32 bit samples at ~172 hz. That equates to about 1.4 mb/sec for all 8 channels of uncompressed audio.

    It did seem like it was possible to use Max for Live to send audio over the network, but I'm not sure how easy it would be to throttle the data. Since I'm using this for visuals only I really only need 60 hz/fps and I was able to throttle the data in my code to 60 hz which takes around 490 kb/sec instead of 1.4 mb/sec.

    I'm sending the data out as UDP datagrams, one for each channel, per video frame update. I'm receiving it in Unity 3D and can draw real time visuals with very little latency and so far it seems super solid (have only tested localhost).

    Besides several Max for Live network audio solutions apparently there are also network audio AU plugins in Mac OS that ship with the OS. I didn't play around with those, but if anyone else is looking for a similar solution you might also check them out. I think you just add them inline to the audio track as an AU/effect and it will send what streams through to the network.

    8 months ago | 0 comments
  • Ernest Meyer
    contribution
    1 answer
    1 vote received
    1 vote

    Hi, I just purchased Live 9, so Im not an expert in it, but part of the reason I did is that it supports Rewire, which will integrate with my Max apps Im still building, described at http://yofiel.com

    8 months ago | 0 comments

You need to be logged in, have a Live license, and have a username set in your account to be able to answer questions.

Answers is a new product and we'd like to hear your wishes, problems or ideas.