Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analogue output glitches at 44.1, 48kHz with built-in Windows driver #120

Open
danielpieczko opened this issue Jan 25, 2023 · 8 comments
Open
Labels
release notes Item should be listed in the release notes

Comments

@danielpieczko
Copy link
Contributor

danielpieczko commented Jan 25, 2023

App: xk_316_mc
Config: 2AMi8o8xxxxxx_winbuiltin

Using ASIO4ALL with the built-in Windows driver, there are glitches in the analogue outputs at 44.1 and 48kHz. At 44100, all channels show glitches; at 48000 the glitches were seen on channels 1, 2, 4, 5, 7

The glitches appear to be periodic, with the audio analyzer software detecting approximately proportionally more as the duration increases.

Zip containing a stereo WAV recording of this issue and a USB protocol capture (not captured and recorded simultaneously): sine-glitches-48k.zip (since this was recorded at 48k, the glitches are only on channel 1, not channel 0)

This issue is very similar to #107 which went away when ASIO4ALL was upgraded to the latest version.

@danielpieczko
Copy link
Contributor Author

There are lots of parts of the recording that look like they have missing samples:
image

@danielpieczko
Copy link
Contributor Author

In ASIO4ALL, the buffer was set to the maximum of 2048 samples.

@danielpieczko
Copy link
Contributor Author

This glitching depends on the version of ASIO4ALL being used.

| Sample frequency | ASIO4ALL v2.15 | ASIO4ALL v2.14 |
|----------------------------------------------------|
|        44100     |   glitches     |    good        |
|        48000     |   glitches     |    good        |
|        88200     |   good         |    good        |
|        96000     |   good         |    good        |
|       176400     |   good         |    glitches    |
|       192000     |   good         |    good        |

@danielpieczko
Copy link
Contributor Author

The USB data was captures from host to device and converted into a WAV file: this showed glitches on the same channels as the analyzer detected, so this looks to be a host driver issue, rather than a problem with our board or software.

@xross
Copy link
Contributor

xross commented Feb 3, 2023

At 44100, all channels show glitches

Are the glitches on the channels all at the same time or at different channels a different times?

@xross xross added the release notes Item should be listed in the release notes label Feb 3, 2023
@danielpieczko
Copy link
Contributor Author

Are the glitches on the channels all at the same time or at different channels a different times?

They are all at the same time.

@danielpieczko
Copy link
Contributor Author

This issue has also been seen in I2S loopback testing, where the ramp samples appeared to be divided by 2 at 44100, and 3 at 48000.

Failed: Failure at sample rate 44100
Channel 0: discontinuity (samples 24576, 12291 do not differ by 3 but by -12285) (sample 13144)
Channel 0: discontinuity offset 0: 12291 12294 12297 12300 12303 12306 12309 12312

Sample 24576 / 2 = 12288, and adding the ramp step of 3 gets to the next sample received of 12291 (where 24579 was expected).

Failure at sample rate 48000
Channel 0: discontinuity (samples 18432, 6147 do not differ by 3 but by -12285) (sample 11118)
Channel 0: discontinuity offset 0: 6147 6150 6153 6156 6159 6162 6165 6168

Sample 18432 / 3 = 6144, and plus 3 gives the next sample received of 6147 (where 18435 was expected).

xross added a commit that referenced this issue Jul 20, 2023
loopback testing change to work around #120
@danielpieczko
Copy link
Contributor Author

I retried this with the latest ASIO4ALL release v2.16 - the behaviour is unchanged from v2.15.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release notes Item should be listed in the release notes
Projects
None yet
Development

No branches or pull requests

2 participants