INTERACT FORUM

Please login or register.

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

Author Topic: Achieving 2.1 output  (Read 2575 times)

gale.david

  • Recent member
  • *
  • Posts: 9
Achieving 2.1 output
« on: September 08, 2023, 10:31:34 am »

Hello,

I am trying to achieve 2.1 output using JRiver when doing playback of stereo content.

My output device is Apogee Duet 2. This is 4 channel device. In JRiver it is configured to be used via ASIO interface.

In DSP tab I have set the following options

Output Format
  • Channels: 4 channels
  • Extra channels: none (what does this option even mean?)
  • Mixing: JRSS mixing
  • Subwoofer: Silent

Room correction
Left (also the same for Right)
  • Crossover: 120hz
  • Routing: Move bass to subwoofer

The problem is that nothing comes out of audio interfaces channels 3/4. Any tips what is wrong with my setup?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #1 on: September 08, 2023, 10:37:47 am »

I would think you want output 2 channels + 2 extra channels which will give you a 4 channel output device but a 2 channel mix target

Not too sure about room correction module in this setup though
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #2 on: September 08, 2023, 11:20:18 am »

Tried to set output to 2channels with 2 channels extra with and without disabling Room Correction (and other parameters). Did not help.

I am just wondering how JRiver player does channel mapping to audio interfaces physical outputs? If I had a a 32 channel audio interface how would I set it to output subwoofer downmix to e.g. channel 32?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #3 on: September 08, 2023, 12:07:09 pm »

Using the mix operation to move the channel

What about if you use the jrss subwoofer? Does that work?
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #4 on: September 08, 2023, 01:15:02 pm »

By means of trial and error I managed to find that JRiver maps audio interfaces channels 3/4 as Surround Left/Surround Right channels.
Attempted to fix that by adding Parameteric Equalizer/Order channels step post Room Correction (also tried before) stage. Zero effect.
Next tried to play with Mix Channels/Move functionality just to see that I can forward the Sub channel to e.g. Left or Right channel. Strangely the Sub channel is always silent. No matter whether I select 2+2 channels or 2.1+1. Also changing from Room Correction to JRSS subwoofer does not help.
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #5 on: September 08, 2023, 01:37:19 pm »

OK managed to get subwoofer output If I set 3.1 output and use JRSS subwoofer. But I believe in this case L and R are playing full range which might not be what I want.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #6 on: September 08, 2023, 01:57:24 pm »

this has to be a bug, which version of MC are you using?

I'd just do it manually in PEQ anyway then you have more flexibility and know exactly that it is working, you can use https://yabb.jriver.com/interact/index.php/topic,129609.0.html to help if you like
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #7 on: September 08, 2023, 04:06:25 pm »

tried different versions, 31.x, 29.x, 25.x. the behaviour is similarly broken in all of them.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #8 on: September 08, 2023, 04:20:35 pm »

moved to this board given it appears to be a bug in dsp studio
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42373
  • Shoes gone again!
Re: Achieving 2.1 output
« Reply #9 on: September 08, 2023, 04:52:13 pm »

Can you describe the bug you're seeing step by step?  Thanks.

If you set 2.1 as the output format, MC will mix to a 5.1 container.  This is because 6 channel sound is pretty common and three channel is not.
Logged
Matt Ashland, JRiver Media Center

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #10 on: September 08, 2023, 05:00:36 pm »

set output format to 2.1
set extra channels to 1
use either JRSS subwoofer or room correction to apply bass management

you'd expect to find the SW in channel 4 but it's silent
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42373
  • Shoes gone again!
Re: Achieving 2.1 output
« Reply #11 on: September 08, 2023, 05:13:12 pm »

That's a little messy.

2.1 is usually 5.1.  Analyzer shows the subwoofer fine.

When you add an extra channel, 2.1 becomes 4 channel.

Maybe it should actually become 5.1+1 but I'm not sure.
Logged
Matt Ashland, JRiver Media Center

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #12 on: September 08, 2023, 05:35:07 pm »

If 2.1 is really 5.1 then what is 3.1?

I suggest adding a new 2.1 option that really is 2.1 rather than being secretly 2.1 in a 5.1 container
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #13 on: September 08, 2023, 07:54:25 pm »

I don't mind the various mappings, but most helpful would be a matrix detailing channel #  to container / layout configuration.
Yeah, you can figure it out, but it's kind of trial and error process, and at times confusing.

For example,  5.1 maps to "normal" 5.1.  5.1 + 1 channel maps to 5.1 container with 1 extra channel.  5.1 + 2 channel maps to 7.1 container layout.

Perhaps time could be spent on documenting the layouts/extra channels and how the channels are mapped to various containers? 

Seems like once understood by all, then there could be thought put into any changes that might make sense? 


Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72439
  • Where did I put my teeth?
Re: Achieving 2.1 output
« Reply #14 on: September 09, 2023, 12:07:14 am »

whoareyou,
Why don't you start a thread on the subject, document what you know, and ask others to document more?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #15 on: September 09, 2023, 01:16:27 am »

They are all documented in https://yabb.jriver.com/interact/index.php/topic,129609.0.html

I had to do that reverse engineering in order to make it work

The issue here isn't mapping anyway, it's that the .1 simply isn't there
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #16 on: September 09, 2023, 02:48:57 am »

I did not know there is this Analyzer tool which shows what is actually output.

So if I select 2.1 output + Room Correction I see L, R , C, Sub, SL, SR, channels and there is some activity in the sub channel.

Unfortunately I cannot use 2.1 output with my Apogee Duet device. If I try to do playback this way the app complains that the device is not capable of 5.1 playback.

Does not seem logical that in order to play 2.1 I need 5.1 device.
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #17 on: September 09, 2023, 07:42:08 am »

Finally managed to get it working though not without using 3rd party software.

I installed this thing called 'VB-Audio Hi-Fi Cable' which is basically a virtual audio driver that takes WDM stream as an input and then is able to output it to ASIO device. Luckily this thing is able to accept 5.1 input and is able to stream first 4 channels of a stream to 4 channel ASIO output (this is what Apogee Duet has to offer via ASIO).

See pictures with my settings.
Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #18 on: September 09, 2023, 07:56:27 am »

I think the whole DSP functionality in JRiver is not where it should be. Many options do not seem intuitive and the documentation is lacking. It shouldn't be the case that in order to achieve 2.1. output one has to spend many hours of tinkering.

For comparison, in Foobar it took about 2 minutes to setup working 2.1 output. Also much simpler ASIO routing. The only reason why I bothered with JRiver is because it can accept WDM input which makes it easier to output e.g. Spotify in 2.1. mode.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #19 on: September 09, 2023, 08:06:08 am »

Finally managed to get it working though not without using 3rd party software.
it's unnecessary, see https://yabb.jriver.com/interact/index.php/topic,136944.msg949356.html#msg949356 for one approach or just use DSP studio directly and add a couple of filters

Logged

gale.david

  • Recent member
  • *
  • Posts: 9
Re: Achieving 2.1 output
« Reply #20 on: September 09, 2023, 08:36:50 am »

it's unnecessary, see https://yabb.jriver.com/interact/index.php/topic,136944.msg949356.html#msg949356 for one approach or just use DSP studio directly and add a couple of filters

Thanks, this works as well.
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #21 on: September 09, 2023, 08:46:26 am »

whoareyou,
Why don't you start a thread on the subject, document what you know, and ask others to document more?
Hi Jim,
I'll take a shot at putting something together once I review some of the many threads I've seen over the years.
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #22 on: September 09, 2023, 08:56:32 am »

it's unnecessary, see https://yabb.jriver.com/interact/index.php/topic,136944.msg949356.html#msg949356 for one approach or just use DSP studio directly and add a couple of filters
For me the issue was mapping between convolution filter channels and JRiver channels. 
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #23 on: September 09, 2023, 09:08:12 am »

They are all documented in https://yabb.jriver.com/interact/index.php/topic,129609.0.html

I had to do that reverse engineering in order to make it work

The issue here isn't mapping anyway, it's that the .1 simply isn't there
I took quick look at your link, and I remembered looking at it long time ago, but since I use convolution only skimmed through it.  I'll need to take a (much) longer look and I'll add any relevant information to additional mapping topics I start.  Thanks.

As far as the .1 channel and from what I'm reading, it looks like it is missing, but where is it supposed to be?  Is 2.1 really supposed to be mapped to 5.1 container or something else?

So, it's stuff like this that (at least for me) gets a bit confusing that seemingly can only be determined via trial and error. 

Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72439
  • Where did I put my teeth?
Re: Achieving 2.1 output
« Reply #24 on: September 09, 2023, 09:08:16 am »

Thanks.
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient
Re: Achieving 2.1 output
« Reply #25 on: September 09, 2023, 12:39:48 pm »

As far as the .1 channel and from what I'm reading, it looks like it is missing, but where is it supposed to be?  Is 2.1 really supposed to be mapped to 5.1 container or something else?

The default 2.1 has been in a 5.1 container for many years (maybe always?), as one of my systems started relying on that implementation detail since MC 21 or so (I wanted a 2.1 mixing target but three additional channels). 

As I understand the unexpected/bugged behavior in this specific case, when adding one additional channel to "default" 2.1 it instead reduces the number of channels from 6 to 4 and dumps the sub channel because MC is treating 2.1 + 1 as though it were 4.0 instead of 3.1 (i.e. it treats the four channel layout as L, R, SL, SR instead of L, R, C, Sub).  That is unexpected behavior in two dimensions as the choice of 2.1 suggests the user really does want a sub channel in the mix, and one wouldn't expect adding a channel to reduce the total channel count.

Now that we can specify arbitrary additional channels, it seems like the behavior of least surprise would be "make default 2.1 an actually 3 channel output, and ensure that adding channels never discards the sub channel."   I'm not sure any three-channel DACs exist, so it might also just work to make 2.1 default to a four channel container in a 3.1 layout, instead of to 5.1 container, which would also solve OP's problem.  Alternatively, "default 2.1 remains 2.1 in a 5.1 container and extra channels just increase channel count upwards from 6 channels" would also be relatively unsurprising, but would prevent people with 4 channel DACs (like OP) from using 2.1. 

FWIW, I think most of the surprises in output format come from the fact that MC sometimes starts moving channels around as you increase channel counts, even when you're just adding extra channels to an existing mixing target.  The "add a channel to 2.1 and get a 4.0 layout" outlined in this thread is one example, but as noted above if you add two channels to a 5.1 target, you get a 7.1 layout which moves SL and SR to different channels, etc.  It seems like it might be worth treating extra channels as truly extra and trying to keep the locations of the "core" mixing target channels invariant. 

I'll be sure to chime in when whoareyou gets a thread going!
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #26 on: September 09, 2023, 12:50:14 pm »

if anyone wants to see how the mappings work then load up beqdesigner (linked earlier) and just create a new config

can't guarantee 100% correct (as it looks like I need to revise to cover this particular bug) but I did do the job of trying each config at one point and seeing what comes out the other end when implementing this

the lack of any visual interface to the DSP engine is one of the main reasons I built the above. 
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #27 on: September 10, 2023, 09:21:29 am »

if anyone wants to see how the mappings work then load up beqdesigner (linked earlier) and just create a new config

can't guarantee 100% correct (as it looks like I need to revise to cover this particular bug) but I did do the job of trying each config at one point and seeing what comes out the other end when implementing this

the lack of any visual interface to the DSP engine is one of the main reasons I built the above.

I've done exactly that, and I have to say that app with its UI depictions is great!  How much time did it take to write it?  The upload/download integration to JRiver is genius.  Really wish there was a way to get the visuals integrated with JRiver, as it would be fantastic if one could select and immediately see UI depiction of the mapping.  In my opinion, the app should be a sticky in this forum.

Anyway,  I initially started putting together a spreadsheet of inputs to mappings, then I started looking at your app, and it made me rethink how this should be done.  On one hand, I think this needs to be as simple as possible, but then I started looking at your app, and kind of agree with you that if people are doing this stuff, why not recommend they just install your app?

I am still looking at the app,  but have couple goofy things going on (didn't exactly follow directions ), and probably have a couple questions.  Before asking I first need to spend some time reading documentation  :P

Is version 31 fully supported, as selection only goes up to 30?



Thanks!
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: Achieving 2.1 output
« Reply #28 on: September 11, 2023, 02:27:26 am »

I've done exactly that, and I have to say that app with its UI depictions is great!  How much time did it take to write it?  The upload/download integration to JRiver is genius.  Really wish there was a way to get the visuals integrated with JRiver, as it would be fantastic if one could select and immediately see UI depiction of the mapping.  In my opinion, the app should be a sticky in this forum.
thanks, it does fill a gap for me also :) I'm not sure how long it took, on and off done over a few months a few years ago I think then mostly just kept ticking over as new MC features were added.

Is version 31 fully supported, as selection only goes up to 30?
yes, 30 really means 30+ at this point (no differences in 31 in this aspect)
Logged

whoareyou

  • Galactic Citizen
  • ****
  • Posts: 438
Re: Achieving 2.1 output
« Reply #29 on: September 14, 2023, 08:40:08 am »

Here is my first attempt for the  5.1 mapping. 

Attached is a CSV file. Use an excel spreadsheet to view data. 
To import into Excel, simply select the file and import it as file delimited by commas. 
To save file, don’t add any new delimiter characters (to keep formatting), and save as CSV.
If imported correctly, it should appear as the sample51.png (you'll need to adjust your column widths).

The spreadsheet depicts 5.1 input container -> output container -> output channels without JRSS engaged.

Also attached is document intended to capture links to interesting mapping topics.  I have a couple in there I found interesting and helpful.
As mentioned in previous post, I agree with @mattkhan that his tool should be used to help resolve these mapping issues.  I’m still not sure that his tool shouldn’t be considered the gold standard for deciphering the mappings.

I propose a topic be created with placeholder sections organized by channel configuration.  Each section would contain mappings for input -> output channel behavior exclusively for the relevant channel configurations.  Something like individual section for Source, Mono, Stereo, 2.1,3.1,4,5.1,7.1...

One other issue is obtaining test files to verify behavior.  In my case I have an AIX test disc, but these files are in 5.1 container, so i.e. I have no way of verifying what happens if audio input is some other format.  I'm not even sure what other input containers exist for the audio (not even considering formats with video). 
Logged
Pages: [1]   Go Up