INTERACT FORUM

Please login or register.

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

Author Topic: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows  (Read 5834 times)

etc6849

  • Recent member
  • *
  • Posts: 34

There was a great article that came out in 2022: How To Decode and Play Dolby TrueHD Atmos on Windows and macOS
https://audiophilestyle.com/ca/immersive/how-to-decode-and-play-dolby-truehd-atmos-on-windows-and-macos-r1092/

It detailed how to extract Atmos audio tracks and play it back on a windows PC or Mac, with all decoding being done on the computer; with no need for a lousy AVR/AVP with poor sound quality.

If I follow the steps from the article above, would I be able to play it back using JRiver?

Is there a way to use the codec from the Dolby PC software if I pay the $400 for it and upgrade one of my JRiver licenses?

If there's some unreleased beta version, please feel free to PM.  I'm an electrical engineer with some programming experience.  Happy to use DebugView to capture logs, as well as even purchase a 1 year dolby subscription to gain access to the codecs, etc....

For me, I'm using an RME 16 channel AES card; the card digitally outputs up to 16 channels.  These go to speaker processors that use FIR filters to fully tri-amp my home theater, as well as individually time align 5 powered subs.  I have no interest in lowering my sound quality by going to an AVR, and am looking for a PC based/pro audio approach to extract and playback Atmos and DTS-X tracks.

Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #1 on: November 02, 2023, 03:25:46 pm »

In hopes of finding a member that may have tried this, I'm going to quote a 2022 thread below, and reference a few usernames.

Yes, it's now possible to let your Pc decode Atmos. It's been a long wait.
Entry fee is $400 for the required Dolby software.

Read all about it here:

https://audiophilestyle.com/ca/immersive/how-to-decode-and-play-dolby-truehd-atmos-on-windows-and-macos-r1092/

Thoughts, ideas, improvements..?!?

@mojave
@retro
@jmone
@mattkhan
Logged

eve

  • Citizen of the Universe
  • *****
  • Posts: 689
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #2 on: November 03, 2023, 04:37:00 pm »

If you want on the fly, you pretty much need to go out to an Arvus. It'll take the Atmos, bitstreamed via HDMI and output your desired channel configuration in standard PCM as an AES67 stream for you do do with what you wish and eventually hand over to D/A.

Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #3 on: November 03, 2023, 04:49:16 pm »

for video? afaik this approach is basically rip, decode, remux and then watch that

i.e. just a bit labour intensive if you do it manually

no idea if the tooling is amenable to automation, it's all outside of MC though so it's just another mkv (or whatever) by the time MC sees it
Logged

jmone

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 14463
  • I won! I won!
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #4 on: November 03, 2023, 06:42:51 pm »

It may be possible to use the Dolby Reference Player dll (or if it installs a DirectShow filter) to decode to 16ch PCM.  Kind of like what LAV was doing in the dtsdecoderdll.dll days. Thing is you would need an enthusiastic 3rd party developer to look at it and see what could be done and I just don't see much interest in it.  Either that or support gets added to ffmpeg natively.

I do see that there is a script based method to get a PCM encode of 16ch Atmos here - but it all looks like a fair bit of work.  https://www.avsforum.com/threads/decoding-truehd-atmos-to-16-channel-wav.3265364/
Logged
JRiver CEO Elect

eve

  • Citizen of the Universe
  • *****
  • Posts: 689
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #5 on: November 03, 2023, 08:28:43 pm »

It may be possible to use the Dolby Reference Player dll (or if it installs a DirectShow filter) to decode to 16ch PCM.  Kind of like what LAV was doing in the dtsdecoderdll.dll days. Thing is you would need an enthusiastic 3rd party developer to look at it and see what could be done and I just don't see much interest in it.  Either that or support gets added to ffmpeg natively.

I do see that there is a script based method to get a PCM encode of 16ch Atmos here - but it all looks like a fair bit of work.  https://www.avsforum.com/threads/decoding-truehd-atmos-to-16-channel-wav.3265364/

Wow, I didn't realize GStreamer + Atmos Decoding (I know it can transport it) was a thing.

Uh this is very cool. Will have to see if it works with something I'm messing around with
Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #6 on: November 03, 2023, 09:55:56 pm »

Thanks!  I haven't been keeping up on things and missed this.  I wonder how much it is.

I'd still much rather have a software based solution, but I could just redirect the AES3 output of the ARVUS H2-4d to my RME's 16 channel AES inputs.

Certainly something to think about.  Has it been confirmed it doesn't downsample the AES3 output?  If there's no downsampling, it is a really compelling device, and I may have to get one.

https://www.arvus.com/h2-4d.html

If you want on the fly, you pretty much need to go out to an Arvus. It'll take the Atmos, bitstreamed via HDMI and output your desired channel configuration in standard PCM as an AES67 stream for you do do with what you wish and eventually hand over to D/A.
Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #7 on: November 03, 2023, 10:08:15 pm »

Thanks!  I like the idea of a python script as I probably have 200-300 mkvs with atmos embedded in them.

So it sounds like a script can decode and remux my existing mkvs, then JRiver can just playback the 16 channels from a single container such as a new mkv?  Do all movies have 16 channels, or will I end up with some having 12 channels (7.1.4) and some having 16 (9.1.6)?  If so, how is channel mapping handled in JRiver?

for video? afaik this approach is basically rip, decode, remux and then watch that

i.e. just a bit labour intensive if you do it manually

no idea if the tooling is amenable to automation, it's all outside of MC though so it's just another mkv (or whatever) by the time MC sees it

It may be possible to use the Dolby Reference Player dll (or if it installs a DirectShow filter) to decode to 16ch PCM.  Kind of like what LAV was doing in the dtsdecoderdll.dll days. Thing is you would need an enthusiastic 3rd party developer to look at it and see what could be done and I just don't see much interest in it.  Either that or support gets added to ffmpeg natively.

I do see that there is a script based method to get a PCM encode of 16ch Atmos here - but it all looks like a fair bit of work.  https://www.avsforum.com/threads/decoding-truehd-atmos-to-16-channel-wav.3265364/
Logged

jmone

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 14463
  • I won! I won!
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #8 on: November 04, 2023, 12:46:29 am »

The short answer is Probably.  The longer one is you are going to have to try it out and see what happens on and test file or two .... and then settle on a workflow for doing batches.
- I think most are 16ch, but had a quick look and Media Info can certainly pull out the # of Atmos Channels (eg MLP FBA AC-3 16-ch) from a UHD BD and MKV, so this could be used to identify and create batches if there are others apart from 16ch
- It seems that the AVS thread has most of what is needed for the scripts to extract, convert, and remux the converted audio.
- I've personally no idea on the MC setup for 16ch output and channel mapping, but I'm sure others do such things and could way in

The big thing would be to do a couple and check if it works as you expect, and if there are issues that arrise like poor Audio / Video sync after such conversion.
Logged
JRiver CEO Elect

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #9 on: November 04, 2023, 02:36:35 am »

There's also the smaller device

https://www.arvus.com/h1-d.html

DSP would be downstream of MC in this case though wouldn't it? Ie MC playback would be bitstream to this with video going onto the display, PCM would have to come back through some other device (something lean/fast) to do the DSP. I would think sync could be challenging in that setup.

Remux looks laborious but doable, probably not so bad if you can script it as part of your rip process (which shouldn't be hard to do really)
Logged

eve

  • Citizen of the Universe
  • *****
  • Posts: 689
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #10 on: November 04, 2023, 03:32:04 pm »


DSP would be downstream of MC in this case though wouldn't it? Ie MC playback would be bitstream to this with video going onto the display, PCM would have to come back through some other device (something lean/fast) to do the DSP. I would think sync could be challenging in that setup.

The sync / latency part is why I do the AES67 thing here (not for atmos, just everything). Essentially, my headphone 'endpoint' receives the exact same multichannel signal from JRiver that my primary surround rig does. PC spits out mostly untouched audio to an AES67 stream, headphone endpoint picks it up, does the downmix,  crossfeed and correction which then outputs to D/A. It's good enough for 120hz gaming so in terms of the kind of delay you're looking at, extremely manageable.


Honestly I'm busy for the next few days but if this is really just a GStreamer plugin like, you can watch a movie with an atmos track decoded in real time now.
As an interesting crossover of interests here, GStreamer is one of the primary things I use for my AES67 'plumbing'.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #11 on: November 04, 2023, 04:12:58 pm »

I was referring to arvus setup, in this case it seems like it would be

Code: [Select]
MC playing some BD/UHD -> bitstream hdmi -> arvus -> hdmi video -> display
                                                  -> PCM AES -> some AES capable audio device -> a.n.other computer with a DSP engine -> DAC -> amps

given this, how do you maintain sync between A and V when you have to traverse some other DSP engine?
Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #12 on: November 06, 2023, 07:21:28 am »

Interesting.  The video can be delayed in JRiver (or even in the TV's lip sync settings), but... 

I guess you'd need to have several lip sync settings if the Arvus isn't able to have a constant audio delay across all output formats?  I'd definitely need to know this.  What is the delay is different for decoding DTS-X vs Atmos vs just receiving PCM audio over HDMI?

And what if I wanted to only use the Arvus strictly for movie playback and redirect its output back into my 16 channel RME AES card...  I was planning on just having IPSC mute the RME's inputs when I don't want to use the Arvus.

Seems I'd need a minimum of two lip sync settings: one with the Arvus in the chain, and one without the Arvus in the chain.  And really, you may need a lot more lip sync settings depending on the design of the Arvus.  I guess I will have to email them prior to purchasing, as this is a really good question.

I was referring to arvus setup, in this case it seems like it would be

Code: [Select]
MC playing some BD/UHD -> bitstream hdmi -> arvus -> hdmi video -> display
                                                  -> PCM AES -> some AES capable audio device -> a.n.other computer with a DSP engine -> DAC -> amps

given this, how do you maintain sync between A and V when you have to traverse some other DSP engine?
Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #13 on: November 06, 2023, 07:27:29 am »

It would seem a software solution will likely be common place soon.

I found this thread: https://www.avsforum.com/threads/diying-a-dsp-processor-engine-solution.2626985/page-31#post-62926331

And the thread mentions a third party software that can decode atmos?!?: https://cavern.sbence.hu/cavern/downloads.php

I don't know anything about it and haven't tried it, but thought I'd post the links.  There is a person in the thread who's tried it, and it seems to work.

Honestly I'm busy for the next few days but if this is really just a GStreamer plugin like, you can watch a movie with an atmos track decoded in real time now.
As an interesting crossover of interests here, GStreamer is one of the primary things I use for my AES67 'plumbing'.
Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72438
  • Where did I put my teeth?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #15 on: November 06, 2023, 03:57:07 pm »

It would seem a software solution will likely be common place soon.
It's DD+ only, doesn't look so useful for UHD.

And what if I wanted to only use the Arvus strictly for movie playback and redirect its output back into my 16 channel RME AES card..
not sure if my point was clear

you are using MC to play something, it outputs some HDMI bitstream to another device. I am assuming this computer, that is bitstreaming to the arvus, is the one that has  your RME card in it. If so, you can't run 2 instances of MC on a single computer so how will you implement the filters you need for your speakers?
Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #16 on: November 06, 2023, 04:53:05 pm »

Good points.

Example signal path:
JRiver -> HDMI OUT -> ARVUS HDMI IN -> ARVUS AES3 OUT -> RME AES3 IN -> RME AES3 OUT -> XILICA XD4080 AES3 IN XILICA XD4080 DSP -> XILICA XD4080 DAC OUTPUT -> AHB2 AMP-> LEFT WOOFERS.

The RME AES 32 card still acts as the volume control, as it does now.  It comes with a nice software based mixer that lets me redirect the AES inputs to the outputs.
https://rme-audio.de/hdspe-aes.html

The Xilica XD4080's act as the DAC and DSP offering FIR filters, delay and level matching.  They are also known as "speaker processors" in the the pro audio world, and are low latency as they are meant for live audio.

Sadly you right about Cavern.  Only DD+ Atmos, definitely not lossless Atmos.

It's DD+ only, doesn't look so useful for UHD.
not sure if my point was clear

you are using MC to play something, it outputs some HDMI bitstream to another device. I am assuming this computer, that is bitstreaming to the arvus, is the one that has  your RME card in it. If so, you can't run 2 instances of MC on a single computer so how will you implement the filters you need for your speakers?
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4226
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #17 on: November 07, 2023, 04:39:10 am »

Ah ok that explains it, I assumed your DSP was in MC
Logged

eve

  • Citizen of the Universe
  • *****
  • Posts: 689
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #18 on: November 08, 2023, 04:27:30 pm »

It would seem a software solution will likely be common place soon.

I found this thread: https://www.avsforum.com/threads/diying-a-dsp-processor-engine-solution.2626985/page-31#post-62926331

And the thread mentions a third party software that can decode atmos?!?: https://cavern.sbence.hu/cavern/downloads.php

I don't know anything about it and haven't tried it, but thought I'd post the links.  There is a person in the thread who's tried it, and it seems to work.

Cavern is DD+ only.

The Dolby Reference Player seems to utilize gstreamer internally (a *ton* of stuff does), this means that it provides plugins which can be used in a pipeline. The best hint I found was in the python script linked, you can see how it constructs some of the gstreamer pipelines. If you want playback (and video) you'll need to change the pipeline but this is the 'meat'
Code: [Select]
            'dlbtruehdparse', 'align-major-sync=false', '!',
            'dlbaudiodecbin', 'truehddec-presentation=16', f'out-ch-config={out_channel_config_id}', '!',

Been working on a job so I haven't had time to explore this.

If you know how to build a gstreamer pipeline and run it using gst-launch, maybe someone here will test something along these lines for playback and report in?

One sticking point I had with Gstreamer (and this is possibly far beyond my skill level) was their DirectShow Video Sink. It works and you can toss another renderer at it but it only seemed to work with (and had code for) EVR or VMR. If someone knew how to get MadVR as a renderer for dshowvideosink I'd be incredibly curious.


Logged

etc6849

  • Recent member
  • *
  • Posts: 34
Re: JRiver MC31: How To Decode and Play Dolby TrueHD Atmos on Windows
« Reply #19 on: November 15, 2023, 08:13:34 pm »

Nice!  I'm sure it's a matter of time before some talented people like yourself post scripts that the rest of us can use.

I reached out to Arvus today and am waiting to hear back.  I just have to figure out which speakers to add first (and where).  I have two pairs of Klipsch Palladium bookshelf speakers I've been hoarding to start with.  They're pretty heavy and big for bookshelf speakers, but I was thinking about making some custom mounts for them.  Any thoughts on using these for Atmos speakers?

https://www.klipsch.com/products/p-17b-bookshelf-speaker

Cavern is DD+ only.

The Dolby Reference Player seems to utilize gstreamer internally (a *ton* of stuff does), this means that it provides plugins which can be used in a pipeline. The best hint I found was in the python script linked, you can see how it constructs some of the gstreamer pipelines. If you want playback (and video) you'll need to change the pipeline but this is the 'meat'
Code: [Select]
            'dlbtruehdparse', 'align-major-sync=false', '!',
            'dlbaudiodecbin', 'truehddec-presentation=16', f'out-ch-config={out_channel_config_id}', '!',

Been working on a job so I haven't had time to explore this.

If you know how to build a gstreamer pipeline and run it using gst-launch, maybe someone here will test something along these lines for playback and report in?

One sticking point I had with Gstreamer (and this is possibly far beyond my skill level) was their DirectShow Video Sink. It works and you can toss another renderer at it but it only seemed to work with (and had code for) EVR or VMR. If someone knew how to get MadVR as a renderer for dshowvideosink I'd be incredibly curious.
Logged
Pages: [1]   Go Up