Audio between applications on Windows

Hi guys,

In the past I’ve succesfully used analysis UGens to send OSC data (loudness, peak, amplitude etc…) between SuperCollider and VVVV (also applicable to other applications) but now I would like to make something different: I would like to send audio data from SC to VVVV in order to let my colleagues working with graphics and visual to create their work based on the incoming audio signals.

If the development environment had been Linux I would have without hesitation thought of using Jack but since VVVV only runs on Windows, I have to try to find a different solution (some very recent personal developments on this topic just this afternoon, read more below).

Another requirement to consider is latency. While minimal latency values are completely acceptable, I am not considering systems such as icecast (most versatile for web streaming from my experience). My intention is to have a point-to-point network audio stream between two applications within the same PC.

What I am going to expound on is something that has been previously covered partly here, here, here and here.

I am considering different approaches on which I would like to gather ideas and suggestions from you (any additional ideas from your past experience are super welcome):

Virtual cable
From the official VVVV documentation I’ve read I should use something called Virtual cable. It seems to me to be something similar to Jack but on Windows.

My perplexity is being able to simultaneously send audio to the physical output of the main audio interface and simultaneously send a copy of this audio to the Virtual Cable input, which, would take care of forwarding it to the other application.

Have any of you had past experience with this tool?

ReaStream
Another thing comes to my mind is the cockos Reaper ReaStream plugin that I’ve used in the past, which is capable of streaming up to 8 audio and MIDI signals from host to host. I could use the plug in in VST mode using the VSTPlugin class on the SuperCollider side (It would still remain to figure out how to use the same plugin in dual mode on the side of VVVV) but I think this is an approach that increases complexity and doesn’t make me too confident about its stability :frowning:

sendMsg
I don’t know if this is possible, given the nature of the speed and the amount of data to be sent, but I was thinking about using the sendMsg method where, as an argument, a buffer is used that is pre-filled with samples of the audio signal and sent at synchronous times (perhaps with block size).

Do you think this is possible?
Is there alternative methods that I have not considered?

AES67, DANTE, Ravenna
I know just a little about their working principle but have no practical experience. Moreover, at least for Dante and Ravenna, given their nature as proprietary products, I would prefer to avoid spending energy on learning how to use them.

Thank you so much for your patience.
I hope the above will be interesting and can generate stimulating confrontation.
Thank you in advance for any contributions, suggestions and advice.

PS:
Jack Router on Windows
As anticipated today I discovered - to my amazement - that jack also works on Windows!

Although initially everything seemed to work out for the best
Cattura_jack2

my first attempts immediately brought me up against an issue that I have not yet been able to solve: jack is not starting anymore!

Does anyone use Jack on Windows?
Did you also encounter this problem or did you find it stable and reliable (I’ve seen many other issues related to Jack on Windows).

1 Like

I experimented with Jack on Windows, but I must say that I gave up on it since I really could not get it to work as smooth as Jack on Linux. Virtual cable is a very nice tool, which I used regularly for streaming audio from application to application on Windows, so I can recommend checking that out furthermore.
Maybe it’s possible to stream via UDP / TCP, but I didn’t try that out on Windows. My guess is that Virtual cable would be the most straightforward tool in this case. Good luck!

1 Like

I experimented with Jack on Windows, but I must say that I gave up on it since I really could not get it to work as smooth as Jack on Linux. Virtual cable is a very nice tool, which I used regularly for streaming audio from application to application on Windows, so I can recommend checking that out furthermore.
Maybe it’s possible to stream via UDP / TCP, but I didn’t try that out on Windows. My guess is that Virtual cable would be the most straightforward tool in this case. Good luck!
Is ReWire™ still around?