DTS Pass through

This topic contains 12 replies, has 4 voices, and was last updated by  d4n3ll premium 1 month, 3 weeks ago.

Viewing 13 posts - 1 through 13 (of 13 total)
  • 9. October 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. October 2015 at 17:58 #16319

    Hi 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. October 2015 at 13:51 #16442

    Hi 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. October 2015 at 12:12 #16461

    Hi 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. October 2015 at 13:00 #16463

    Hi 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:

    http://forums.slimdevices.com/showthread.php?19260-Playing-AC3-DTS-tracks-sourced-from-DVD&highlight=convert%20dts

    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 1 year, 5 months ago by  d4n3ll.
    23. October 2015 at 13:01 #16532

    Hi 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 1 year, 5 months ago by  flysurfer.
    15. January 2016 at 14:54 #17899

    flysurfer – 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. February 2017 at 1:51 #26667

    I’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 commands

    a) 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. February 2017 at 12:59 #26668

    My 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. February 2017 at 16:59 #26671

    I 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. February 2017 at 17:35 #26672

    Really 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. February 2017 at 19:13 #26673

    You 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. February 2017 at 11:47 #26677

    Thanks 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

Viewing 13 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic.

Register here