Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Windows 10 FLAC skipping (Read 2541 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Windows 10 FLAC skipping

Didn't have much luck searching for threads, so please excuse me if I've missed anything.  I've recently moved to a Windows 10 machine (which may or may not be relevant, but it's an obvious recent change), and immediately installed foobar2000.  I seem to be having intermittent but regular issues with FLAC decoding, however: it sounds like a record skipping, with tiny fractions of audio not rendered to the speakers (i.e. not silence, just a small jump forward in the track), or moving backwards a little, or occasionally a sharp click.  I thought at first it might be down to playing from an external USB drive, but copying files to the desktop didn't help.  Observing that it didn't seem to be an issue with other codecs, I used Audacity to transcode from a couple of sample tracks from FLAC to Vorbis, and they seemed to play without issue as well.

Is there any way to gather more objective diagnostics that could help me dig into this?  I'm open to the possibility that it's a result of system load, though I wouldn't say I tax the machine that heavily, it would be the most obvious (to me) explanation for why the abnormal playback isn't consistently at the same time for the same track.

Re: Windows 10 FLAC skipping

Reply #1
Hi there,

Before the actual experts get here ...

To rule out system load, you could monitor the Windows 10 Task Manager > Performance tab while you are playing the FLACs. If there are no CPU spikes around the time they skip, probably something else going on. (Right-click taskbar to select Task Manager)

In foobar you could also monitor View menu > Console, though might not tell you anything.

Should probably mention which version foobar too, whether main release or the current beta? Also what output settings in Preferences > Playback > Output > Device. Check there are no DSPs active (left side) under Playback > DSP Manager. Also what sound hardware and drivers are you using?

Best of luck

Re: Windows 10 FLAC skipping

Reply #2
As anamorphic said, you need to provide details about your setup. FLAC and Vorbis don't differ much in their hardware requirements and any hard drive or usb flash media is much faster than FLAC playback requires.

I'm pretty sure they output differently sized frames which could be problem for some DSP, or if you happen to suffer from this issue even for output component.

Re: Windows 10 skipping (was specifically FLAC)

Reply #3
Thanks both for the replies.  My aim was to establish what information I could provide to help diagnose, but foobar version is pretty clearly the bare minimum.  I was running 1.4, but have also tried 1.4.1 beta 5 (I'm assuming that build contains the timer resolution changes) and I'm still encountering the same behaviour.  It certainly feels to be much more prevalent when playing FLAC files, but it happens for vorbis & mp3 as well.  CPU spikes aren't dramatic or obviously correlated: whilst my initial observations left me feeling like 40%-50% spikes would regularly occur at the same time as the skip, I've been slow to reply specifically because I wanted to observe for longer, and I've now heard enough skips with no clear spike (and clear spikes with no audible skip) that it's still a distinct possibility, but I'm less sure.

WRT settings, there are no DSPs active, and the Output settings remain at defaults (1000 ms buffer length, 100ms for all Fades): shifting them right down as per one recommendation made everything sound very choppy, and bumping the buffer length right up made the skipping slightly worse, if anything.  It feels notable that when I start hearing the skipping, it seems to be a real issue for at least half an hour or so.

WRT hardware, I'm using the internal Realtek Audio card of my Dell E7450, drive 6.0.1.6122, and Windows believes this is the latest driver.  I did find a really old post on the Dell support site and one on Microsoft forums that will take me a while to work through...

Re: Windows 10 FLAC skipping

Reply #4
It sounds like DPC latency issue that bothers some system configurations. You can verify with LatencyMon.

Re: Windows 10 FLAC skipping

Reply #5
I'm open to the possibility that it's a result of system load

Audio priority should already trump everything else you do.
Quote
, though I wouldn't say I tax the machine that heavily,

With 1000ms of PCM buffered you would notice if you were - the taskmgr would have time to show something is grabbing all CPU cores.

A simple test is using another audio player.  I recommend mine.  It does all file reading/decoding in the first second, give or take, so you can easily rule out file or disk I/O problems.  I run a 32-bit version of it on a P45 system from 2008, with an Atom 330 CPU, X-Fi Elite Pro, Win10 Pro, just fine for audio and can't make it not be perfect no matter what load (and a 330 is a very slow CPU).  A long-use trial Win10-x64 version is here:

ms-windows-store://pdp/?productid=9MWLM64KMD3N

A weird link, but it should work.  Copy/pase it into a browser.

If you don't want to,...  Since you say it only happens with FLAC, it could be (scratch that since you've already used a separate disk).  I would assume it does have something to do with the disk reading if it only happens with FLAC, though.  And the last-gasp one (right after, or before, DPC latency): ... Maybe anti-virus.  Make sure you are excluding .flac files.  Oh, other file types, too.  Still, make sure you are excluding those file types.
BANNED

Re: Windows 10 FLAC skipping

Reply #6
It sounds like DPC latency issue that bothers some system configurations. You can verify with LatencyMon.

Thanks: that's close to the kind of diagnostics I was looking for, though its report sadly doesn't match with reality:
Quote from: LatencyMon
_________________________________________________________________________________________________________
CONCLUSION
_________________________________________________________________________________________________________
Your system appears to be suitable for handling real-time audio and other tasks without dropouts.
LatencyMon has been analyzing your system for  0:02:11  (h:mm:ss) on all processors.


_________________________________________________________________________________________________________
SYSTEM INFORMATION
_________________________________________________________________________________________________________
Computer name:                                        LNGLEEL7034125
OS version:                                           Windows 10 , 10.0, build: 17134 (x64)
Hardware:                                             Latitude E7450, Dell Inc., 0Y15C1
CPU:                                                  GenuineIntel Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
Logical processors:                                   4
Processor groups:                                     1
RAM:                                                  16267 MB total


_________________________________________________________________________________________________________
CPU SPEED
_________________________________________________________________________________________________________
Reported CPU speed:                                   2594 MHz

Note: reported execution times may be calculated based on a fixed reported CPU speed. Disable variable speed settings like Intel Speed Step and AMD Cool N Quiet in the BIOS setup for more accurate results.


_________________________________________________________________________________________________________
MEASURED INTERRUPT TO USER PROCESS LATENCIES
_________________________________________________________________________________________________________
The interrupt to process latency reflects the measured interval that a usermode process needed to respond to a hardware request from the moment the interrupt service routine started execution. This includes the scheduling and execution of a DPC routine, the signaling of an event and the waking up of a usermode thread from an idle wait state in response to that event.

Highest measured interrupt to process latency (µs):   316.990994
Average measured interrupt to process latency (µs):   5.298606

Highest measured interrupt to DPC latency (µs):       309.095826
Average measured interrupt to DPC latency (µs):       1.464234


_________________________________________________________________________________________________________
 REPORTED ISRs
_________________________________________________________________________________________________________
Interrupt service routines are routines installed by the OS and device drivers that execute in response to a hardware interrupt signal.

Highest ISR routine execution time (µs):              35.734773
Driver with highest ISR routine execution time:       Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation

Highest reported total ISR routine time (%):          0.027854
Driver with highest ISR total time:                   Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation

Total time spent in ISRs (%)                          0.037645

ISR count (execution time <250 µs):                   107031
ISR count (execution time 250-500 µs):                0
ISR count (execution time 500-999 µs):                0
ISR count (execution time 1000-1999 µs):              0
ISR count (execution time 2000-3999 µs):              0
ISR count (execution time >=4000 µs):                 0


_________________________________________________________________________________________________________
REPORTED DPCs
_________________________________________________________________________________________________________
DPC routines are part of the interrupt servicing dispatch mechanism and disable the possibility for a process to utilize the CPU while it is interrupted until the DPC has finished execution.

Highest DPC routine execution time (µs):              252.618350
Driver with highest DPC routine execution time:       Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation

Highest reported total DPC routine time (%):          0.265635
Driver with highest DPC total execution time:         Wdf01000.sys - Kernel Mode Driver Framework Runtime, Microsoft Corporation

Total time spent in DPCs (%)                          0.434383

DPC count (execution time <250 µs):                   410854
DPC count (execution time 250-500 µs):                0
DPC count (execution time 500-999 µs):                1
DPC count (execution time 1000-1999 µs):              0
DPC count (execution time 2000-3999 µs):              0
DPC count (execution time >=4000 µs):                 0


_________________________________________________________________________________________________________
 REPORTED HARD PAGEFAULTS
_________________________________________________________________________________________________________
Hard pagefaults are events that get triggered by making use of virtual memory that is not resident in RAM but backed by a memory mapped file on disk. The process of resolving the hard pagefault requires reading in the memory from disk while the process is interrupted and blocked from execution.

NOTE: some processes were hit by hard pagefaults. If these were programs producing audio, they are likely to interrupt the audio stream resulting in dropouts, clicks and pops. Check the Processes tab to see which programs were hit.

Process with highest pagefault count:                 wudfhost.exe

Total number of hard pagefaults                       1308
Hard pagefault count of hardest hit process:          473
Number of processes hit:                              25


_________________________________________________________________________________________________________
 PER CPU DATA
_________________________________________________________________________________________________________
CPU 0 Interrupt cycle time (s):                       5.329475
CPU 0 ISR highest execution time (µs):                35.734773
CPU 0 ISR total execution time (s):                   0.169211
CPU 0 ISR count:                                      85501
CPU 0 DPC highest execution time (µs):                252.618350
CPU 0 DPC total execution time (s):                   2.193474
CPU 0 DPC count:                                      396528
_________________________________________________________________________________________________________
CPU 1 Interrupt cycle time (s):                       1.403358
CPU 1 ISR highest execution time (µs):                34.459907
CPU 1 ISR total execution time (s):                   0.028165
CPU 1 ISR count:                                      21530
CPU 1 DPC highest execution time (µs):                161.200848
CPU 1 DPC total execution time (s):                   0.028946
CPU 1 DPC count:                                      5070
_________________________________________________________________________________________________________
CPU 2 Interrupt cycle time (s):                       1.853777
CPU 2 ISR highest execution time (µs):                0.0
CPU 2 ISR total execution time (s):                   0.0
CPU 2 ISR count:                                      0
CPU 2 DPC highest execution time (µs):                140.857363
CPU 2 DPC total execution time (s):                   0.031056
CPU 2 DPC count:                                      5185
_________________________________________________________________________________________________________
CPU 3 Interrupt cycle time (s):                       1.027068
CPU 3 ISR highest execution time (µs):                0.0
CPU 3 ISR total execution time (s):                   0.0
CPU 3 ISR count:                                      0
CPU 3 DPC highest execution time (µs):                188.914032
CPU 3 DPC total execution time (s):                   0.024044
CPU 3 DPC count:                                      4072
_________________________________________________________________________________________________________

Over 2 minutes of execution, it continued to report that the system appears to be suitable (emphasis mine: I like the caveat), as an Ogg file repeatedly skipped.

A simple test is using another audio player.

Apparently Windows Store is blocked on this machine, so I've used VLC, and it too skipped repeatedly within the first 2 minutes of the same Ogg file.  So, I took the drive over to another laptop, and the same file played just fine in foobar.  This made me realise that on my main machine, I have the USB drive plugged into an extension cable (albeit a short one), so I tried plugging it directly into one of the USB ports on the Windows 10 machine, and I've now played various Ogg & FLAC files for over an hour.

Whilst I'm somewhat frustrated that I didn't think of the cable as a potential factor earlier, it was the suggestions of trying other things that got me thinking a little more systematically, so thanks everyone for input & patience.

Re: Windows 10 FLAC skipping

Reply #7
Windows 10 is awful when it comes to sound. I'm on the 'fast ring'.
I don't see any improvement windows 10.  :( 
EZ CD Audio Converter / FLAC or WavPack

Re: Windows 10 FLAC skipping

Reply #8
delete post.
EZ CD Audio Converter / FLAC or WavPack

 

Re: Windows 10 FLAC skipping

Reply #9
I remember that few years ago I 've read description of Exact Audio Copy as being "always beta" or "never-ending beta". Now it is not. I think Windows 10 is now "forever beta" and I doubt it will ever end. Contrary to EAC.