Diretta Audio Protocol for Raspberry Pi 5

Kannan

Well-Known Member
Joined
Jan 13, 2008
Messages
2,626
Points
113
Location
Chennai
Dear friends,

With music streaming maturing and becoming almost defacto option for many, the latency plays a big role in enabling good quality playback. Many number of solutions are available and generally Linux is regarded as the best OS though some great windows solutions are available, but, windows needs humungous effort.

Much has been done on the linux front, especially with SBCs (Single-Board Computer) like raspberry pi becoming very popular.
Many readymade solutions like Volumio, MoOde Audio, Picoreplayer, Dietpi etc are available for raspberry pi including its own native OS combined with mpd players that needs some knowledge of linux to do.

Diretta developed by a Japanese individual is not new and has been around for a few years, but has caught attention in the last 2 to 3 years. It is not a playback solution, but provides a very low latency solution handover of music bits from the source to the DAC. It is purely ethernet driven and runs on IPV6 protocol.
For more details of its topology, visit https://www.diretta.link/

Diretta is not open source and is only available as an embedded option to install within gentooplayer (https://gentooplayers.com/) and Audiolinux (https://www.audio-linux.com/) or with some other hardware streamers like SoTM and others (all quite expensive).

But they at present have an option to try it for free (trial) on Rapberry pi 5 and will only work on USB DACs. The playback is restricted to 44.1khz files being a trial.

Following are the steps to try it for free.


Hardware:
1. Raspberry pi 5
2. Laptop or a PC running Windows 10 or 11
3. USB to ethernet adapter (Optional), You can also use your laptop’s in-built ethernet adapter
4. An ethernet cable (preferably crossover cable) to connect the raspberry pi directly to USB/ethernet adapter connected to the laptop
5. USB DAC is mandatory

Software Must:
Download the following two files from https://www.diretta.link/preview/

diretta_RaspberryPi5_limited - image file
DirettaASIOdriver_2_143_2 - An executable file that you need to run on your windows laptop and follow the instructions there-in
Download Balena Etcher - https://etcher.balena.io/
Download Foobar2000 - https://www.foobar2000.org/download (You can either download and install a full version or just download and run a portable version)
or Download trial version of JRiver Media Center - https://jriver.com/download.html
JRiver is better as it already comes with inbuilt support for ASIO drivers.

Installation: Do it the same order as below
1. Write the diretta_RaspberryPi5_limited image to a microSD card using Balena Etcher (it will throw an error after running the verification process, ignore it).
2. Connect the USB cable between the USB 2 port of raspberry pi and the USB port of your DAC and power on the DAC and select the input option as USB in the DAC. If you DAC has a display, it will show a connection established.
3. Insert the SD card into the pi 5 and power it on. When you see both green and red light lit-up after a minute or so, it means the pi has booted successfully.
4. Whichever ethernet port you will be using on your laptop, for it uncheck all except IPV6 in its network adapter properties. This step is important, though not mandatory as Diretta will only use the IPV6 pipeline. You may also do the folliwing......Inside the “Advanced” window, untick the “automatic metric” and put “100” in the field “Interface metric”. Once it is done, click on ok and close all open windows.

network .jpg

5. You may choose to stay connected to your router via wifi if you plan to play files from network (NAS). If you are only going to play files from your laptop hard drive or a pen drive, you maybe disable or disconnect from wifi. I recommend disable wifi and play music files locally.
6. Next run an ethernet cable between the above used ethernet port (IPV6) of your laptop and the raspberry pi’s ethernet port.
7. Now install the DirettaASIOdriver_2_143_2 file in the laptop. After installation, run the Diretta ASIO Configuration file (you can search for it in the windows search button). When it opens, click the Find button and then the Connect Target drop down menu to select the raspberry pi as the target. For additional settings, you can click the Config button and see.
8. If you have successfully reached till above, then you are all set to play music files
9. Install Foobar and install ASIO component from its repository. You can download the ASIO component for foobar from the link below and install it. https://www.foobar2000.org/components/view/foo_out_asio
10. Once ASIO is installed, restart foobar (it will normally start automatically). Now if ASIO component is properly added, in the Device Output option (under Library/Configure/Output), choose Diretta ASIO as the output. You can also set priority to realtime in the ASIO Setting option.
11. Now import your playlist or select the music files of your choice and play and experience Diretta.
12. If you have installed JRiver, so dont need any add-ons, under Output, choose Diretta ASIO.

Here is a schematic in its simplicity

diretta.jpg

Hope this helps.
Do post your queries and comments if you could try it out.
 
This is super helpful, @Kannan
I followed a similar approach when testing Diretta on my Raspberry Pi 5 before committing to a dedicated Diretta streamer (in my case, the SOtM).

In fact, I experimented with two different setups on the RPi5:
  1. GentooPlayer with Diretta
  2. Diretta-only setup
This is a great way to get a feel for how an optimized digital protocol like Diretta performs before purchasing a licensed version. While some say the RPi5 isn’t completely stable, it still offers a solid first-hand experience of the sound quality improvements Diretta can bring.

I had also put together a guide specifically for SOtM users, though the process can apply to other devices as well.
Sharing it here in case others find it helpful. Few Steps are similar to what Kannan has shared.

How I run Diretta with the SOtM sMS-200 Ultra Neo:​

  • Install the SOtM Diretta Host Driver on your host PC (this is the same PC you use for playback—Roon, Audirvana, HQPlayer, etc.).
    Driver link: SOtM ASIO Driver
    1754512402224.png
  • Ensure IPv6 is enabled on both the PC and the SOtM device. (how to enable on windows 10/11)
  • Connect your DAC to the SOtM (Diretta Target), and make sure the DAC is powered on.
  • On the Eunhasu interface of the SOtM, enable Diretta (make sure all other protocols are disabled).1754512434228.png
  • Open the Diretta ASIO driver on the host PC, click Find, and your DAC should appear. Select it and click Save.1754512418561.png
  • Now, in JRiver, Roon, Qobuz or HQPlayer settings, the SOtM Diretta device will appear with the name you assigned to the Target device. Just select it and hit play.
  • To check if Diretta is actually working, you can use the Debug Tool under Diretta Control Panel, it is a handy tool.
    You can check and be used for Low-level system tuning for ultra-low jitter audio streaming by making changes to the config files or in the control panel tab.
    1754513438801.png


I have gone one step further and connected my Diretta Target to Host via ethernet (SOtM connected to PC directly) to reduce latency and jitter.
Below is a diagram showing how my digital chain looks now:
1754514518032.png

Before and After optimizing chain for Latency & Jitter:
1754513883028.png
1754513929829.png


Jriver
1754512609134.png

Qobuz
1754512879501.png

Roon
1754512785334.png

HQPlayer
1754512950326.png
 
Dear friends,

With music streaming maturing and becoming almost defacto option for many, the latency plays a big role in enabling good quality playback. Many number of solutions are available and generally Linux is regarded as the best OS though some great windows solutions are available, but, windows needs humungous effort.

Much has been done on the linux front, especially with SBCs (Single-Board Computer) like raspberry pi becoming very popular.
Many readymade solutions like Volumio, MoOde Audio, Picoreplayer, Dietpi etc are available for raspberry pi including its own native OS combined with mpd players that needs some knowledge of linux to do.

Diretta developed by a Japanese individual is not new and has been around for a few years, but has caught attention in the last 2 to 3 years. It is not a playback solution, but provides a very low latency solution handover of music bits from the source to the DAC. It is purely ethernet driven and runs on IPV6 protocol.
For more details of its topology, visit https://www.diretta.link/

Diretta is not open source and is only available as an embedded option to install within gentooplayer (https://gentooplayers.com/) and Audiolinux (https://www.audio-linux.com/) or with some other hardware streamers like SoTM and others (all quite expensive).

But they at present have an option to try it for free (trial) on Rapberry pi 5 and will only work on USB DACs. The playback is restricted to 44.1khz files being a trial.

Following are the steps to try it for free.


Hardware:
1. Raspberry pi 5
2. Laptop or a PC running Windows 10 or 11
3. USB to ethernet adapter (Optional), You can also use your laptop’s in-built ethernet adapter
4. An ethernet cable (preferably crossover cable) to connect the raspberry pi directly to USB/ethernet adapter connected to the laptop
5. USB DAC is mandatory

Software Must:
Download the following two files from https://www.diretta.link/preview/

diretta_RaspberryPi5_limited - image file
DirettaASIOdriver_2_143_2 - An executable file that you need to run on your windows laptop and follow the instructions there-in
Download Balena Etcher - https://etcher.balena.io/
Download Foobar2000 - https://www.foobar2000.org/download (You can either download and install a full version or just download and run a portable version)
or Download trial version of JRiver Media Center - https://jriver.com/download.html
JRiver is better as it already comes with inbuilt support for ASIO drivers.

Installation: Do it the same order as below
1. Write the diretta_RaspberryPi5_limited image to a microSD card using Balena Etcher (it will throw an error after running the verification process, ignore it).
2. Connect the USB cable between the USB 2 port of raspberry pi and the USB port of your DAC and power on the DAC and select the input option as USB in the DAC. If you DAC has a display, it will show a connection established.
3. Insert the SD card into the pi 5 and power it on. When you see both green and red light lit-up after a minute or so, it means the pi has booted successfully.
4. Whichever ethernet port you will be using on your laptop, for it uncheck all except IPV6 in its network adapter properties. This step is important, though not mandatory as Diretta will only use the IPV6 pipeline. You may also do the folliwing......Inside the “Advanced” window, untick the “automatic metric” and put “100” in the field “Interface metric”. Once it is done, click on ok and close all open windows.

View attachment 92364

5. You may choose to stay connected to your router via wifi if you plan to play files from network (NAS). If you are only going to play files from your laptop hard drive or a pen drive, you maybe disable or disconnect from wifi. I recommend disable wifi and play music files locally.
6. Next run an ethernet cable between the above used ethernet port (IPV6) of your laptop and the raspberry pi’s ethernet port.
7. Now install the DirettaASIOdriver_2_143_2 file in the laptop. After installation, run the Diretta ASIO Configuration file (you can search for it in the windows search button). When it opens, click the Find button and then the Connect Target drop down menu to select the raspberry pi as the target. For additional settings, you can click the Config button and see.
8. If you have successfully reached till above, then you are all set to play music files
9. Install Foobar and install ASIO component from its repository. You can download the ASIO component for foobar from the link below and install it. https://www.foobar2000.org/components/view/foo_out_asio
10. Once ASIO is installed, restart foobar (it will normally start automatically). Now if ASIO component is properly added, in the Device Output option (under Library/Configure/Output), choose Diretta ASIO as the output. You can also set priority to realtime in the ASIO Setting option.
11. Now import your playlist or select the music files of your choice and play and experience Diretta.
12. If you have installed JRiver, so dont need any add-ons, under Output, choose Diretta ASIO.

Here is a schematic in its simplicity

View attachment 92362

Hope this helps.
Do post your queries and comments if you could try it out.
Thanks for sharing this, Kannan.
I had a few questions regarding the setup:
Is this approach compatible only with Raspberry Pi 5 models, or can it work with earlier versions as well?
With this configuration, will the RPi function solely as a network bridge, or is there a way to still access and utilize it for other tasks?
If we use a standard Ethernet cable instead of a crossover cable, would that introduce any limitations or affect functionality?
Regarding the “Interface metric” setting—since we’re configuring this only on the player side, what’s the purpose of enabling “automatic metric” and setting the value to 100?

Appreciate your insights in advance!
 
Thanks for sharing this, Kannan.
I had a few questions regarding the setup:
Is this approach compatible only with Raspberry Pi 5 models, or can it work with earlier versions as well?
With this configuration, will the RPi function solely as a network bridge, or is there a way to still access and utilize it for other tasks?
If we use a standard Ethernet cable instead of a crossover cable, would that introduce any limitations or affect functionality?
Regarding the “Interface metric” setting—since we’re configuring this only on the player side, what’s the purpose of enabling “automatic metric” and setting the value to 100?

Appreciate your insights in advance!
This OS will only work with raspberry pi 5 and you cannot put it to any other task. Ethernet crossover cable, only for direct device-to-device communication, is supposed to offer higher data transfer speeds and lower latency.
Regarding the metric thing, I am not aware of the benefits.
 
This OS will only work with raspberry pi 5 and you cannot put it to any other task. Ethernet crossover cable, only for direct device-to-device communication, is supposed to offer higher data transfer speeds and lower latency.
Regarding the metric thing, I am not aware of the benefits.
Thanks again for the clarification.
 
Order your Rega Turntables & Amplifiers from HiFiMART.com - India's reputed online dealer.
Back
Top