Ah, got it. Thanks for the clarification. I can see why that would be frustrating.
I installed Plexamp for Mac and it lets me override my system output to go direct to USB. When I choose my belkin dock for USB output, it gives me a max choice of 44.1kHz as a sample rate. When I select my Scarlet I can go as high as 176.4kHz.
Do these options do nothing? I don’t have a DAC that lets me measure the actual output from my laptop.
Thanks!
Those options cause Plexamp (or more accurate, the MacOS sound driver) to upscale to your selected sample rate.
Seems like Plexamp limits the displayed rates based on what your DAC can support. My RME ADI-2 DAC FS can go up to 768KHz and I was able to select that and showed that the DAC was locked to 768KHz. It not only locked the Plexamp though but also the entire system output to that sample rate.
Interesting. I wonder how the upscaling is handled—if it’s just repeating existing samples to fill out the higher frequency in even multiples of a native frequency or whether it’s actively resampling the audio and interpolating the waveform from the existing sampled frequency. Or something else entirely.
I will add ripped content from DVD-Audio discs and Blu-ray audio discs as other sources for hi resolution files.
What would be the preferred file and encoding format for DVD-Audio music?
I rip mine to 5.1 FLAC. Play back with PlexKodiConnect.
for real. I’m looking at this right because i’m not exactly thrilled with roon on my network, nor its easy inability to stream outside the home.
look at how many support threads they have per day with 100k costumers. it is a mess.
it does not even work. and they ask for 700$.
the only good thing is hqplayer support
Please make this happen. Prism player can do it with plex already.
But doesn’t prism player preprocess the files? The diff with hqplayer is it has network player controls where it streams the music out to the client player (whether local or otherwise). I think that’s how it works, right?
I found out plexamp is able to play dsf files! It apparently converts to 16bit-44.1kHz PCM, though.
It is ready for support direct play thru usb external dac for mac/iOS.
(For mac, it should change device settings automatically.)
Wow. I think now Plexamp plays hi-res music as is!
Now we need one more thing.
DSD native playback!
How were you confirming this?
Curious as I want to test on my Windows/Mac/Linux/Android devices with my big 24bit collection.
This question plagued me when the new plexamp settings came out as well, so I decided to do some testing with the equipment I have on hand. This is a fairly in depth dive so it’ll be a bit (see what I did there?) of a read.
Plexamp Settings
For such a test to be meaningful (and pass), all of Plexamp’s fancy (very cool Elan) DSP-based features must be disabled. Each of these features affect the digital bitstream in some way and will therefore cause any of the below tests to fail miserably. These features included Loudness Leveling, Sweet Fades, Equalizer, and Music Playback Speed adjustment.
Bit Test
I was able to confirm this on macOS after assuming a few basic things:
- The sample rate is matched using the latest “sample rate matching” setting
- The audio device is set through Plexamp’s audio device setting
My DAC through USB is the RME ADI-2 DAC FS (v1 with the AKM chip). The ADI-2 has a unique feature called “Bit-Test” where, if the DAC sees a specific stream of bits that RME provides for download, it will display a message. RME provided files for:
- 16bit/44.1KHz
- 16bit/96KHz
- 16bit/192KHz
- The respective 24-bit versions of all of these
- The respective 32-bit versions of all of these
A browse through the menu suggests that even an alteration to the LSB (least-significant-bit) on any of these files would cause the bit test to fail.
macOS Audio MIDI Setup shows the RME ADI-2 DAC FS as running in 2-channel 32-bit Integer mode and does not allow this to be changed. Source is Default and the ADI-2 is using its internal clock source (as per the display).
All 6 files were loaded into my Plex server and Plexamp and were run as is. For all 16-bit and 24-bit files, the ADI-2 displayed passing on the Bit Test and therefore suggests that Plexamp is able to pass these files bit-perfectly. The sample rates on all the bit test files matched on the DAC as what was being played; note that the Bit Test would fail if there was any re-sampling involved either upsampling or downsampling.
However, Plexamp failed the 32-bit Bit Test. Instead, the DAC displayed as only passing 24-bits. Thus, it seems that either Plexamp’s audio pipeline (or CoreAudio?) is dropping the final 8 LSB’s of the word and falling back to only passing 24-bits. I blame this primarily on Plexamp’s audio pipeline, since CoreAudio (via MIDI Setup) appears to properly negotiate the ADI-2 to 32-bit integer capable.
Note, the same tests were repeated on iOS on my iPad Pro via a USB C to USB A cable. The results were identical. I was not able to pull the exact word length (bit depth) that the DAC was running on through iOS since neither the software nor the DAC itself displays this information. Instead, I had to rely on the bit depth that the DAC displayed upon passing Bit Test.
MQA Support?
As a final bit of torture (read as, investigation) for @elan and guys over at Plex, I decided to try out some MQA and see whether it would be passed properly. The equipment changed a little bit here, swapping the RME ADI-2 DAC FS for the Khadas Tone2 Pro. The T2P is an MQA capable DAC that can handle all three MQA processing stages (rendering, decoding, and third unfold). The T2P provides an RGB indicator for MQA type and support, separating out MQA OFS, MQA Studio, and MQA Native (just called MQA).
My library contains a fair bit of MQA files, so I was able to get a broad suit in for testing. In short, Plexamp is able to pass the MQA data stream, assuming the OS does not interrupt it at any time.
Initial test tracks for integrity were Trigger by Seori [MQA Studio 44.1/48KHz], Lovers in the Night by Seori [MQA Studio 88.2/96KHz], and Getting Older by Billie Eilish [MQA Native 44.1/48KHz]. These three tracks were chosen to show multiple types of MQA support. All three tracks initially negotiated into PCM, but immediately renegotiated into their respective MQA formats as indicated through the LED on the T2P. Tracks continue to remain negotiated @ MQA throughout playback.
Of note, when system sounds are played through the same output device, MQA negotiation is seamlessly lost. However, as soon as the system sound is over, MQA re-negotiates successfully after a brief 1 second delay. This is NOT a drawback of Plexamp but rather a result of MQA’s metadata riding on the LSB of the PCM data stream. In fact, this shows that Plexamp will pass bit-perfect and successfully recovers to bit-perfect even after being interrupted by a mixed in CoreAudio stream. This is, in my opinion, a resounding success and the exact expected behavior, knowing the details of MQA metadata.
Identical test results occurred on iOS using the T2P.
Sample Rates
As @elan and team is already aware in a previous post, Plexamp matches sample rates “opportunistically” rather than after every track, in current behavior on 3.7.1. However, in a heterogenous sample rate playlist, MQA support (and similarly bit test passage) fails due to a mismatch in sample rate. This can only really be remedied by having Plex match sample rate on a track by track basis rather than opportunistically.
Here’s to hoping that the team will add a new option for that in the next or near future release.
No testing was done on Windows or Android as I do not have easy access to any such devices.
I really appreciate you running these tests. I’m actually fairly impressed at the results
This is not totally surprising as our pipeline is technically 32-bit floating point. A back of the envelope computation shows that should be more than enough to pass 24-bit integer data untouched, but I think it would miss a few lower bits on 32-bit integer data.
The good news here (if you’ll allow me to be glass half full) is that 32-bit audio files are (in my own personal opinion) pretty rare (I can’t say I’ve seen any in the wild), and if I might go a step further, completely unnecessary for human ears.
This is extremely good news (not that I respect or like MQA if we’re being honest), but I was hoping this would be the case.
We’ll eventually do this, it just turns out to be a bit more complicated than the opportunistic version.
Again, I really appreciate all the testing you’ve done. You have a standing invite to our beta Slack channel if you want access, just drop me a DM.
Gonna agree with you here, I’ve never seen a single 32-bit music file ever, so I’m perfectly okay with this limitation (and I think most would agree…).
Hehehe don’t let good ol’ Bob Stuart hear that!
I’m curious if there’s been any more movement on this. Plexamp on my new iOS device (I’ve always been an Android) transcodes to Opus when streaming flac off my server over the LAN. I love Plexamp, but if I can’t play my hi-res music at its full 24/96, that’s a bit of a bummer.
Plexamp never had an issue with that… It is likely because you didn’t select Maximum under Settings -< Music Quality → Wi-Fi [or cellular if applicable].