{"id":115,"date":"2016-11-19T07:39:23","date_gmt":"2016-11-19T07:39:23","guid":{"rendered":"http:\/\/blog.dsnyder.ws-e.com\/?p=115"},"modified":"2017-02-02T05:07:29","modified_gmt":"2017-02-02T05:07:29","slug":"streaming-tidal-via-jriver-convolution","status":"publish","type":"post","link":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/2016\/11\/19\/streaming-tidal-via-jriver-convolution\/","title":{"rendered":"HOWTO: Streaming TIDAL via JRiver Media Center"},"content":{"rendered":"<p>I&#8217;m so excited! I just have to share&#8230;even though chances are slim that you will have any\u00a0need for a setup like this. Before I get started, let me first explain my situation and why I&#8217;m excited.<\/p>\n<p>I have large loudspeakers in a small room, so to get the bass under control, my system <em>really<\/em> needed some help from a digital room correction system. After much research, I chose\u00a0<a href=\"http:\/\/www.audiovero.de\/en\/\">Acourate<\/a> from\u00a0AudioVero to design a target response curve and build FIR filters. See my <a href=\"http:\/\/blog.dsnyder.ws-e.com\/index.php\/2016\/04\/10\/can-digital-make-a-room-correct\/\">previous blog post<\/a> for details. The final step was to configure the <a href=\"https:\/\/wiki.jriver.com\/index.php\/Convolution\">convolution engine<\/a>\u00a0within <a href=\"http:\/\/jriver.com\/\">JRiver Media Center<\/a> to apply these filters during playback.<\/p>\n<p>This system sounds great (to me, at least), and the <a href=\"http:\/\/www.jremote.net\/\">JRemote<\/a> tablet interface works really well. However,\u00a0there are a few issues with this setup:<\/p>\n<ul>\n<li>Real-time convolution means playback controls have a few seconds of extra lag<\/li>\n<li>Playback is limited to PCM files (no DSD)<\/li>\n<li>No <a href=\"https:\/\/support.tidal.com\/hc\/en-us\/articles\/202722972-HiFi-vs-Premium-Subscriptions-\">TIDAL HiFi Streaming<\/a><\/li>\n<\/ul>\n<p>The first two are no big deal; I generally listen to entire\u00a0albums or playlists, so lag is a non-issue once the music starts. I also only have a tiny handful of DSD tracks which, if I cared, could be converted to high-rez PCM files. However, that last issue&#8211;no TIDAL streaming&#8211;has been a <em>major<\/em> bummer! When someone suggests new music, I can login to TIDAL and preview it on my laptop but\u00a0hearing what it really sounds like in <a href=\"http:\/\/sanfranciscoaudiophilesociety.com\/forums\/topic\/david-debs-digital-loft\/\">the Loft<\/a>\u00a0must wait until I buy the CD or download it from <a href=\"http:\/\/www.hdtracks.com\/\">HDtracks<\/a>. When a\u00a0friend drops by\u00a0for a listening session without a thumb drive containing their favorite reference tracks, they are stuck wandering aimlessly through my collection. Not cool.<\/p>\n<p>Until now, my only hope has been for a\u00a0TIDAL player like <a href=\"https:\/\/roonlabs.com\/\">roon<\/a> to add a convolution feature or for JRiver to add support for TIDAL streaming. Sadly, neither of these things are likely to happen anytime soon. Other alternatives like feeding JRiver&#8217;s WDM or ASIO driver from a local TIDAL streamer proved unreliable at best. I&#8217;ve spent more hours than I care to admit trying to get TIDAL lossless streaming and digital room correction working together in the Loft.<\/p>\n<p>My breakthrough came this evening when I started thinking about Signalyst&#8217;s\u00a0<a href=\"http:\/\/www.signalyst.com\/consumer.html\">Network Audio Adapter<\/a> architecture:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-116\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming.png\" alt=\"network_streaming\" width=\"641\" height=\"200\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming.png 743w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-300x94.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-100x31.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-150x47.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-200x62.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-450x141.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/network_streaming-600x187.png 600w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/p>\n<p>Ignoring room correction convolution for a moment, JRiver acts like the &#8220;FIFO&#8221;, streaming digital music data from my Synology NAS to my DAC, so the question was, &#8220;Is there a way to stream TIDAL to JRiver?&#8221; Thankfully, the answer was yes! JRiver can be configured as a DLNA Renderer. This is just a fancy &#8220;DLNA&#8221; way of saying that JRiver can be streamed to and controlled by an external media player. All I had to do was find a TIDAL player that could act as a DLNA server\/controller and I&#8217;d be set.<\/p>\n<p>The answer was an Android smartphone\/tablet app called <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.bubblesoft.android.bubbleupnp.unlocker&amp;hl=en\">BubbleUPnP\u00a0UPnP\/DLNA<\/a>. I had avoided DLNA in the past since I imagined that using it would somehow compromise sound quality; however, once I got things configured correctly, I have yet to notice any\u00a0loss in quality.<\/p>\n<p>The first step was configuring JRiver to act as a DLNA renderer. If you have enabled the &#8220;Media Network&#8221; feature of JRiver (necessary for JRemote control), chances are that the DLNA renderer is already enabled, but confirm by opening settings and looking here:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-120 size-full\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable.png\" alt=\"jriver_dlna_renderer_enable\" width=\"791\" height=\"604\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable.png 791w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-300x229.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-768x586.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-100x76.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-150x115.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-200x153.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-450x344.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Enable-600x458.png 600w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><\/p>\n<p><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.bubblesoft.android.bubbleupnp.unlocker&amp;hl=en\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-117 size-medium alignright\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-300x104.png\" alt=\"bubbleupnp_app\" width=\"300\" height=\"104\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-300x104.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-768x265.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-1024x354.png 1024w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-100x35.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-150x52.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-200x69.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-450x156.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-600x207.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app-900x311.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_app.png 1412w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Next, locate BubbleUPnP in the Google Play Store and install it on a compatible Android tablet or smartphone.\u00a0Although the free version has worked for my testing, I&#8217;ll almost certainly spring for the $4.69 version to remove ads and playlist limitations.<\/p>\n<p>Configuration of BubbleUPnP is just three steps:<\/p>\n<ol>\n<li>Select the Renderer (in our case, JRiver)<\/li>\n<li>Select the Library (TIDAL)<\/li>\n<li>Configure TIDAL for lossless streaming<\/li>\n<\/ol>\n<p>In my case, selecting the Renderer looked like this (I chose &#8220;LOFT: ifi micro iDAC2&#8221; with the JRiver icon):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-112\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-576x1024.png\" alt=\"select_renderer\" width=\"360\" height=\"640\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Renderer.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>BubbleUPnP can optionally display the properties of the renderer, including supported formats:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-109\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-169x300.png\" alt=\"jriver_dlna_renderer_info\" width=\"360\" height=\"640\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRiver_DLNA_Renderer_Info.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>Note that while FLAC is listed, there&#8217;s no DSD&#8230;and even if there was, the convolution engine does not support it.<\/p>\n<p>You&#8217;ll find TIDAL under &#8220;Cloud&#8221; in the &#8220;Library&#8221; setup section. The first time through, you&#8217;ll be asked for your TIDAL username and password:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-111\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-169x300.png\" alt=\"select_library\" width=\"360\" height=\"640\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Select_Library.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>Before you play anything, you&#8217;ll want to make sure that TIDAL is configured to deliver the highest quality stream. By default, it&#8217;s 96kbps lossy compression&#8230;not good. To fix this, go to:<\/p>\n<p style=\"text-align: center;\">&#8220;Settings&#8221; -&gt; &#8220;Settings&#8221; -&gt; &#8220;Local and Cloud&#8221; -&gt; &#8220;cloud content&#8221; -&gt; &#8220;TIDAL&#8221;<\/p>\n<p>&#8230;and make sure that &#8220;FLAC&#8221; is selected for both &#8220;Wifi\/Eth audio quality&#8221; and &#8220;Mobile audio quality&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-132\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-245x300.png\" alt=\"tidal_flac_quality_crop\" width=\"360\" height=\"441\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-245x300.png 245w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-768x941.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-835x1024.png 835w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-100x123.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-150x184.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-200x245.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-300x368.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-450x552.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-600x735.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop-900x1103.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/TIDAL_FLAC_Quality_crop.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>Now you&#8217;re ready to go back to &#8220;Library&#8221; -&gt; &#8220;Cloud&#8221; -&gt; &#8220;TIDAL&#8221; and find some music. The TIDAL interface inside of BubbleUPnP is neither beautiful or sophisticated, but what functionality is there works well. Use the big magnifying glass at the top of the interface to search for some music. Depending on what you enter, you&#8217;ll get back a few folders on the screen that represent albums, artists, and tracks that matched what you entered. If it was an artist, pick the &#8220;Artists&#8221; folder&#8230;where hopefully, you&#8217;ll find the artist you were looking for near the top of the list. After making your selection, you&#8217;ll find more folders representing albums, top tracks, radio, etc. I usually head straight to &#8220;Albums&#8221; and then queue up what I&#8217;m looing for from there. For example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-107\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-169x300.png\" alt=\"bubbleupnp_playlist\" width=\"360\" height=\"640\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/BubbleUPnP_Playlist.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>A few seconds after initiating playback from BubbleUPnP, you should see\/hear playback starting on JRiver. You can even verify this using JRemote, which shows the album art and some of the track metadata:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-108\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-169x300.png\" alt=\"jremote_track_playing\" width=\"360\" height=\"640\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/JRemote_Track_Playing.png 1440w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>The thing to look for here is the &#8220;FLAC&#8221; indicator at the bottom of the screen. This is confirmation that JRiver&#8217;s DLNA Renderer is getting a lossless stream from TIDAL by way of BubbleUPnP. The &#8220;Info&#8221; button on JRemote provides more interesting details. For example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-113 aligncenter\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-169x300.png\" alt=\"track_metadata_1\" width=\"300\" height=\"533\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_1.png 1440w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-114 aligncenter\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-169x300.png\" alt=\"track_metadata_2\" width=\"300\" height=\"533\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-169x300.png 169w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-768x1365.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-576x1024.png 576w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-100x178.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-150x267.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-200x356.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-300x533.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-450x800.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-600x1067.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2-900x1600.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2016\/11\/Track_Metadata_2.png 1440w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Note that you can optionally use JRemote to pause\/stop playback and skip forward\/back within the track that&#8217;s currently playing. However, JRiver will only &#8220;see&#8221; one track at a time in the playlist. Also, I found that I can&#8217;t resume playback from within JRemote after I stop it; I have to go back to BubbleUPnP to resume. I can do that from either the &#8220;Playlist&#8221; or &#8220;Now Playing&#8221; views in BubbleUPnP.<\/p>\n<p>I have not spent much time doing direct comparisons between local FLAC and FLAC streams of the same albums from TIDAL, but this setup really sounds great. I seriously doubt that I could tell them apart when TIDAL has the same master and release. This setup has worked flawlessly with the convolution engine within JRiver that I depend on for room correction, and although the TIDAL interface is a little clunky, once an album is queued up, I forget all about that and just enjoy the music!<\/p>\n<p>This has been a major breakthrough for me since it enables lossless TIDAL streaming while applying Acourate room correction filters in our main listening room. If this had not worked, I was heading down the path of buying a <a href=\"http:\/\/sonore.us\/microRendu.html\">microRendu<\/a>, <a href=\"https:\/\/roonlabs.com\/pricing.html\">roon<\/a>, and <a href=\"http:\/\/www.signalyst.com\/webshop.html\">HQPlayer<\/a> plus a more powerful desktop PC to run the processing&#8230;or perhaps considering the <a href=\"http:\/\/www.aurender.com\/page\/audiophile\">Aurender<\/a> route&#8230;a few thousand bucks either way. Now it seems that I don&#8217;t have to. \ud83d\ude42<\/p>\n<p>Even if your use case is less complex, I hope you find some way to take advantage of a setup like this. Cheers and happy listening!<\/p>\n<hr \/>\n<p>Update: If you don&#8217;t have an Android smartphone or tablet handy, it may be possible to do the same thing that I have described above on Apple IOS devices using\u00a0<a href=\"https:\/\/itunes.apple.com\/us\/app\/mconnect-player\/id503760460?mt=8\">mconnect player<\/a>. If I get around to testing this, I&#8217;ll post any setup gotchas here.<\/p>\n<p>Another interesting use case for this\u00a0JRiver DLNA Renderer setup is enabling guests to stream music from their mobile devices to your playback system without having to resort to Bluetooth. All they would have to do is install the free version of BubbleUPnP or mconnect player.<\/p>\n<hr \/>\n<p>2nd Update: I&#8217;ve expanded a bit more on the ideas behind this setup on the Morrow Cables Forum. Here&#8217;s a link:\u00a0<a href=\"http:\/\/forum.morrowaudio.com\/index.php?threads\/can-streaming-sound-better-than-cd.1892\/\">Can Streaming Sound Better than CD?<\/a><\/p>\n<hr \/>\n<p>3rd Update: Gapless playback with BubbleUPnP + JRiver! Yes, that&#8217;s right. Just enable &#8220;Enable gapless control&#8221; under the &#8220;UPnP Tweaks&#8221; menu in BubbleUPnP Settings:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-144 aligncenter\" src=\"http:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-300x269.png\" alt=\"Enable gapless control\" width=\"300\" height=\"269\" srcset=\"https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-300x269.png 300w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-768x687.png 768w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-1024x917.png 1024w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-100x90.png 100w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-150x134.png 150w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-200x179.png 200w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-450x403.png 450w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-600x537.png 600w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless-900x806.png 900w, https:\/\/blog.dsnyder.ws-e.com\/wp-content\/uploads\/2017\/02\/BubbleUPnP_Gapless.png 1440w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>In spite of the warning, this setting works beautifully in JRiver. With this setting enabled, I can enjoy an album from start to finish with no gaps between tracks. It&#8217;s a beautiful thing!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m so excited! I just have to share&#8230;even though chances are slim that you will have any\u00a0need for a setup like this. Before I get started, let me first explain my situation and why I&#8217;m excited. I have large loudspeakers in a small room, so to get the bass under control, my system really needed&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-115","post","type-post","status-publish","format-standard","hentry","category-concept","category-reviews"],"_links":{"self":[{"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/posts\/115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/comments?post=115"}],"version-history":[{"count":16,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/posts\/115\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/posts\/115\/revisions\/145"}],"wp:attachment":[{"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/media?parent=115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/categories?post=115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.dsnyder.ws-e.com\/index.php\/wp-json\/wp\/v2\/tags?post=115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}