Sign in with
Sign up | Sign in
Your question

S/PDIF Output delay problem

Last response: in Components
Share
June 12, 2006 12:32:05 AM

I recently tried the optical spdif output of my laptop, and found that it takes a small ammount of time (about 0.5s) before it actualy outputs the signal. This means that the first sec of so of any sound is simply cut off, for example, when i pling the windows volume control, the sound is too short to ever appear. Its not an issue with the device thats recieveing the signal, its simply that the soundcard sees fit to simply stop the optical out as soon as thers no sound to output.

I have been searching around for a fix on this for ages with no luck, its seems to be a problem that a good ammount of people are having. If its of any use il post the exact details of sound card and driver versions etc on request.

Any help would be much appreciated, its an extreemly frustrating problem

More about : pdif output delay problem

June 12, 2006 1:40:37 PM

S/PDIF is a digital signal; some latency is unavoidable. 500 msec, for me at least, crosses into the realm of grossly unacceptable.

However, it is generally possible to reduce latency in hardware/software. Results can vary dramatically, and depend entirely on the sending device, 'cable', and recipient of the S/PDIF signal.

Details would be needed in order to better grasp your setup, and offer advice.

Sound Card (model, revision, drivers)
Recieving Device
Media (i.e. optical, electrical)

Let me know, sir.

Cheers,

one_winger
June 13, 2006 8:37:27 PM

Just to clarify, as soon as the recieveing device locks on to the signal it works brilliantly, thers absolutely no audiable delay between it and the analogue output. The problem as far as i can tell is that the sound card sees fit to "unlock" the spdif stream (stop clocking it), which means that next time some sound id output, it takes a moment for the recieveing device to "lock" back on the the stream again, anyway... onto the exact details:

$ Soundcard
This is a laptop were dealing with here so the soundcard is integrated (onto the southbridge), as follows:

South Bridge: VT8237
Codec type: VT1618
Driver Version: 6.14.1.4130 (latest available from system mtfr)
The S/PDIF out is optical (mini toslink)

$ Recieveing Device
Im using a Technics SJ-MD150 minidisk deck to recieve the signal, via a standard 5M optical cable. I have ruled out the possibility of this being faulty in any way. Its able to recieve streams from other devices (CD players, consoles, etc) via optical in without problems. Im using its "Monitor" function to take in the signal, and and ouptut it to my amp via its standard analogue out (What im basicaly tryin to do here is use my minidisk deck's DAC instead of the one in my laptop)

I have done lots of experimentation, and it seems to be a case of "tricking" the soundcard to keep the spdif output active.. So, for example if i play a video in WMP, and mute the sound, this keeps the spdif output active (even though no sounds coming out) and playing any other sounds, like music thru itunes, the windows volume control plinger all work fine. I have also found that simply running quicktime, and keeping that open for some reason keeps the spdif output active and everything works fine.

The mindisk deck displays a message that tells you if it has locked onto the spdif signal, or not, and when i play a sound (from silence before) i see it briefly flicker to "unlocked" and back to /working corectly/ as it re-locks on to the stream. Its this delay thats causing the problem. I just need to find a proper way to keep the spdif output active.

Thanks for taking the time to reply
Related resources
June 13, 2006 10:16:26 PM

Hrm...

Well, since this is onboard VIA audio we're talking about, and it's done mostly in software (there are some hardware functions, but the audio output algorithms are done nearly completely in software), I would expect sync to take as long as it does, unfortunately.

All of your other devices (CD Players, etc..) will have a higher quality/dedicated audio chipset (typically) to implement the signal purely in hardware, and are cabable of syncing faster.

In most cases, I would recommend to upgrade the sound device (high-end or professional cards offer much better cards, with much lower latency), but in your case, it's nearly impossible... So, in your case, I would recommend to, if at all possible, to stay with the analog output.

One more question, however: are there any other devices on the chain that could assert a clock on the line? Or are you using the laptop as the master? This could make a difference...

Other than that suggestion, there's not much else I can think of without having the hardware in front of me.

Hope that at least explains what's going on.

Cheers,
June 13, 2006 11:18:10 PM

I imagine that would be insanely difficult... Id have to make my own device that would accept the spdif signal, synthesize a clock from it, so that when the laptop stops output it could keep clocking.. and then when the spdif on the laptop becomes active it will likely be out of synch with the clock running in the theoretical device!

Thers one other point tho which i didint make clear. The delay isnt cuased by the computer. The spdif signal becomes active instantly as a sound starts, no delay at all. Its just that the minidisk deck needs a half sec or so to lock onto a new signal (since the spdif has been inactive until a sound starts) If i could keep the spdif output active, the minidisk deck would never unlock from the signal (appart from, obviously when it was first turned on), and thus there would never be any delays. Im sure this is the kinda thing that could be done by a new driver.. but thers simply not a newer version available! and unfortunately i wouldnt have the first idea about how to modify the driver to achieve that functionality
June 14, 2006 2:20:18 AM

As far as the theoretical device goes, I was inquiring as to any devices that are default as master, asserting a signal on the line, not to construct your own (although, it may be fun, however, insanely difficult indeed).

So, the computer is not causing a delay... it's the MiniDisc jobbie that needs to synchronize.

Yes, indeed, that would require a driver modifuckation, but I wouldn't have a clue where to start either... As I understand it, it shouldn't take much data/clock frames for synchronization to happen, so that may not be it either.

Check out this link:

http://www.rockbox.org/mail/archive/rockbox-archive-2004-01/0442.shtml

There's another guy (slightly different equipment) that has the same issues. I might question signal level, in your case, or potentially marginal equipment.

Let me know if that helps at all.

Cheers,
June 14, 2006 2:11:52 PM

Hmm. i did some experimentation. I connected my CD players optical out to the minidisk deck, and found it will synch almost instantaneously as i plug it it in. Like the guy in the link above, i can hold the connector and simply point it in out out and the sound comes on or off *almost* instantaneously. So, maybe there is something going on with the soundcard delaying output. Although its odd because the spdif becomes active (i see the minidisk deck start to lock on the instant i play a sound) iy just takes longer to synch from the comp than from other sources. Verry odd! I wonder if maybe its outputting a nonstandard stream... According to the fairly uninformative soundcard options its outputing standard PCM... so it should be fine.. but somethings clearly amiss!. I wish there were more options to experiment with, but thers none available. I even had a peek in the ol' registry, but thers no usufull looking keys there.

I definitely agree tho, it should'nt take more than a few frames to synch, and ecven if it took tens of frames that would stilll only correspond to a minute fraction of a second of audio when were dealing with 16bit 44.1KHz.. its almost like its requiring hundreds of frames, or for some reasons having a hard time synching.
June 27, 2006 7:59:24 PM

Pleaassssseeeee any one got any more ideas on this? im at my wits end. So near to audio perfection. Is there a way to make windows output "0" on the spdif port continously so it never disengages?
July 8, 2006 4:28:31 PM

You know,

I've looked all over for an answer to this...

I'm currently reviewing some code that may allow for S/PDIF keepalive (similar to outputting a silent WAV or similar on a channel).

There may be a way to loop and crossfade a very short and silent WAV clip or similar with a small background sound player...

That's about all I can think of for now.
January 17, 2009 4:05:58 AM

I've had similar problems, actually both good working solutions and worse ones.

Initially, when I built my computer, I recieved a small delay, I only noticed it in the first second.

However, due to many kinds of problems, I had to reinstall my copy of Windows XP and it then worked perfectly for almost two years, I don't know exactly what did this, but I believe that there could be a "power-save"-mode built-in with normal drivers, which my XP didn't have when I installed it. I only used drivers that were included in XP this time.

But now lately, I have upgraded to Vista, and my problems have reappeard.

I can't provide any solution, but my understanding is that there is nothing wrong with your hardware, since my hardware has faced both solution and problem. I strongly believe that there is a power-save function. The question is how to always let the optical light shine...

/DL
July 22, 2009 10:35:07 PM

here is a little trick I use with iTunes to help with the delay.

I enable the Crossfader option and set it to 1 sec. The first song you play will still have a delay but once its over it will cross into the next song. This is ideal if you are playing a playlist but not if you are just browsing songs in your library.

in iTunes the crossfader is under Edit > Preferences > Playback then check the box and select the length of time you wish the crossfade to begin.

*Note: If you enable this on your system and have your ipod syncing auto with iTunes then you may inadvertently enable it on your ipod as well.


chris
July 23, 2009 12:04:46 PM

I think its unavoidable really. I have the same problem myself, so all windows sounds get messed up (I just turned them off eventually).

There might be a 'monitering' option avaliable (like for mic inputs) that you can use to force the channel open. In fact, if you configure a microphone to always stay on, and then assign that signal to play back into your speakers, and then mute the microphone, that might have the intended effect...
August 30, 2009 2:07:39 AM

Hi all, I would like to ask if anyone had encountered the solution for this, maybe we can develop a windows service that permanently outputs some frecuency to the spdif interface (in shared mode) so it keeps the channel opened and doesn't interfere with other sounds...
December 29, 2009 8:14:03 PM

Hopefully this helps. First of all, I have had this problem since day one trying to make beats in FL Studio. I always wanted a pure, digital signal @ 96Khz and could NEVER achieve this due to this annoying problem talked about here. I always resorted to analog wires, which is ok to be honest. But I never realized until JUST NOW, after reading in here.. I always had the answer to the problem, albeit a band-aid. Just turn on the monitor in your playback options for your line-in. It has no hiss (atleast on my x-fi card) which was why I ALWAYS muted everything. (I am a FREAK about noise just like any other audiophile!) Well, that supplies enough feed to keep the digital signal streaming and no more clipped sound. Just thought I would share!
January 10, 2010 10:35:24 AM

Hi. I have the same problem and after reading your comments I found a solution: run a program which plays back a silence sound file all the time. The SPDIF channel stays open and Windows will mix the silence with the stuff you want to play back. I think Microsoft should add something like this by default...
January 10, 2010 11:04:50 AM

I found a silence player using Google. Just type "silence player" in Google
July 24, 2014 2:01:29 AM

If anyone is still having this problem, here is my solution: Just uninstall Realtek HD Audio Driver! With Windows' standard sound driver my digital output works perfectly without clipping the sounds in the beginning.
August 15, 2014 5:44:54 PM

I've encountered two different causes of the SPDIF initialization delay, along with two solutions.

Some audio chipsets will halt the SPDIF bitstream when there is nothing playing through the kernel mixer. When a sound is played, it takes a few milliseconds for the receiver to wake up. A utility called "SPDIF KeepAlive" works around the issue by always feeding silence to the audio subsystem, keeping the SPDIF bus open.

Some chipsets do include their own keep-alive, but I found that they tend to output in 16-bit 44.1kHz PCM format. If you have any other sample rates or encoding formats selected in your device's digital out properties, the SPDIF bus might reinitialize to the new rate or format when you play a sound, and again when the sound stops. My solution was to only allow 16-bit 44.1kHz PCM output (since I only have 2.1 speakers), but the "SPDIF KeepAlive" program would probably be a good solution for people who want higher rates or non-PCM encoding formats.

I really needed a fix for these issues since the SPDIF decoder in my 2.1 speakers make a "pop" when the SPDIF bus reinitialized.
!