Guide to using Tidal application with USB DAC in Mint

Write tutorials for Linux Mint here
More tutorials on https://github.com/orgs/linuxmint/discu ... /tutorials and (archive) on https://community.linuxmint.com/tutorial
Forum rules
Don't add support questions to tutorials; start your own topic in the appropriate sub-forum instead. Before you post read forum rules
Post Reply
Demmers
Level 3
Level 3
Posts: 101
Joined: Fri Aug 16, 2019 7:37 am
Location: England, UK

Guide to using Tidal application with USB DAC in Mint

Post by Demmers »

I thought I would share with everyone and anyone who's interested, a guide on how to use the Tidal music streaming application in Mint (running virtually on Windows 10), alongside a USB DAC.
So firstly, Tidal does not have an application for Linux, so to begin with, I was happy putting up with the web browser interface. Downsides: No exclusivity straight to my DAC. No gapless playback. No Masters quality. So I was originally looking into the Raspberry Pi steaming options out there, but nothing seemed suitable for me (harder for iPhone users when BubbleUPnP options are given). Then it occurred to me to look into virtualisation, and that is where i've ended up. A big caveat to bear in mind: Latency. My custom-built PC has a 4 core/8 thread CPU (AMD Ryzen 3400G) and 16GB RAM. This is managing this well (just), but i'm not sure how well lower spec'd machines will cope. I'm interested in seeing how other machines fair.
So to begin with, Windows 10 needs to be virtually set up. Download the Windows 10 installation media tool https://www.microsoft.com/en-us/softwar ... ndows10%20 then download the iso file.
I'm using VirtualBox for the virtualisation, but i'm sure the principles from here should apply to any others.
Memory size I set to 4GB (4096).
I've set Processor to 4 CPU's. VirtualBox sees me having 8 in total due to the threads, and when listening to music, I don't use the main machine for anything else other than web browsing, and wanted to make sure the VM has enough resources to use the DAC.
As this is purely for Tidal only, I set hard drive to 50GB, but you can get away with 40.
In the Audio section, this can be left alone due to the use of the DAC.
Network to Bridged Adaptor.
When it comes to USB, this is where most of my research went! I had to install the VirtualBox extension pack (virtualbox-ext-pack) from Software Manager, as this contains the USB 3 protocols that are needed for my DAC to be detected.
Once VirtualBox is opened with the ext-pack installed, in USB, you should see and select USB 3 xHCI Controller.
Now we need to create a USB filter in order for the VM to see the DAC.
Connect the DAC to the machine if it isn't already, open Terminal in Mint, and run " lsusb ". This will give a list of all the detected USB ports and any devices connected to them. Look for your DAC in the list, and make note of the 2 groups of 4 digits after ID.
Back in the VM USB settings, click the top USB icon on the right-hand side to create a new filter, then double-click on the filter to open its settings. Name can be anything you want (DAC e.g). In Vendor ID, put in the first of the 2 groups of digits seen earlier in Terminal. The second group in Product ID. Leave everything else blank, and OK.
With all settings complete, now disconnect the DAC, run the VM and point it to the Windows iso file, finish setting up Windows 10 and install Tidal like you normally would. You may also need to install a driver for the DAC.
Once everything is up and running, shut down the VM AND the main PC itself. Restart both machines, then insert the DAC. HOPEFULLY, in Windows 10 > Sound settings > Playback (and in Tidal settings), you should see the DAC listed. If the DAC isn't detected, close both machines down again, insert the DAC, then restart both. In Tidal, set it to Exclusive mode. From here, the DAC can be left in as it will automatically switch between the two machines depending on whether the VM is running or not.
The driver for my DAC (Topping D10s) comes with Buffer settings. As we are listening to music, not producing, we don't need the latency to be as small as possible, we just need to make sure there are no glitches/stutters during playback (using a USB DAC on a virtual machine puts a lot on the CPU). I have mine set to 2048 samples (around 50ms), but you will need to play around with yours accordingly.
That should be it. I know this isn't the most common thing that people use, but as someone who's into hifi/headphones, I thought i'd stitch together all the necessary guides I could find into one guide to save someone else the hassle!
Hope this is useful to someone, and happy listening!
Post Reply

Return to “Tutorials”