DigiOne needs to sync with DAC before playing music

I am fairly new to Volumio. I am running 2.207 on a RPi 3 with a DigiOne board feeding a Schiit Yggy DAC. The SQ is outstanding! One major problem: the DigiOne drops sync when Volumio stops playing music. This is OK until the music starts again. When the music starts it takes a few hundred ms for the DigiOne and DAC to sync. This cuts off the first note or two. When using USB the sync is up all the time so this is not a problem.

Is it possible to either leave a sync signal on the DigiOne all the time like USB or to bring it up a second or so before the music starts to play so the DigiOne and the DAC can sync up? Thanks.

Not sure if this is a DigiOne specific issue. As the DO generates a standard SPDIF signal (which has the timing embedded and not as seperate data as in USB signal), it is logical that the DAC has to take a little time to sync.

Did you try feeding your DAC with a different (coaxial) SPDIF signal other than from the DO to see if it gives the same or different result? I expect the same :slight_smile:

But, I do agree that playing a little of silence in the right bitrate before the real music starts could help all DAC’s to get some time to sync.

It might be a little more difficult when you have a playlist containing tracks of different bitrates as there needs to be some switching time between tracks of different bitrates.

So, not sure if there is an easy fix.

(Or create a 1 second silent track which to use to start your playlist with :slight_smile: )

Verzonden vanaf mijn iPhone met Tapatalk

This is probably due to the fact that the DigiOne has some sort of hardware buffering (guess to kill jitter), and the driver is not properly sorted for this

The DIgione has no buffer. However when changing from one sample rate to another , it needs about 250ms to properly initialize and change the clocks

If your track has no silence or pause between them, can you try to increase the buffer to about 1s ?

The case where I have a problem is not when changing bit rates. It is when the player is going from playing nothing to playing something - i.e. at the start of the first song in the queue or resuming from stop/pause. I have increased the buffers in volumio to their maximum with no change in behavior.

I notice that after volumio stops (i.e stop, pause or end of queue) the DigOne leaves sync up for a few seconds then drops it. However if I pause and then play very quickly (well within the window where the DigiOne normally leaves sync up), that sync will drop briefly when volumio resumes play. I verified this behavior with mpc directly so it would appear that the problem is in the way that mpd is starting playback (i.e. not specific to volumio).

So I think the following two changes would solve my problem:

  1. Get mpd to start playback in a way that does not cause the DigiOne to resync.
  2. Get the DigiOne to leave sync up indefinitely at whatever bit rate was last played.

I assume number 1 would be in the way mpd calls the DigiOne library or in the library itself.
I hope that number 2 can be addressed in the DigiOne library without hardware modification to the DigiOne.

I am using an old blu-ray player as a transport and it leaves sync on the coax output all the time. This means the DAC only has to sync once when the player powers up. This is also the way the RPi behaves when using USB into the DAC. This would be the ideal behavior for a DigiOne based player.

Hello Otto

there is no sync on DigiOne. Just a spidif stream output. The extraction of data and clocks happens in the DAC itself.

What type of DAC you are using ?

Also , is it possible to use something else than MPD to see if you have same behavior ?

In all our testing so far (about 50 DACs) and customers testing we never observed this behavior. That leads me to believe (for the moment) that its an issue with the DAC itself .It needs time to extract the info from spidif stream .

Modifying the MPD will be almost impossible … this is why I suggest try LMS to see if you have same issues.

Interesting. Does the driver take this switching time into account? I see that @michelangelo suggested earlier that the driver maybe does not?

As there is no buffer, the driver should only report ‘ready’ and start accepting (music) data after the board has been initialized correctly (set/change clock). I think it should not be at the Alsa or MPD layer to handle this delay.

Any comments @allo or others?

Btw: does the driver report details about how it is initialized? Which base clock, multiplier, etc.?

Verzonden vanaf mijn iPhone met Tapatalk

Yes it takes it in consideration with some mute functions in the driver. I am double checking with the team.

I spoke to hardware team…the only delay thats present in DigiOne is oscillator/buffer delay or about 25ms …so basically undetectable

So please diregard the 250ms from above msg.

The correct value is 25ms. Whenever the MPD sends data , the DigiOne sends spidif stream out. (with a maximum delay of 25ms when changing the sample rate)

The issue from this post must be MPD/DAC related.

Please change to LMS and advise.

Ok. So no hardware buffering of data? The drivers takes 25ms to set the correct clock and than the SPDIF stream begins.

What does the ‘mute’ part do than within the driver? As there is nothing to mute.

But I agree that the DAC (a Schiit Yggy. Not really the cheapest of DACs and a NOS DAC if I read correctly?) most likely needs some time to detect the correct samplerate.

Maybe the Oppo sends a continous SPDIF streams that contains no music, when nothing is playing, or the music data when something is played. But it seems all like 1 continous stream compared to what the DO/Pi combo does.

Verzonden vanaf mijn iPhone met Tapatalk

No need for buffering. DigiOne is a “master” so SBC only send the DATA when DigiOne sends the clocks.

Yeap no muting in the driver. I was confused.

A new driver was submitted to Raspbian , please allow a few weeks to see it on most players.

This new driver has an improved , faster mclk (therefore BCLK).

Is the new driver now implemented in the Raspbian OS (Volumio)? I installed DigiOne yesterday on RPi 3 / Volumio and when connected to Audio-GD DAC 19 via COAX (RCA) I’m facing the dropout when starting every new playback (no change of sample rate). It’s disturbing.

Yes it is

Sorry to necro this one,
I have the same issue with a brand new Rasp 3B+ and Allo Digione, feeding a NAD (expeensive) dac.
Increased buffers and all the rest. No cigar. :frowning:

any help?

I am very sorry to ask for an up. My Digione cuts the beginning of the song when I select it from cue list. Self playing forward or random play are not affected.
Please help.

never mind, MoOde is not affected. Good news: it is open source as well, you can see how they manage that.
All the best.

I have the same issue that Volumio does not provide a constant stream from DigiOne out to a DAC, I am currently using a Schiit Gungnir. Volumio drops the signal between songs, even when playing a whole album, this will sometimes clip a small fraction of the song. Digimaster is correct that this behavior is NOT present with MoOde or Picoreplayer. I would just use MoOde as it is functionally better, but Volumio is the best sounding player I have tried.

If Volumio could just keep the data stream going for about 1 second after a song ends this would correct the issue. As I have said Volumio is the best sounding player I have tried for RPi with Allo DigiOne, please add a buffer between songs to keep the data stream going.

many thanks,