ALSA PCM DOP Mode - DAC Support

Leonard Bocock <[email protected]> Thu, 30 Mar 2023 09:18:22 +1100
Newsgroups gmane.linux.alsa.user
Message-ID <[email protected]>
--===============1881678166544371589==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_4C7F7AA3-91CC-4E86-992C-4A295BA9AB93"


--Apple-Mail=_4C7F7AA3-91CC-4E86-992C-4A295BA9AB93
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I'm developing an ALSA based audio application.

The DSD audio file under test is fs64 DSD format 2 channel.

The file plays well under ALSA using my native DSD frame packer. It =
plays well using my DSD to PCM decoder and frame packer.

It is not playing using my DOP frame packer.

I'm reasonably confident I have ALSA format set up correctly.....
- The ALSA format is set to S32_LE as the DAC supports this.
- The ALSA sample rate set in for FS64 which should be 176k

cat /proc/asound/DX1/pcm0p/sub0/hw_params during a play:

access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 22050
buffer_size: 88200

The 32 bit frames written to snd_pcm_writei() are packed as per DOP =
specification, so the buffer looks like this:

MSB                    LSB
0x5  0xd3  0x2c 0x0=20
0x5  0xd3  0x2c  0x0=09
0xfa 0xd2  0xd2  0x0
0xfa 0xd2  0xd2  0x0
0x5  0xd2  0xd2  0x0
0x5  0xd2 0xd2  0x0

There are no overflow or ALSA play errors; however with play all I get =
is a high pitched note to start, and then noise. I'm stumped.

The DAC is a Topping DX1 which has an XMOS USB interface and an AK4493S =
chip. I've also tried my Accuphase DAC-60 with the same result.

Documentation on this seems sparse.

- How can test if ALSA / Linux is putting the DAC into DOP mode?
- How can I determine if the DAC or USB interface is supported by Debian =
(latest version) and controlling the DAC correctly?

Is there anything obvious I am missing here?

Thanks,



--Apple-Mail=_4C7F7AA3-91CC-4E86-992C-4A295BA9AB93
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;"><div =
dir=3D"auto" style=3D"overflow-wrap: break-word; -webkit-nbsp-mode: =
space; line-break: after-white-space;"><div><p style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 1rem; white-space: pre-wrap; =
caret-color: rgb(33, 37, 41); color: rgb(33, 37, 41); font-family: =
-apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, =
&quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, =
&quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe =
UI Symbol&quot;, &quot;Noto Color Emoji&quot;; font-size: 14px;">I'm =
developing an ALSA based audio application.</p><p style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 1rem; white-space: pre-wrap; =
caret-color: rgb(33, 37, 41); color: rgb(33, 37, 41); font-family: =
-apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, =
&quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, =
&quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe =
UI Symbol&quot;, &quot;Noto Color Emoji&quot;; font-size: 14px;">The DSD =
audio file under test is fs64 DSD format 2 channel.</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">The file plays well under ALSA using my native DSD =
frame packer. It plays well using my DSD to PCM decoder and frame =
packer.</p><p style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 1rem; white-space: pre-wrap; caret-color: rgb(33, 37, =
41); color: rgb(33, 37, 41); font-family: -apple-system, =
BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, =
&quot;Noto Color Emoji&quot;; font-size: 14px;">It is not playing using =
my DOP frame packer.</p><p style=3D"box-sizing: border-box; margin-top: =
0px; margin-bottom: 1rem; white-space: pre-wrap; caret-color: rgb(33, =
37, 41); color: rgb(33, 37, 41); font-family: -apple-system, =
BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, =
&quot;Noto Color Emoji&quot;; font-size: 14px;">I'm reasonably confident =
I have ALSA format set up correctly.....
- The ALSA format is set to S32_LE as the DAC supports this.
- The ALSA sample rate set in for FS64 which should be 176k</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">cat /proc/asound/DX1/pcm0p/sub0/hw_params during a =
play:</p><p style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 1rem; white-space: pre-wrap; caret-color: rgb(33, 37, =
41); color: rgb(33, 37, 41); font-family: -apple-system, =
BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, =
&quot;Noto Color Emoji&quot;; font-size: 14px;">access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 22050
buffer_size: 88200</p><p style=3D"box-sizing: border-box; margin-top: =
0px; margin-bottom: 1rem; white-space: pre-wrap; caret-color: rgb(33, =
37, 41); color: rgb(33, 37, 41); font-family: -apple-system, =
BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, =
&quot;Noto Color Emoji&quot;; font-size: 14px;">The 32 bit frames =
written to snd_pcm_writei() are packed as per DOP specification, so the =
buffer looks like this:</p><p style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 1rem; white-space: pre-wrap; =
caret-color: rgb(33, 37, 41); color: rgb(33, 37, 41); font-family: =
-apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, =
&quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, =
&quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe =
UI Symbol&quot;, &quot;Noto Color Emoji&quot;; font-size: 14px;">MSB     =
               LSB
0x5  0xd3  0x2c 0x0=20
0x5  0xd3  0x2c  0x0=09
0xfa 0xd2  0xd2  0x0
0xfa 0xd2  0xd2  0x0
0x5  0xd2  0xd2  0x0
0x5  0xd2 0xd2  0x0</p><p style=3D"box-sizing: border-box; margin-top: =
0px; margin-bottom: 1rem; white-space: pre-wrap; caret-color: rgb(33, =
37, 41); color: rgb(33, 37, 41); font-family: -apple-system, =
BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, =
&quot;Noto Color Emoji&quot;; font-size: 14px;">There are no overflow or =
ALSA play errors; however with play all I get is a high pitched note to =
start, and then noise. I'm stumped.</p><p style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 1rem; white-space: pre-wrap; =
caret-color: rgb(33, 37, 41); color: rgb(33, 37, 41); font-family: =
-apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, =
&quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, =
&quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe =
UI Symbol&quot;, &quot;Noto Color Emoji&quot;; font-size: 14px;">The DAC =
is a Topping DX1 which has an XMOS USB interface and an AK4493S chip. =
I've also tried my Accuphase DAC-60 with the same result.</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">Documentation on this seems sparse.</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">- How can test if ALSA / Linux is putting the DAC into =
DOP mode?
- How can I determine if the DAC or USB interface is supported by Debian =
(latest version) and controlling the DAC correctly?</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">Is there anything obvious I am missing here?</p><p =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; =
white-space: pre-wrap; caret-color: rgb(33, 37, 41); color: rgb(33, 37, =
41); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto =
Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI =
Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;; =
font-size: 14px;">Thanks,</p></div>
<br></div></body></html>=

--Apple-Mail=_4C7F7AA3-91CC-4E86-992C-4A295BA9AB93--


--===============1881678166544371589==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============1881678166544371589==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user

--===============1881678166544371589==--