jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.22k stars 377 forks source link

Enhancement: Symmetric audio signal out #399

Open sire42 opened 6 years ago

sire42 commented 6 years ago

Some professional studio monitor speakers provide a symmetric (aka balanced https://en.wikipedia.org/wiki/Balanced_audio) signal input for noise cancellation purposes. Also, conventional motherboards provide plenty of stereo out jack sockets (for sourround). It should be feasible to use such a stereo output for a mono signal with the second channel inverted (assuming differential mode) to produce the symmetric signal for a speaker. Do that twice and route your stereo out via two physical stereo sockets with the inverter inserted and you have a nice symmetric stereo monitoring setup from your common of the shelf motherboard with no need for specific external audio interfaces.

I haven't heard of that before (ASIO etc.). Maybe that could be well possible to implement in jack, but I am new here and not yet in the details, if jack is the right thing to do that.

Regards

twischer-adit commented 6 years ago

I would expect a simple JACK or Lv2 plugin which inverts the audio signal would be sufficient. This would result in an audio route like the following:

audioL -> + -------------> system:playback_1
          + -> inverter -> system:playback_2

audioR -> + -------------> system:playback_3
          + -> inverter -> system:playback_4

But I am not sure if this will really bring a gain with on-board sound cards due to the cheap digital analog converters. I would expect the same result with a passive adapter from asymmetric (cinch) to symmetric (XLR) where the signal - pin is connected to GND.

HaHeho commented 5 years ago

This could be a nice idea and might improve the transition especially over longer distances (the main purpose of balanced connections). What probably stays are the problems of reference level offset (probably not so relevant if the receiver is sensitive enough) and impedance mismatch, which usually make the use of an DI-box necessary (https://en.wikipedia.org/wiki/DI_unit).