Max2Play Home › Forums › Max2Play as Squeezebox (Player / Server) › DTS Pass through
Tagged: DTS, flac, HDMI, Pass through
- This topic has 13 replies, 5 voices, and was last updated 4 years, 7 months ago by AWeiden premium.
-
9. Oktober 2015 at 16:22 #16257
Squeezeboxes could do pass through of DTS embedded in flac when volume was fixed to 100%. I know that this can be done using RPi over HDMI because Kodi on RPi is perfectly capable of doing passing DTS-encoded flac to a DTS-capable receiver (and picorep*****r used to be able to do it before they broke it).
As fas as I can see however squeezelite in max2play (v2.22) for RPi does not support this feature. Do you have any plans to make this happen or advice?
12. Oktober 2015 at 17:58 #16319Hi d4n3ll,
thank you for your input.
Do you know more details about what is necessary to implement this feature? For example kernel changes, Squeezelite playback via HDMI, …
Kind regards
Maximilian from Max2Play
20. Oktober 2015 at 13:51 #16442Hi Maximillian
Really sorry about the slow response – I’ve been away.
I’m also afraid I have no technical knowledge – I’m just a user, noyt a programmer. I know that picorep****r uses squeezelite too and could do passthrough (check out v 1.18b). As with hardware squeezeboxes it was initiated by setting output volume to 100%, but that’s simply an interface issue I guess.
Clearly passthrough of DTS-enocoded flac over HDMI is generally feasible as the kodi installation in max2play already does it. But it would be so cool if you could add it to your squeezelite implementation.
Best regards
Dan
21. Oktober 2015 at 12:12 #16461Hi Dan,
first of all, we need to understand what exactly you mean by „DTS passthrough“. We guess you are talking about the drop in quality of certain music files during HDMI playback on your Squeezebox server, e.g. FLAC files with 32 bit rate and 96 KHz sampling rate are played back with 16 bit and 48 KHz only.
If so, you should definitely try out the following steps to keep the original sound quality: Enter your Max2Play interface and go to „Raspberry Settings“. On the page, look for the section „Change HDMI Settings for Display Resolution, Framerate and Audio“ and activate „Enable High-Resolution Audio on HDMI“ by choosing „Max2Play Kernel with 192 Khz enabled“.Please let us know what your results are.
Best regards
Maximilian from Max2Play
21. Oktober 2015 at 13:00 #16463Hi Maximillian
So sorry if I was not clear. I was not talking about losing quality with hi-res flac. I have hi-res audio enabled over HDMI and it works perfectly!
This is what I mean by DTS passthrough.
It is possible to embed a 5.1 DTS stream in a flac wrapper (not limited to 5.1), which LMS and squeezebox see as a „normal“ flac file. A Squeezebox connected to a surround amplifier via coax or s/pdif will pass this file unconverted to the surround amplifer provided the Squeezebox is in passthrough mode, which is enabled by setting the output volume to be fixed at 100%. The amplifier identifies the DTS (or AC3) stream and handles it accordingly. This is a very cool feature of Squeezebox that is relatively unknown but allows those of us who have surround sound mixes of treasured albums to add these to our Squeezebox library and play them like any other album.
The DTS files can be ripped from the „video“ part of any DVD-Audio or audio bluray (or created from the lossless multichannel these discs may also have if you have expensive DTS conversion software). I have many such files (e.g the King Crimson 40th Anniversary Series, etc.) which play perfectly in 5.1 DTS using a Squeezebox Touch.
The embedding is done using a python script. As the link below states: „spdifconvert.py is a Python script which takes as input an AC3 or DTS file (sourced from a DVD) and encapsulates it in an IEC61937 stream. This stream is then wrapped in a WAV file which can be played over an S/PDIF link with no modifications (ie no volume adjustments); a digital receiver will be able to interpret the AC3 or DTS data contained within this stream (assuming the receiver knows the AC3/DTS formats).“
The script works perfectly to produce a WAV file with DTS embedded in it. You can then convert this WAV file to flac using flac.exe in the normal way, which does not actually compress the file further but the flac wrapper allows you to add the meta data to the file to catalog it with LMS as you would any other music file.
More details are given here:
Your implementation of squeezelite in max2play (I have v2.23) must modify the stream in some way, because these DTS-encoded files just produce „white“ noise over HDMI. Although I do not understand the finer technicalities I believe the key is that the player passes the stream to the amplifer completely unmodified.
I know that passthrough of these files over HDMI is possible with Squeezelite, because this works on picorep***er up to v 1.18b (sorry to keep referring to an inferior rival!), but the writers of that software seem to have broken the function since then and do not seem to be interested in answering my question as to whether they intend to fix it. I think the code is available at sourceforge. Max2Play is much cooler and more versatile and it would be great if it added this function.
I hope this helps. I can provide you with an example DTS-encoded flac file if that would help.
Best regards
Dan
ps If you want to get the hang of these DTS-flac files, foobar can deal with them perfectly happily. With the DTS component enabled foobar identifies the DTS stream in the flac file and converts it on the PC. But if you want to use the higher quality conversion of your surround amp you can perform a similar trick of passing the DTS direct to the amp by simply removing the foobar DTS component. In this case you will get „white“ noise if you try and play the file direct to speakers attached to the PC but if your PC is attached to a surround amp via HDMI then foobar does not attempt to read the file but simply sends the flac file to the amp unaltered.
- This reply was modified 9 years, 1 month ago by d4n3ll.
23. Oktober 2015 at 13:01 #16532Hi Dan,
thanks for this very detailed post! I will have a look at it this weekend and try my best to see if I can get it working.
Although I did not test it, you may try to add „-D“ to the commandline options of Squeezelite (Webinterface -> Audioplayer -> Advanced settings)
From Squeezelite documentation:-D [delay] Output device supports DSD over PCM (DoP), delay = optional delay switching between PCM and DoP in ms
I compiled Squeezelite for Max2Play with DSD option:
DSD – support of DSD playback via DOP (-D command line option) or conversion to pcm (requires LMS server patches)
- This reply was modified 9 years, 1 month ago by flysurfer.
15. Januar 2016 at 14:54 #17899flysurfer – I added the -D commandline option but iot does not make any difference. Although I can see the similarity to DoP this is not DSD encoded flac but rather DTS. That may be important. Do you have any other thoughts on this? It must be possible as passthrough is pretty routine – e.g. Kodi in max2play can do it! And as I said before pic***pl**er could do this until they broke it without explanation.
Thanks again for all your help.
4. Februar 2017 at 1:51 #26667I’d like to resurrect this thread if I may. I recently installed Max2Play on a new Raspberry Pi 3 and have encountered this same situation where DTS isn’t working via HDMI.
The DTS material is in a FLAC container and works fine through genuine Logitech hardware, through a Wandboard Quad and via piCorePlayer using either a HiFiBerry Digi+ or HDMI.
The issue is likely that the audio Squeezeplay is sending out through HDMI has been altered in some subtle way, which „breaks“ DTS and AC-3. I *think* this just works right away in piCorePlayer now, but in the past users had to make some minor modifications. I have pasted below the instructions I was given, which worked successfully. (Nothing from this point on was written by me.)
1) Login to your piCorePlayer via SSH.
2) Set the ALSA output level to exactly 0.00db and save it for future
reboots with the following commandsa) find out the simple mixer ID of your sound card
Code:
——————–
amixer scontrols
——————––> the output in my case is
Code:
——————–
Simple mixer control ‚PCM‘,0
——————–whereas ‚PCM‘ is the important part for the next command
b) set the output level to 0.00db
Code:
——————–
amixer sset ‚PCM‘ 0
——————–c) save & backup the ALSA settings
Code:
——————–
sudo alsactl store
sudo filetool.sh -b
——————–4) set ALSA output level to Custom in the piCorePlayer web interface
(under Tweaks –> Audio Tweaks) and save the change.4. Februar 2017 at 12:59 #26668My post originally.
I too would very much like to see this issue picked up as it remains the one key area where max2play squeezebox emulation falls short of the real thing (and I really value it).
Personally I cannot make picoreplayer play DTS after v 1.18 not (even the new version) and do not have the technical skills to follow your post. In any event, no disrespect, your solution is one for the linux bregade not the average user that I think max2play is (rightly) aiming for.
As you say Squeezelite must be altering the stram in some subtle way. But it must be possible to solve this as Kodi (on max2play) manages passthrough of DTS perfectly.
Thanks for posting on this.
D
4. Februar 2017 at 16:59 #26671I can’t double-check my piCorePlayer setup with HDMI at the moment because I wound up adding a screen and using an enclosure that blocks the HDMI port. DTS is definitely working on that box through a HiFiBerry Digi+, though.
I’m not exactly a Linux genius myself, but the instructions above really didn’t take much. Unfortunately, they can’t be applied to a Max2Play installation, at least not in any way obvious to me. I included them in the hope that they would make sense to the developers.
To my way of thinking, straight pass-through without any alteration on ANY output should be the default behavio(u)r with exceptions being something users specifically have to set. But I play a lot of DTS material and may be part of a very small minority.
Fooling around with this seems to have completely broken all HDMI output on my Max2Play setup at the moment. Oh well, that box is primarily a server anyway.
4. Februar 2017 at 17:35 #26672Really didn’t mean to come across as ungrateful I agree those steps should help the developers! I aso agree that logically passthough should be straightforward. With picoreplayer it used to work out of the box up to v1.18, but they broke it and never replied to any of my questions. I gave up on them because they seemed to produce too many poorly tested updates.
4. Februar 2017 at 19:13 #26673You didn’t come across as ungrateful at all.
My luck with piCorePlayer has been OK, but as a server Max2Play has a huge advantage in my setup due to the fact that it can transcode DSD to PCM. As far as I know, M2P is the only ARM implementation that does so.
5. Februar 2017 at 11:47 #26677Thanks for this. I’m not quite as technologically dumb as I may have been making out. Your instructions on tweaking picoreplayer with SSH were indeed very clear and worked perfectly on the newest version. So many many thanks for that. I remain with max2play for LMS.
So the message to max2play here is:two users (at least) happily using a rival product to play DTS encoded flac when they would rather use max2play if only it were to get its act together!
D
19. April 2020 at 8:21 #48552Hello max2play & d4n3ll,
I am now at the same Point with DTS 5.1 Audio Files – using max2play to play on 2 zones – 1st zone is stereo with a HifiBerry DAC and 2nd zone is via HDMI in multichannel and stereo. HD Audio and DSD in stereo is working well via HDMI – my Marantz receiver shows the correct bit rates e.g. 24/192.
BUT if I Play DTS 5.1 Music embedded in FLAC files I hear only white noise 😬.
Did you find a Solution for the problem meanwhile?
A feedback – better a solution – would really be appreciated…
THX
Andreas -
You must be logged in to reply to this topic.