[Bug 268136] [snd_uaudio] Distorted audio from MOTU M4 USB interface

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 14 Dec 2022 07:39:53 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268136

--- Comment #20 from mburetorp <markus.buretorp@gmail.com> ---
(In reply to Florian Walpen from comment #19)

I think you might be right about recording channels. Pressing record in
Audacity also fixes the distorted sound similar to Pulseaudio. Here is sndstat
again before and after pressing record in Audacity.

before (distorted):
pcm4: <USB audio> at ? kld snd_uaudio (1p:2v/1r:1v) default
        snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
        [pcm4:play:dsp4.p0]: spd 48000, fmt 0x00200010/0x00401000, flags
0x00002108, 0x00000046
        interrupts 377, underruns 0, feed 752, ready 0
[b:12288/6144/2|bs:4096/2048/2]
        channel flags=0x2108<TRIGGERED,BUSY,HAS_VCHAN>
        {userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->
0x00201000) -> feeder_matrix(2.0 -> 4.0) -> {hardware}
        pcm4:play:dsp4.p0[pcm4:virtual:dsp4.vp0]: spd 48000, fmt 0x00200010,
flags 0x1000114c, 0x00000021, pid 1784 (firefox)
        interrupts 0, underruns 0, feed 752, ready 12368
[b:0/0/0|bs:16384/8192/2]
        channel flags=0x1000114c<RUNNING,TRIGGERED,NBIO,BUSY,HAS_SIZE,VIRTUAL>
        {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) ->
{hardware}
        pcm4:play:dsp4.p0[pcm4:virtual:dsp4.vp1]: spd 384000/48000, fmt
0x00100010/0x00200010, flags 0x10000000, 0x00000069
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:32768/4096/8]
        channel flags=0x10000000<VIRTUAL>
        {userland} -> feeder_root(0x00100010) -> feeder_rate(0x00100010 q:1
384000 -> 48000) -> feeder_matrix(1.0 -> 2.0) -> feeder_volume(0x00200010) ->
{hardware}
        [pcm4:record:dsp4.r0]: spd 48000, fmt 0x00200010/0x00401000, flags
0x00002100, 0x00000047
        interrupts 553, overruns 0, feed 3306, hfree 12288, sfree 4096
[b:12288/6144/2|bs:4096/2048/2]
        channel flags=0x2100<BUSY,HAS_VCHAN>
        {hardware} -> feeder_root(0x00401000) -> feeder_format(0x00401000 ->
0x00400010) -> feeder_matrix(4.0 -> 2.0) -> feeder_mixer(0x00200010) ->
{userland}
        pcm4:record:dsp4.r0[pcm4:virtual:dsp4.vr0]: spd 44100/48000, fmt
0x00200010, flags 0x10000000, 0x00000029
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 32768
[b:0/0/0|bs:32768/256/128]
        channel flags=0x10000000<VIRTUAL>
        {hardware} -> feeder_root(0x00200010) -> feeder_rate(0x00200010 q:1
48000 -> 44100) -> feeder_volume(0x00200010) -> {userland}


after (clean):
pcm4: <USB audio> at ? kld snd_uaudio (1p:2v/1r:1v) default
        snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
        [pcm4:play:dsp4.p0]: spd 48000, fmt 0x00200010/0x00401000, flags
0x00002108, 0x00000046
        interrupts 1299, underruns 0, feed 2596, ready 0
[b:12288/6144/2|bs:4096/2048/2]
        channel flags=0x2108<TRIGGERED,BUSY,HAS_VCHAN>
        {userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->
0x00201000) -> feeder_matrix(2.0 -> 4.0) -> {hardware}
        pcm4:play:dsp4.p0[pcm4:virtual:dsp4.vp0]: spd 48000, fmt 0x00200010,
flags 0x1000114c, 0x00000021, pid 1784 (firefox)
        interrupts 0, underruns 0, feed 2596, ready 13472
[b:0/0/0|bs:16384/8192/2]
        channel flags=0x1000114c<RUNNING,TRIGGERED,NBIO,BUSY,HAS_SIZE,VIRTUAL>
        {userland} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) ->
{hardware}
        pcm4:play:dsp4.p0[pcm4:virtual:dsp4.vp1]: spd 384000/48000, fmt
0x00100010/0x00200010, flags 0x10000000, 0x00000069
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:32768/4096/8]
        channel flags=0x10000000<VIRTUAL>
        {userland} -> feeder_root(0x00100010) -> feeder_rate(0x00100010 q:1
384000 -> 48000) -> feeder_matrix(1.0 -> 2.0) -> feeder_volume(0x00200010) ->
{hardware}
        [pcm4:record:dsp4.r0]: spd 48000, fmt 0x00200010/0x00401000, flags
0x00002108, 0x00000047
        interrupts 556, overruns 0, feed 3324, hfree 12288, sfree 4095
[b:12288/6144/2|bs:4096/2048/2]
        channel flags=0x2108<TRIGGERED,BUSY,HAS_VCHAN>
        {hardware} -> feeder_root(0x00401000) -> feeder_format(0x00401000 ->
0x00400010) -> feeder_matrix(4.0 -> 2.0) -> feeder_mixer(0x00200010) ->
{userland}
        pcm4:record:dsp4.r0[pcm4:virtual:dsp4.vr0]: spd 44100/48000, fmt
0x00200010, flags 0x1000114c, 0x00000029, pid 1800 (audacity)
        interrupts 0, overruns 0, feed 1720, hfree 0, sfree 26428
[b:0/0/0|bs:32768/8192/4]
        channel flags=0x1000114c<RUNNING,TRIGGERED,NBIO,BUSY,HAS_SIZE,VIRTUAL>
        {hardware} -> feeder_root(0x00200010) -> feeder_rate(0x00200010 q:1
48000 -> 44100) -> feeder_volume(0x00200010) -> {userland}

I haven't tested virtual_oss -P yet but I suspect it will be the same.

-- 
You are receiving this mail because:
You are the assignee for the bug.