INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Getting loopback to work  (Read 10223 times)

sema

  • Recent member
  • *
  • Posts: 16
Getting loopback to work
« on: March 03, 2014, 02:35:01 pm »

Hi Everybody,

I am new to JRiver. Actually still working with the Demo version, but I like it a lot and am planning to purchase the full version. I use convolution with Acourate-generated filters and am very happy with the result. I have a pair of Focal Solo6s and an ACT AL4 Sub. The Acourate-generated filters do (1) room correction and (2) have digital XO function between sub and main speakers.

I use an RME Fireface UC audio interface with ASIO drivers.

Now I would also like to get sound from sources outside JRiver Media Center convolved (such as Spotify, or youtube audio). For this I have been trying to get JRiver's loopback function to work for me, but without success. WASAPI loopback almost works, but stutters and skips.

With ASIO loopback I haven't been successful at all. My RME Fireface has a loopback function with which I could feed audio from other applications into the JRiver's ASIO input. But I can't seem to get any sound into JRiver. I have read somewhere that for using ASIO loopback I need to use a different physical audio device for input than for output. Why is that? The RME Fireface is also multi client capable.

I have also tried a virtual audio cable to get external sound into JRiver. This sometimes worked, but sometimes also crashed.

I am using two PCs with JRiver and the Fireface: For audio only I use an Intel Atom PC (ASUS Eebox) which has enough oomph for audio without problems, but not much more. For video, and also my attempts with loopback, I use a Core i5 PC notebook. The Windows performance index of the latter is 6.9 for the CPU, so this should rule out a lack of horsepower to be causing the stuttering/skipping.

I am stumped now... Dear JRiver pros - please help!  ?
Logged

csimon

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 1686
Re: Getting loopback to work
« Reply #1 on: March 03, 2014, 05:56:19 pm »

With ASIO loopback I haven't been successful at all. My RME Fireface has a loopback function with which I could feed audio from other applications into the JRiver's ASIO input. But I can't seem to get any sound into JRiver. I have read somewhere that for using ASIO loopback I need to use a different physical audio device for input than for output. Why is that? The RME Fireface is also multi client capable.

I've only just tried getting ASIO Line-in to work in the last couple of days, and it worked first time. See http://yabb.jriver.com/interact/index.php?topic=87773.0!

I don't really know what's going wrong in your case. The requirement for a different audio device is presumably because drivers are generally not multi-client capable. Mine wasn't so I used the Steinberg utility to provide it, as noted in the thread above, then I could use the same device.  Have you followed the procedure outlined in the thread above?

First of all, if you do indeed have another audio device (even onboard audio), try to get Open Live working and sending to that before trying to use the same device. Make sure a zone is selected that has the different device as its target (audio settings). As soon as you select Open Live/ASIO Line-in and select your input device, MC should actually start animating its little graphic equaliser graphic in the top line of the display to show that it is receiving audio on that input, and ASIO Line-in should appear in Playing Now. If this doesn't work, there's something wrong!  Can you listen to audio coming in on that device in Windows generally?  Similarly, in the Windows sound devices dialog on the Input devices tab, the graphic should show you if there's audio coming in on it.

Stuttering can also be caused by buffer sizes that are too small.  You can modify this in the audio settings dialog.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: Getting loopback to work
« Reply #2 on: March 04, 2014, 06:45:21 am »

I don't have the same hardware as you so can't give specific advice. I do however have a device that has a mixer app with a virtual loopback function which I use for asio line in purposes. You can see my config in this post - http://yabb.jriver.com/interact/index.php?topic=86792.msg594719#msg594719

This might give you some ideas on how to apply the same method to your setup.
Logged

sema

  • Recent member
  • *
  • Posts: 16
Re: Getting loopback to work
« Reply #3 on: March 04, 2014, 04:45:06 pm »

Thanks for the advice so far. I tried around a bit more now to try and isolate the problem:

1) WASAPI loopback on the input side and WASAPI output to Fireface or onboard sound card works
2) WASAPI loopback on the input side and ASIO output to Fireface without convolver works
3) WASAPI loopback on the input side and ASIO output to Fireface with convolver activated leads to crackling/stuttering sound (even with 500ms buffer size).
4) ASIO input from Fireface and WASAPI output to Fireface or onboard sound card works
5) ASIO input from Fireface and ASIO output to Fireface does not work (it never starts showing the live playback as active)

Variant 4 would be a potential option if it were not for the limitation that I can only output 2 channels at a time with WASAPI (and I need 4, as my convolution filters act as digital XO).

Option 5 shows that the Fireface is not as multi client capable as the manual states, I suppose. So I will need to experiment with the Steinberg multi client driver or other tricks.
If everything fails I guess my plan B will be Acourate Convolver (for a fistful of $$$...)

This is how far I got today. Will keep you posted on further progress.
Logged

Mitchco

  • MC Beta Team
  • World Citizen
  • *****
  • Posts: 173
Re: Getting loopback to work
« Reply #4 on: March 05, 2014, 02:31:03 am »


Now I would also like to get sound from sources outside JRiver Media Center convolved (such as Spotify, or youtube audio). For this I have been trying to get JRiver's loopback function to work for me, but without success. WASAPI loopback almost works, but stutters and skips.

Sources such as Spotify or YouTube or Netflix are using the Windows WDM driver.

In Windows Control Panel->Sound->Playback Devices select from your Fireface interface whatever stereo channels you wish to use and set them as Default channels.  To prevent Windows from resampling, set the  channels Properties->Advanced to 16 bit 44100Hz.

Example, in my case, I am using a Lynx Hilo, and have access to 8 channels of digital I/O. 6 channels are taken for Acourate 3-way XO.  I assigned channels 7&8 as the default playback channels.  See attached pic.

Then, in whatever way the Fireface software allows you to do, take those "default channels" and loop them back.

In my case, the Lynx Hilo has a 32 x 32 internal channel mixer and I can route any input to any output via the touch screen panel. See attached pic.

Launch JRiver, Open Live.  Select ASIO and configure ASIO.  It's 2 channels of input and matching sample rate.  Note the offset.  i.e. 0 is channels 1&2, 2 is 3&4, 4 is 5&6 and 6 is 7&8<-- the channels I want.  Hit Ok and done.
See attached pic.

This presumes that the audio driver for the Fireface is multi-client, performs digital loop back, and works with both ASIO and WDM streams.

Try it on music first.  On video, and depending how long and type of FIR filters, there may/will be lip sync issues.

Hope that helps - its late, hopefully I did not make too many mistakes :-)

Cheers.

sema

  • Recent member
  • *
  • Posts: 16
Re: Getting loopback to work
« Reply #5 on: March 06, 2014, 04:07:34 pm »

Thanks to all for the tips!

Mitch, what you described (digital loopback) is the first thing I tried. Installing the Steinberg ASIO multi client driver now did the trick, without it it didn't work. Interestingly it suffices if either the ASIO input or the ASIO output uses the multi client driver (while the other can access the Fireface directly)...

Mitch, why is it important to prevent Windows from upsampling (by fixing the sample rate to 44.1/16)? I so far am letting it upsample to 96/24 and use this sampling rate and bit depth throughout the rest of my chain. Anything source material that is not 96 khz I upsample. Thanks to this I also do not need to worry about having different Acourate filters for different sampling rates. Can this be causing any of my problems (see below)? Why would that be? Or what would be other disadvantages of this approach?

I currently still have following two challenges:

1) The ASIO loopback solution only works with my Core i5 Laptop. With my little (Intel Atom) HTPC which I used for music playback so far without problems (incl. convolution) I only get stuttering and crackling sound, even with very large buffer size and live playback latency. The solution seems to require a lot of CPU horsepower. On the other side, though, the CPU load is not noticably higher than before. Any thoughts on this?

2) I still have occasional artifacts (crackles, skips), also with the Core i5 PC. Any ideas what could be causing this or how it could be prevented?

I'll play around a little more. Maybe a reboot will change things. This is what I experienced with video playback today. THe other day I was close to despairing because I always had sound artifacts, today there is no problem... Any explanation for that? Is it necessary to reboot from time to time to keep MC happy? :-)

There is one other thing that I was wondering about just now:
I am using a filter in the convolver that generates 4 channel sound from stereo (digital XO makes 2x HF and 2xLF). So far I had the output format set to 4 channels with no up or downmixing, which works fine with stereo music. However, if I were to play 5.1 or 7.1 movies that same way, I would only get the sound of the two front speakers into my convolver (without subwoofer signal etc.), wouldn't I?

If I want to have the "full" sound I would need JRSS to downmix to stereo before my convolver makes it 4 channels again (right?). However, if I have the output format set to 4 channels, JRSS downmixes to 4 channels (right?).

Would it do the job for me then to use "2 channels within a 4 channel container"? What exactly does this container thing mean at all? Would JRSS downmix to 2 channels but I can output 4 channels if I used this?

Thanks again for the support!
Logged

sema

  • Recent member
  • *
  • Posts: 16
Re: Getting loopback to work
« Reply #6 on: March 06, 2014, 04:27:10 pm »

Now it looks like I can already answer one of my questions myself: I just did a reboot and started ASIO line in playback again. Worked fine without glitches. Now at this very moment that I am typing I a having the first glitch again. Suppose I really need to keep all unnecessary applications closed during playback (even Firefox) to avoid any "ripples in the bit stream"...

Is this in line with others' experience?
Logged

Mitchco

  • MC Beta Team
  • World Citizen
  • *****
  • Posts: 173
Re: Getting loopback to work
« Reply #7 on: March 07, 2014, 02:18:32 am »


Mitch, why is it important to prevent Windows from upsampling (by fixing the sample rate to 44.1/16)? I so far am letting it upsample to 96/24 and use this sampling rate and bit depth throughout the rest of my chain. Anything source material that is not 96 khz I upsample. Thanks to this I also do not need to worry about having different Acourate filters for different sampling rates. Can this be causing any of my problems (see below)? Why would that be? Or what would be other disadvantages of this approach?

I was thinking of: https://www2.iis.fraunhofer.de/AAC/ie9.html  Which may not apply to your scenario.  But one can quickly find out by running the online tests.

I have an i5 as well.  I use default settings in JRiver: 50ms buffering, use large hardware buffers, plus use most significant bits are checked.  Depending on converter, there may be settings for USB streaming mode and ASIO buffer size.  Adjusting the converter and JRiver settings while playing music and running the tools below, if you don't already have them, can assist in troubleshooting and fine tuning.
 
Alternatively, use REW: http://www.roomeqwizard.com/ to feed pink noise into JRiver ASIO line input/convolution engine and listen on the speakers for any glitches, static, or drop outs to fine tune.

Try this utility: http://www.thesycon.de/deu/latency_check.shtml while running convolution and see if any glitches correlate:

Another utility I recommend: http://www.oblique-audio.com/free/rtlutility

While we are at it: http://audio.rightmark.org/products/rmaa.shtml   

With respect to JRSS, I don't know how that works.  I run into the same issue myself.  Maybe someone who is more familiar with JRSS can help us both :-)

Cheers!

rlebrette

  • Guest
Re: Getting loopback to work
« Reply #8 on: March 07, 2014, 05:43:20 am »

Hi there,

I'm also owning a Fireface UC, I've installed the Steinberg multi-client and set JRiver to use it.
I've set the ASIO-in to use the multi-client and the channels corresponding to the ADAT input (starting at index 13 if I'm not wrong)
But as soon as I start the ASIO-in live mode, MC is just crashing, with no messages at all.

Did you face this? Could you share your FF UC setup?

Second, I would like to use this feature to do AudioLense measurements, but if REW is correctly detecting the multi-client ASIO driver it's not the case in AudioLense.
Is it someting somebody faced?

Thanks for your help.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5174
  • "Linux Merit Badge" Recipient
Re: Getting loopback to work
« Reply #9 on: March 07, 2014, 06:37:21 am »

There is one other thing that I was wondering about just now:
I am using a filter in the convolver that generates 4 channel sound from stereo (digital XO makes 2x HF and 2xLF). So far I had the output format set to 4 channels with no up or downmixing, which works fine with stereo music. However, if I were to play 5.1 or 7.1 movies that same way, I would only get the sound of the two front speakers into my convolver (without subwoofer signal etc.), wouldn't I?

If I want to have the "full" sound I would need JRSS to downmix to stereo before my convolver makes it 4 channels again (right?). However, if I have the output format set to 4 channels, JRSS downmixes to 4 channels (right?).

Would it do the job for me then to use "2 channels within a 4 channel container"? What exactly does this container thing mean at all? Would JRSS downmix to 2 channels but I can output 4 channels if I used this?

Thanks again for the support!

If you're bi-amping a pair of stereo speakers, you want the "2 channels in a x channel container" option, with JRSS mixing turned on.  That will downmix everything to stereo, and then your convolution filters will do the rest.  The "container" just indicates how many total channels you have to work with later on in the chain.  "2 channel in a 5.1 container" means the JRiver initial downmixing target is stereo, but that you'll have four additional blank channels to work with (to do your own mixing after the downmix, e.g. through convolution).  I use 2 channel in a 5.1 channel container for my bi-amped speakers because I also use a sub, so I needed more than two additional channels.

If you have a 5.1 system with bi-amped mains, you'd want the 5.1 in a 7.1 channel container option; if you have a 7.1 system with bi-amped components, choose the total number of channels you'll need (8+?).  To my knowledge, JRSS won't try to upmix past 7.1, so even if you select 12 channels out, the automixing will still leave channels above the 8th channel blank.
Logged

sema

  • Recent member
  • *
  • Posts: 16
Re: Getting loopback to work
« Reply #10 on: March 09, 2014, 06:20:26 am »

Mitch, thanks a lot for pointing me to all the tools! I am having a bit of "family time" this weekend so didn't have the chance yet to use them but will check them out sometime this week.

rlebrette, my setup is as follows:

For JRiver's ASIO input, I use the ASIO client. For the output I go directly to the Fireface. But it also works if both is ASIO client or only the output is ASIO client. What does not work is if I select the FF directly for input and output without the ASIO client in between.

In my case I use the first channel pair of the FF for loopback (analog 1+2). I don't suppose it matters which channels you use, but in my case I used the first 2 channels to rule out any problems from that side and so far stuck with it. So: Channel offset in JRiver ASIO line in = 0

I output my Windows sound (incl. Spotify etc.) to software outputs 7+8 of the FF. I route these then to the hardware outputs 1+2 in TotalMix and activate loopback, which bring the signal to the inputs analog 1+2.

Maybe in order to narrow the problem down, you could try setting JRiver's output to another (non-ASIO) output device, such as your internal sound card. Or you could output to the FF, but NOT using ASIO. Would it work then (i.e., only ASIO for JRiver's input)? In my case, it did, which is what pointed me to using the ASIO multi client driver in the first place.

What I have also got working now (as an alternative to the FF loopback) is a virtual audio cable. I used this one: http://vb-audio.pagesperso-orange.fr/Cable/

Note that although they write about ASIO on the website, the program can only bring non-ASIO inout to an ASIO sound card output. Where you would need it (ASIO input side) it does not offer ASIO (unless I misunderstood something). So I additionally installed ASIO4all.

So I can use this solution: Windows sound --> HiFi cable input --> HiFi cable output --> ASIO4all --> JRiver ASIO input.

In all these cases (FF and Hifi cable) I used 96/24 throughout the chain. This is how I have set my FF (in the FF settings) and this is how I configured the JRiver ASIO input.

Hope this helps. The non-mainstream solutions we are putting together here are a little capricious at times, aren't they. I did get quite a bit frustrated at times, too... Let me know if I can help you with further info.

mcwillems, many thanks for the clarification - this helps!

Have a nice Sunday everyone!
Logged

rlebrette

  • Guest
Re: Getting loopback to work
« Reply #11 on: March 10, 2014, 04:56:56 am »

rlebrette, my setup is as follows:

For JRiver's ASIO input, I use the ASIO client. For the output I go directly to the Fireface. But it also works if both is ASIO client or only the output is ASIO client. What does not work is if I select the FF directly for input and output without the ASIO client in between.

...

Hope this helps. The non-mainstream solutions we are putting together here are a little capricious at times, aren't they. I did get quite a bit frustrated at times, too... Let me know if I can help you with further info.

Thanks for help, until now, whatever the configuration I do I get MC crashing. I'm going to check it again with your proposals. I will keep you informed.
Logged

NiToNi

  • Recent member
  • *
  • Posts: 28
Re: Getting loopback to work
« Reply #12 on: April 11, 2014, 02:00:01 pm »

Does loop-back/Live Input work on the Mac version?


Logged
Pages: [1]   Go Up