More > JRiver Media Center 31 for Windows

[Feature Requests] Audio Path improvements, DSD to PCM conversions, etc.

(1/4) > >>

Awesome Donkey:
I've been engaging in this topic for the last few days, and while doing so I've noticed a few things that could be added/improved in MC to help make things a little easier for users (and a little easier for us when troubleshooting).

The low hanging fruit, aka Audio Path improvements:

I never really convert DSD to PCM as I bitstream it, but during the course of going through that topic, I decided to try it. With MC converting DSD to PCM, I look at the Audio Path... and there's no clear indicator that it's actually converting DSD to PCM that most users would instantly recognize.



As you can see, it just mentions the low-pass filtering being enabled, but no mention of a DSD to PCM conversion happening, even though more technical users can see it is via input and output there.

1) My first request is this, add in the Audio Path that a DSD to PCM conversion is happening. It should say what format the DSD is in, e.g. 1xDSD or DSD64 or 2.8 MHz and what PCM it's converting to, e.g. 352.8 kHz.

DSD to PCM conversion, 1xDSD 2.8 MHz to PCM 352.8 kHz or something like this.

2) To add to number 1, it should also mention what resampler it's using, e.g. SSRC or SoX.

DSD to PCM conversion, 1xDSD 2.8 MHz to PCM 352.8 kHz using SoX or DSD to PCM conversion, 1xDSD 2.8 MHz to PCM 352.8 kHz using SSRC or something like this.

These would definitely would help a lot.


The pipe dreams, aka conversion improvements:

This is the request(s) that may not be doable, but I thought I'd just throw them out here anyways.

1) Have an option to set the PCM sample rate MC should use for DSD to PCM conversions. Right now with mine it's automatically using 352.8 kHz, and the only way to change this is to set in DSP Studio > Output Format > Sample Rate the 352,800 Hz sample rate to output at a different sample rate, e.g. 88,200 Hz. Which then would make it where all 352.8 kHz content is resampled to 88.2 kHz, which is kinda undesirable. Having a dedicated option to override the automatic sample rate used and set a specific PCM sample rate for DSD to PCM conversions can help with trying to workaround issues with CPU bottlenecks when doing the conversions and encountering issues with buffering because it's not fast enough. Not to mention bypassing the two conversions needed (DSD to 352.8 kHz, then again from 352.8 kHz to 88.2 kHz).

2) This is the big iffy one that I almost hesitate posting... have an option to do any DSD to PCM or PCM to DSD (or DSD to DSD) conversions before starting playback. This would hopefully eliminate a) the need for a on-the-fly conversion which on lower power machine may bottleneck and encounter issues with stuttering/buffering and b) eliminate the need to convert the file(s) ahead of time and play that back (and waste space having a playable version of the song on disk). Yes, depending how weak the hardware is this could cause a delay before playback, but it should be an option as long as the user is aware of this. The alternative to this would be having it convert up to 50% of the track before beginning playback, which may or may not also workaround this, depending on what it's decoding and encoding too.

Out of the two pipe dreams here, the first one would make the most sense and I'm sure a good number of users would appreciate this. The second one however, this one probably isn't easy to do at all.

Thoughts?

Hendrik:

--- Quote from: Awesome Donkey on July 08, 2023, 12:11:23 pm ---1) Have an option to set the PCM sample rate MC should use for DSD to PCM conversions. Right now with mine it's automatically using 352.8 kHz, and the only way to change this is to set in DSP Studio > Output Format > Sample Rate the 352,800 Hz sample rate to output at a different sample rate, e.g. 88,200 Hz. Which then would make it where all 352.8 kHz content is resampled to 88.2 kHz, which is kinda undesirable. Having a dedicated option to override the automatic sample rate used and set a specific PCM sample rate for DSD to PCM conversions can help with trying to workaround issues with CPU bottlenecks when doing the conversions and encountering issues with buffering because it's not fast enough. Not to mention bypassing the two conversions needed (DSD to 352.8 kHz, then again from 352.8 kHz to 88.2 kHz).

--- End quote ---

The thing about this is that it does not really work like that. The DSD to PCM decoder always outputs exactly 1/8th the DSD rate, just due to the way DSD conversion works, and after that its just PCM of that sample rate. Any further processing is no different as if you started with a PCM file.
This initial conversion to 1/8th PCM can't be changed, its just inherent to the DSD to PCM process - its also not using any of the two resamplers to do this, its just part of the conversion (this also goes towards the other point about mentioning which resampler is used).

Tracking the "source" of the PCM throughout the app seems like it just opens up a lot of headaches - at what point does it become "normal" PCM, or does it stay "special" PCM for ever? Is there a difference? Why would PCM 352.8 out of a FLAC file resample to something else then PCM 352.8 out of a DSD file? Isn't it both PCM 352.8?

Matt:
Mine lists "Downsample 8x for DSD to PCM conversion".  Like Hendrik said, we're not using a resampler here.

dtc:
I agree with 1)

The DSD to PCM sample rate is very confusing. In fact, it ignores the sample rate you put in for >768 KHz in Output Format. I fully understand that the first conversion is to 1/8 of the initial sample rate, but most new users do not know that. So, a 2x DSD (5.6 MHz) gets converted to 705 KHz no matter what the number you put in >768 KHz.  Many users then get an output error, even though they put in something their Dac supports,  like 176 KHz, in Output Format. It really seems like the number you put in >768 KHz should be honored.

In addition, it would be nice to have all the DSD sample rates listed, like all the PCM rates are listed, so that you can put the final sample rate in there and not have to know about this whole 1/8 conversion that is going on behind the scene.

I realize that DSD to PCM conversion is not all that common and this would need some change to the conversion code, but it seems like the end result should follow the sample rate that the user inputs  without having to know about the behind the scene 1/8 conversion process. Most new users simply do not understand the process.

Hendrik:
What if 352 just said "352.800 Hz / DSD 1x", and 704 respectively (and the greater then also include a hint)?

As I outlined above, to MC there is no difference if a file was DSD64 or 352.8 PCM, as the same exact data is coming out of the input reader. Carrying extra "source" information feels iffy to me, rather then just letting the data properties speak for itself.

Navigation

[0] Message Index

[#] Next page

Go to full version