Diretta Audio Protocol for Raspberry Pi 5

Kannan

Well-Known Member
Joined
Jan 13, 2008
Messages
2,634
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.
 
Thanks @Kannan for the steps. I have done the similar setup on Raspberry pi 4.
The Dac which i have doesn't have USB input, so i am using SMSL po 1000 pro ddc .

Had to install Gentoo player and then enable Diretta target from there.
 
Thanks @Kannan for the steps. I have done the similar setup on Raspberry pi 4.
The Dac which i have doesn't have USB input, so i am using SMSL po 1000 pro ddc .

Had to install Gentoo player and then enable Diretta target from there.
yes....with rpi 4 there is no direct trial version of Diretta. You need to install the trial via Gentooplayer (which is ofcourse not free). Also with this option there is no limitation of USB DAC as Gentooplayer supports all DAC Hats.
 
Thanks @Kannan for the steps. I have done the similar setup on Raspberry pi 4.
The Dac which i have doesn't have USB input, so i am using SMSL po 1000 pro ddc .

Had to install Gentoo player and then enable Diretta target from there.
So, has Diretta improved the Sound Quality in any way?
 
Yes it did, specifically on the timing. Initially i connected host and rpi to my mesh network , it was noisy. After connecting them directly to each other with short lan cable it has improved a bit.
Use a crossover cable. It is the recommeded one for direct device connection.
 
Yes it did, specifically on the timing. Initially i connected host and rpi to my mesh network , it was noisy. After connecting them directly to each other with short lan cable it has improved a bit.
Are you running a limited version or a full version of Diretta?
 
Use a crossover cable. It is the recommeded one for direct device connection.
Thanks Kannan for sharing how to connect diretta (Raspberry Pi 5 limited simple) simply, effectively, stably, easy to use .:eek:
 

Attachments

  • P5.jpeg
    P5.jpeg
    140.4 KB · Views: 39
  • P4.jpg
    P4.jpg
    156 KB · Views: 39
  • P3.jpg
    P3.jpg
    102.2 KB · Views: 40
  • P2.jpeg
    P2.jpeg
    147.6 KB · Views: 37
  • P1.jpeg
    P1.jpeg
    23.6 KB · Views: 33
  • P6.jpeg
    P6.jpeg
    148.8 KB · Views: 32
//
Diretta: Diretta is a completely new protocol designed for high-end audio.
Its concept is completely different from existing protocols.
Many factors affect the sound quality of an audio player.
Power supply noise generated by digital blocks in the circuitry has a significant impact on sound quality.
To suppress this noise, capacitors and inductors are typically placed in the power supply.

This creates a low-pass filter, reducing spike-like digital noise.
However, as you can see from the low-pass filter, low-frequency fluctuations do pass through.

Since this is not noise, there is no need to remove it, and it is invisible when observing the voltage.
However, when observing the current, we can see that there is noise that affects the audible band at a regular interval.
It is certainly difficult to remove this noise electrically.
We thought that suppressing this noise could significantly improve sound quality.

However, configuring the CPU and other components with a constant current like a class A amplifier is extremely difficult and unrealistic.
If we could solve this problem with a software approach, a realistic implementation would become possible.
One way to do this is to average processing and reduce power consumption fluctuations.

Diretta aims to propose one solution to this problem.
The player with the analog components is called the Target, and the server with storage and other features is called the Host.
The Target and Host are designed with different concepts in mind.

The Target simplifies processing to minimize and average it.
Similar to hardware processing in an FPGA, it is configured with simple processing.

The Host operates in synchronization with the Target to average out the Target's processing.
To average out processing, packets are sent at regular, short intervals whenever possible.
The target buffer is predicted and controlled.
This minimizes power consumption fluctuations on the target player.
It's similar to USB sync, but the host synchronizes, so the target doesn't change speed.

It doesn't use buffering or flow control like USB ansync.
Ethernet allows for a completely isolated connection, and it's compatible with cables like fiber. It
doesn't require complex file range requests like UPnP.

It doesn't require complex synchronization processes like AES67 for multiple devices.
Diretta will continue to prioritize sound quality and
evolve to minimize the impact on analog blocks.

//
 
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.
Post activations, any one successfully tried to update the versions? looks like we have to continue with same versions...
I attempted to update the versions but post successful downloads when applying they failed.
 
Purchase the NEW Audiolab 6000A MkII Integrated Amplifier at a special offer price.
Back
Top