HDMI vs SPDIF

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
Just a note - did I understand correctly that you had a native SPDIF output available? If so, then the HDMI->SPDIF converter would be superfluous.

That's correct. Well I just wanted to mitigate the fact REW can't address SPDIF outputs directly as John said is a previous message. https://www.avnirvana.com/threads/hdmi-vs-spdif.14008/post-105956
He does access HDMI devices though - https://www.minidsp.com/applications/acoustic-measurements/umik-1-hdmi-on-mac

Well, as nobody cared to answer my interrogations about it, I had to test it.
It's the norm. Whenever you ask 2 questions in the same message, one gets ignored. I know that, but nevertheless I still do it.

That's a very unusual form of alsa device configuration, basically writing the config code into the device string. I would prefer to create .asoundrc with a52 device, as was linked in the discussions above. The best way is checking your PCM device params with aplay --dump-hw-params

Code:
$ aplay --dump-hw-params -D  iec958:CARD=Generic,DEV=0  /dev/zero
Lecture données brutes '/dev/zero' : Unsigned 8 bit, Fréquence 8000 Hz, Mono
Params HW pour le périphérique "iec958:CARD=Generic,DEV=0" :
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S16_LE S32_LE
SUBFORMAT:  STD MSBITS_MAX
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 64]
CHANNELS: 2
RATE: [32000 192000]
PERIOD_TIME: (83 16384000]
PERIOD_SIZE: [16 524288]
PERIOD_BYTES: [128 2097152]
PERIODS: [2 32]
BUFFER_TIME: (166 32768000]
BUFFER_SIZE: [32 1048576]
BUFFER_BYTES: [128 4194304]
TICK_TIME: ALL
--------------------
aplay: set_params:1387: Ce format d'échantillonage n'est pas disponible
Available formats:
- S16_LE
- S32_LE

$ aplay --dump-hw-params -D  plug:mya52  /dev/zero
Lecture données brutes '/dev/zero' : Unsigned 8 bit, Fréquence 8000 Hz, Mono
Params HW pour le périphérique "plug:mya52" :
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE MU_LAW A_LAW IMA_ADPCM S20_LE S20_BE U20_LE U20_BE S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: 16000
PERIOD_SIZE: [64 68719477)
PERIOD_BYTES: [32 4294967295)
PERIODS: (0 34359739)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [128 2199023255]
BUFFER_BYTES: [64 4294967295]
TICK_TIME: ALL

$ aplay --dump-hw-params -D hdmi:CARD=HDMI,DEV=0  /dev/zero
Lecture données brutes '/dev/zero' : Unsigned 8 bit, Fréquence 8000 Hz, Mono
Params HW pour le périphérique "hdmi:CARD=HDMI,DEV=0" :
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S16_LE S32_LE
SUBFORMAT:  STD MSBITS_MAX
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 256]
CHANNELS: [2 8]
RATE: [32000 192000]
PERIOD_TIME: (20 16384000]
PERIOD_SIZE: [4 524288]
PERIOD_BYTES: [128 2097152]
PERIODS: [2 32]
BUFFER_TIME: (41 32768000]
BUFFER_SIZE: [8 1048576]
BUFFER_BYTES: [128 4194304]
TICK_TIME: ALL
--------------------
aplay: set_params:1387: Ce format d'échantillonage n'est pas disponible
Available formats:
- S16_LE
- S32_LE

The problem with a52 devices is they are not listed with aplay -L, they are though with alsactl dump-cfg

Code:
pcm.a52 {
    @args.0 CARD
    @args.1 SLAVE
    @args.2 RATE
    @args.3 BITRATE
    @args.4 CHANNELS
    @args.CARD {
        type integer
        default {
            @func refer
            name 'defaults.pcm.card'
        }
    }
    @args.SLAVE {
        type string
    }
    @args.RATE {
        type integer
        default 48000
    }
    @args.BITRATE {
        type integer
        default 448
    }
    @args.CHANNELS {
        type string
        default 6
    }
    type a52
    card $CARD
    slavepcm $SLAVE
    rate $RATE
    bitrate $BITRATE
    channels $CHANNELS
    hint {
        show {
            @func refer
            name 'defaults.namehint.basic'
        }
        description 'Plugin to convert multichannel stream to A52 (AC3) bitstream'
    }
}

I have this /etc/alsa/conf.d/61-a52.conf file I created

Code:
pcm.!default {
    type a52
    slave.pcm "hw:1,1"
}

And I had those misc configs inspired ny your links in my /etc/asound.conf. All commented out because all failed

Code:
#pcm.a52 {
#  @args [CARD]
#  @args.CARD {
#    type integer
#  }
#  type rate
#  slavepcm "iec958:CARD=Generic,DEV=0"
#  slave {
#    pcm {
#      type a52
#      bitrate 448
#      channels 6
#      card $CARD
#    }
#  rate 48000
#  }
#}

#pcm.a52 {
#  slavepcm "CARD=1,DEV=1"
#  slavepcm "hw:1,1"
#}

#pcm.!myac3 {
#     type a52
#     card 1
#     device 1
#     rate 44100
#     channels 6
#     bitrate 256
#     format S16_BE
#}

#pcm.mypcm {
#    card 1
#}
 
#pcm.myout {
    #type a52
    #slavepcm "mypcm"
#}

Finally, IIRC, REW reads alsaconfig as shown in alsamixer and there is no a52 device in there therefore no option in REW. In fact no alsa is working at all ion REW right now. Only PA/PW.

Capture d’écran du 2024-08-24 08-33-37.png Capture d’écran du 2024-08-24 08-33-02.png Capture d’écran du 2024-08-24 08-32-31.png


Thanks for your reply!

UPDATE

I've updated my /etc/alsa/conf.d/61-a52.conf so I know that it's now working so "speaker-test -D plug:mya52 -c6 -t wav -l 2" now works! But REW still can't figure out anything of it.

Code:
pcm.mya52 {
    @args [ CARD SLAVE RATE BITRATE CHANNELS ]
    @args.CARD {
        type integer
        default {
            @func refer
            name defaults.pcm.card
        }
    }
    @args.SLAVE {
        type string
    }
    @args.RATE {
        type integer
        default 48000
    }
    @args.BITRATE {
        type integer
        default 448
    }
    @args.CHANNELS {
        type string
        default 6
    }
    type a52
    slavepcm "iec958:CARD=Generic,DEV=0" #Adjust this so it picks the correct PCM as listed in aplay -L
    rate $RATE
    bitrate $BITRATE
    channels $CHANNELS
    hint {
        show {
            @func refer
            name defaults.namehint.basic
        }
                description "Plugin to convert multichannel stream to A52 (AC3) bitstream"
    }
}
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
Well I just wanted to mitigate the fact REW can't address SPDIF outputs directly as John said is a previous message. https://www.avnirvana.com/threads/hdmi-vs-spdif.14008/post-105956
He does access HDMI devices though - https://www.minidsp.com/applications/acoustic-measurements/umik-1-hdmi-on-mac
REW does not care what device it accesses. Both HDMI and SPDIF are just regular alsa devices. It's just what device you choose, how you configure it, and of course the device must not be blocked by pulseaudio/pipewire. That's why it's important to disable a device planned for direct alsa access in PA/PW, that should always be the very first step.

Whenever you ask 2 questions in the same message, one gets ignored. I know that, but nevertheless I still do it.
This discussion is not easy, non-related issues are being repeatedly mixed. E.g. please no testing this in PA/PW as it's completely unrelated to REW output through alsa.

$ aplay --dump-hw-params -D iec958:CARD=Generic,DEV=0 /dev/zero
That hw dump looks correct

$ aplay --dump-hw-params -D plug:mya52 /dev/zero
Please do not use the plug wrapper for these tests as it completely obscures the information - plug supports/will report anything, no reason to dump hw params of plug as they are always the same - all configuration ranges available.

The problem with a52 devices is they are not listed with aplay -L, they are though with alsactl dump-cfg
Then likely alsactl dump-cfg and aplay -L get their list in a different way. REW uses the aplay -L way for PCM devices. You need your configured a52 device (mya52) get listed in aplay -L. I would suggest to use the ~/.asoundrc file instead of the global definitions in /etc/alsa/conf.d . I have never used the conf.d dir. That's the next step, without having the device listed in aplay -L REW will not see it either. You need REW to offer device PCM:mya52
I've updated my /etc/alsa/conf.d/61-a52.conf so I know that it's now working so "speaker-test -D plug:mya52 -c6 -t wav -l 2" now works!
Again, please only test without the plug wrapper. REW will not insert the plug wrapper, adding it to the test makes the test different from the REW case.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
I asked an AI as I wasn't able to find anything on the internet as it is nowadays.

Code:
The aplay -L command not listing A52 outputs is a known issue, and it's not just your memory playing tricks on you.

The reason for this change is that the ALSA (Advanced Linux Sound Architecture) developers removed the A52 output from the list of available devices in version 1.2.0, released in 2019.

The A52 output was previously listed as a "virtual" device, which allowed applications to use it as a fallback when no other device was available. However, this approach had some limitations and issues, such as:
A52 is not a real hardware device, but rather a software-based AC-3 (Dolby Digital 5.1) encoder.

The A52 output was not properly supported by all ALSA drivers and plugins.

It caused confusion among users and developers, as it was not clear when and how the A52 output would be used.
Please do not use the plug wrapper for these tests as it completely obscures the information - plug supports/will report anything, no reason to dump hw params of plug as they are always the same - all configuration ranges available.

Then likely alsactl dump-cfg and aplay -L get their list in a different way. REW uses the aplay -L way for PCM devices. You need your configured a52 device (mya52) get listed in aplay -L. I would suggest to use the ~/.asoundrc file instead of the global definitions in /etc/alsa/conf.d . I have never used the conf.d dir. That's the next step, without having the device listed in aplay -L REW will not see it either. You need REW to offer device PCM:mya52

Again, please only test without the plug wrapper. REW will not insert the plug wrapper, adding it to the test makes the test different from the REW case.

After several hours of tests and reboots, I wasn't able to get a52 to work without the plug wrapper. I did not see any working config either on the internet. All my tests failed. It's a plugin by default. It's included in alsa-plugins-a52.x86_64

If REW does use 'aplay -L' maybe a workaround would be to use a wrapper to append a52 to the actual 'aplay -L' output... However I would not know what precisely to add to achieve that.
 

phofman

Member
Joined
Jun 26, 2019
Posts
180
I asked an AI as I wasn't able to find anything on the internet as it is nowadays.
That response is a complete nonsense, like majority of AI-produced content. IME AI is a very bad advisor in technical issues, it constantly hallucinates and makes stuff up. A PCM device using a52 plugin is normally listed in aplay -L output by my aplay version 1.2.2.

I did some tests with the a52 plugin. It does show up in REW. But it cannot be selected because it requires non-interleaved access format, while the alsa-PCM plugin of REW requires interleaved access only. Therefore it does not report any usable format in REW. When the a52 plugin is wrapped with plug or route plugins, they do the conversion interleaved -> non-interleaved access automatically and do report supported formats in REW.

snippet from my .asoundrc:

Code:
pcm.a52 {
        type a52
        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
}

pcm.routea52 {
  type route
  slave {
    pcm "a52"
    channels 6
  }
    ttable.0.0 1
    ttable.1.1 1
    ttable.2.2 1
    ttable.3.3 1
    ttable.4.4 1
    ttable.5.5 1
}

pcm.pluga52 {
  type plug
  slave {
    pcm "a52"
  }
}

1724608710201.png


However, there is an issue I will sort out with John - REW tries to open the device at maximum channels it gets from the alsa-pcm adaptor (which is 10k for the plug plugin and 699k for the route plugin). Attached is a hacked .so library which limits the channels to 8. Just unzip the attached so file and rewrite the existing libcsjsound_amd64.so file in your REW installation dir with this file.

With this change REW seems to run OK. Unfortunately I have no AVR to check the generated AC3 through my SPDIF output.
 

Attachments

  • libcsjsound_amd64.so.zip
    15.2 KB · Views: 3
Last edited:

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
Hi,

Thanks for your reply.

I agree with your explanation on IA hallucinating. I've experienced it most of the time.

Well, I replaced my entry with your snippet. All 3 work as expected with speaker test, however still nothing on the 'aplay -L output', therefore nothing in REW

Code:
10002  speaker-test -D plug:routea52 -c6 -t wav -l 2
10003  speaker-test -D plug:a52 -c6 -t wav -l 2
10004  speaker-test -D plug:pluga52 -c6 -t wav -l 2

alsactl dump-cfg:

Code:
...
pcm.a52 {
    @args.0 CARD
    @args.1 SLAVE
    @args.2 RATE
    @args.3 BITRATE
    @args.4 CHANNELS
    @args.CARD {
        type integer
        default {
            @func refer
            name 'defaults.pcm.card'
        }
    }
    @args.SLAVE {
        type string
    }
    @args.RATE {
        type integer
        default 48000
    }
    @args.BITRATE {
        type integer
        default 448
    }
    @args.CHANNELS {
        type string
        default 6
    }
    type a52
    card $CARD
    slavepcm 'iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }'
    rate $RATE
    bitrate $BITRATE
    channels $CHANNELS
    hint {
        show {
            @func refer
            name 'defaults.namehint.basic'
        }
        description 'Plugin to convert multichannel stream to A52 (AC3) bitstream'
    }
}
pcm.default {
    type hw
    card 1
}
pcm.routea52 {
    type route
    slave {
        pcm a52
        channels 6
    }
    ttable.0.0 1
    ttable.1.1 1
    ttable.2.2 1
    ttable.3.3 1
    ttable.4.4 1
    ttable.5.5 1
}
pcm.pluga52 {
    type plug
    slave {
        pcm a52
    }
}

...

BTW, 1.2.2 looks pretty old. I run 1.2.8 (2022) on Debian 12 and Debian is not particularly known to have recent packages; On Fedora, I run 1.2.12 and none fo them display any a52 entry with 'aplay -L' although I'm pretty sure I remember seeing it in a previous version. In fact, I made the setup myself to add pcm.a52 and pcm.dca, but that was years ago.

And there is this link where it's mentioned twice that it is expected for a52 not to be listed by 'aplay -L' for 1.2.6 - https://bbs.archlinux.org/viewtopic.php?id=251467&p=4

UPDATE

Hardcoded everything as default. Now 'aplay -L' list them; REW doesn't see any though.

Code:
pcm.a52 {
    @args.0 CARD
    @args.1 SLAVE
    @args.2 RATE
    @args.3 BITRATE
    @args.4 CHANNELS
    @args.CARD {
        type string
        default 'Generic,DEV=0'
    }
    @args.SLAVE {
        type string
        default 'iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }'
    }
    @args.RATE {
        type integer
        default 48000
    }
    @args.BITRATE {
        type integer
        default 448
    }
    @args.CHANNELS {
        type string
        default 6
    }
    type a52
    slavepcm $SLAVE
    rate $RATE
    bitrate $BITRATE
    channels $CHANNELS
    hint {
        show {
            @func refer
            name 'defaults.namehint.basic'
        }
        description 'Plugin to convert multichannel stream to A52 (AC3) bitstream'
        register yes
    }
}
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
Did you use the simple form I posted, and placed it into ~/.asoundrc ? Your complex form with arguments may have some issues, this form is used for general alsa configs in /usr/share/alsa . Start with the simple, you can always make it complex later when the simple solution works OK.

That archlinux discussion was not about listing a device which internally uses the a52 plugin, but about general config which offers a hint a52 which wraps all respective devices with the a52 plugin. Just like the automatic hints hdmi:xxx, surround5.1:xxx etc. Since no a52 hint file is present, aplay -L does not list that hint.

But we are talking about a PCM device, specified in .asoundrc, which internally uses the a52 plugin. aplay -L would have to traverse the device plugin chain (like e.g. aplay --verbose does when listing the pluging chain operations), find there is an a52 somewhere deep inside, and ignore such device. It does nothing like that, of course, no reason for that.

Just clean all your added config into the general files, place those few lines into your .asoundrc, check with aplay -L (PCM-configured devices are listed at the beginning, before all the hints), restart REW, and you should see the added PCM devices. Of course it requires that the underlying physical device is disabled in pulseaudio/pipewire first, otherwise REW may not be able to gain access to the device when opening the device at initial enumeration. That's the standard procedure for all devices to be accessed by alsa directly.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
Did you use the simple form I posted, and placed it into ~/.asoundrc ? Your complex form with arguments may have some issues, this form is used for general alsa configs in /usr/share/alsa . Start with the simple, you can always make it complex later when the simple solution works OK.
Yes, I did, please reread my last post from the top to "UPDATE"

That archlinux discussion was not about listing a device which internally uses the a52 plugin, but about general config which offers a hint a52 which wraps all respective devices with the a52 plugin. Just like the automatic hints hdmi:xxx, surround5.1:xxx etc. Since no a52 hint file is present, aplay -L does not list that hint.

But we are talking about a PCM device, specified in .asoundrc, which internally uses the a52 plugin. aplay -L would have to traverse the device plugin chain (like e.g. aplay --verbose does when listing the pluging chain operations), find there is an a52 somewhere deep inside, and ignore such device. It does nothing like that, of course, no reason for that.
It's Fedora system. No .asoundrc file read or has no priority. Config goes into /etc/asound.conf and

Code:
$ ll /etc/alsa/
total 8
drwxr-xr-x 1 root root   70 10 jun 20:00 .
drwxr-xr-x 1 root root 6296 26 aoû 09:01 ..
-rw-r--r-- 1 root root  203 10 jun 20:00 alsactl.conf
drwxr-xr-x 1 root root  300 25 aoû 22:05 conf.d
-rw-r--r-- 1 root root   54 13 avr  2023 state-daemon.conf
$ ll /etc/alsa/conf.d/
drwxr-xr-x 1 root root  300 25 aoû 22:05 .
drwxr-xr-x 1 root root   70 10 jun 20:00 ..
lrwxrwxrwx 1 root root   39 10 jun 20:00 50-oss.conf -> /usr/share/alsa/alsa.conf.d/50-oss.conf
-rw-r--r-- 1 root root 1842 17 jun 20:00 50-pipewire.conf
lrwxrwxrwx 1 root root   46 10 jun 20:00 50-pulseaudio.conf -> /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf
lrwxrwxrwx 1 root root   47 10 jun 20:00 60-a52-encoder.conf -> /usr/share/alsa/alsa.conf.d/60-a52-encoder.conf
-rw-r--r-- 1 root root  717 25 aoû 22:05 61-a52.conf
-rw-r--r-- 1 root root  226 17 jun 20:00 99-pipewire-default.conf
-rw-r--r-- 1 root root  201 10 jun 05:18 99-pulseaudio-default.conf
Yes they are listed. See my system after hardcoding:

Code:
$ !apl
aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
a52
    Plugin to convert multichannel stream to A52 (AC3) bitstream
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
a52:CARD=HDMI
    HDA ATI HDMI
    Plugin to convert multichannel stream to A52 (AC3) bitstream
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output
a52:CARD=Generic
    HD-Audio Generic
    Plugin to convert multichannel stream to A52 (AC3) bitstream

Just clean all your added config into the general files, place those few lines into your .asoundrc, check with aplay -L (PCM-configured devices are listed at the beginning, before all the hints), restart REW, and you should see the added PCM devices.

Already did that multiple times changing one parameter at a time, which requires reboot every time. I don't have a clue how to restart alsa under Fedora. Nothing worked. Nothing at all. Working on that almost non stop for some 20 hours. My conclusion is that your system and mine are way too different. Best case: I can send sound to the plug:a52 device. Worst case: alsa not starting.

And still nothing listed in alplay -L in each and every test.

Code:
 9161  history|grep alsa
 9162  alsa-info.sh --no-upload
 9163  less /tmp/alsa-info.txt.fDTY62cDei
 9164  cat /etc/asound.conf
 9193  cat bin/kodi-passthrough.sh
 9194  dnf list installed *pulseau*
 9195  LANG=C pactl info | grep '^Server Name'
 9196  arecord -l
 9219  cat  /etc/asound.conf
 9220  pactl list modules short | grep dmix.
 9221  pactl list modules short | grep dmix
 9222  pactl list modules short
 9231  flatpak logs kodi
 9232  journalctl -b -u pipewire
 9234  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio
 9237  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9238  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b1
 9239  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b 1
 9240  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -1
 9241  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9242  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -2
 9243  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -3
 9244  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -4
 9245  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -5
 9246  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -6
 9247  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -7
 9248  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -8
 9249  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9251  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -1
 9252  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9254  pw-cli info 53
 9255  pw-cli info 52
 9256  pw-cli info 51
 9258  pavucontrol
 9259  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9260  pavucontrol
 9261  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9262  ll /boot/
 9263  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9265  ll  /usr/share/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf
 9266  less  /usr/share/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf
 9270  systemctl --user --no-pager status wireplumber pipewire* | sed "s/$(hostname)/ahost/"
 9271  journalctl -b --no-hostname --user -u wireplumber -u pipe\*
 9279  sudo mc /dev/snd
 9280  aplay -l
 9281  aplay -L
 9292  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav
 9293  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS-HD MA 5.1.mkv
 9294  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS-HD\ MA\ 5.1.mkv
 9295  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9296  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/FLAC\ 5.1.flac
 9297  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/HE-AAC-test.mp4
 9298  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/Dolby\ Atmos\ TrueHD,\ E-AC-3\ 5.1.2.mkv
 9299  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS-HD\ MA\ 5.1.mkv -ao alsa
 9300  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\  5.1.wav
 9301  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav
 9302  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav -ao alsa
 9303  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav -ao pipewire
 9304  mplayer -ao help
 9305  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav -ao pcm
 9313  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav -ao alsa:device=hw=0.1
 9315  mplayer  -afm hwac3 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav -ao alsa:device=hw=1.1
 9319  cat .mplayer/config
 9321  geany .mplayer/config &
 9323  mplayer Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav
 9330  mplayer ~/Videos/Stereo/*.mp3
 9331  cvlc ~/Videos/Stereo/*.mp3
 9335  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9336  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:hw:CARD=Generic,DEV=0
 9337  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:hw:CARD=Generic,DEV=1
 9338  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:iec958:CARD=Generic,DEV=0
 9339  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:iec958:CARD=Generic,DEV=1
 9340  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device:iec958:CARD=Generic,DEV=1
 9341  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device:iec958:CARD=Generic,DEV=0
 9342  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9343  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=1
 9344  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=a52
 9345  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:CARD=Generic,DEV=1
 9346  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:1,1,AES0=6
 9347  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:1.1,AES0=6
 9348  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:1.1
 9349  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9350  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9351  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9352  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:1,1,AES0=6
 9353  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9354  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9355  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:CARD=Generic,DEV=1
 9356  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9357  aplay -l
 9358  aplay -L
 9359  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9360  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9361  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9362  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9363  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9364  mpv -v Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9365  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa=iec958:CARD=Generic,DEV=0
 9366  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9367  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9368  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9369  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0 -af format=s16le
 9370  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9371  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic.DEV=0
 9372  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9373  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic.DEV=0
 9374  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=1
 9375  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic.DEV=1
 9376  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9377  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic.DEV=1
 9378  mplayer -ao help
 9379  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958=CARD=Generic.DEV=1
 9380  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958=CARD=Generic.DEV=0
 9381  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958=CARD=Generic.DEV:0
 9382  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=1
 9383  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=Generic,DEV=0
 9385  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9387  reboot
 9389  aplay -l
 9390  aplay -L
 9391  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9392  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9397  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b --no-hostname
 9398  cat .config/wireplumber/wireplumber.conf.d/51-alsa.conf
 9401  pacmd list-cards
 9402  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw:1.1
 9404  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=hw=1.1
 9405  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=1,DEV=1
 9406  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4 -ao alsa:device=iec958:CARD=1,DEV=0
 9407  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9408  mpv Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9409  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9410  aplay -l
 9411  aplay -L
 9412  mplayer Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9413  aplay -l
 9429  mpv /mnt/linux486/mp3/Genesis/Steve\ Hackett\ -\ Watcher\ of\ the\ Skies/Deja\ Vu.mp3
 9430  cvlc /mnt/linux486/mp3/Genesis/Steve\ Hackett\ -\ Watcher\ of\ the\ Skies/Deja\ Vu.mp3
 9432  cvlc /mnt/linux486/shizuma/rewfiles/LogSwp_20_1000_-12_dBFS_48k_Float_LR.wav
 9434  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b --no-hostname
 9435  cp /mnt/linux486/shizuma/rewfiles/Meridian_21_aout_2.mdat rewfiles/stereo2.mdat
 9438  lsof /dev/snd/*
 9439  lsof | grep -E '(tda18271|cx23885|altera_ci|altera_stapl|m88ds3103|cx2341x|tveeprom|videobuf2_dvb|videobuf2_dma_sg|videobuf2_v4l2)'
 9440  mpg123 --list-modules
 9441  mpg123 --list-devices
 9446  aplay -l
 9447  aplay -L
 9456  mpv --audio-device=help
 9457  mpv -ao=help
 9458  ll /etc/wireplumber/wireplumber.conf.d/
 9459  ll /etc/wireplumber/
 9460  ll /etc/wireplumber/wireplumber.conf.d/
 9461  ll .config/wireplumber/wireplumber.conf.d/
 9462  geany .config/wireplumber/wireplumber.conf.d/51-alsa.conf
 9463  geany .config/wireplumber/wireplumber.conf.d/51-alsa-disable.conf
 9464  geany .config/wireplumber/wireplumber.conf.d/51-alsa-disable2.conf
 9465  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b --no-hostname
 9470  systemctl --user restart pipewire wireplumber
 9476  sudo alsactl dump-state
 9477  sudo alsactl dump-state|grep iec
 9478  sudo alsactl dump-state|grep a52
 9479  sudo alsactl dump-cfg
 9480  sudo alsactl dump-cfg|grep a52
 9484  aplay -l
 9485  aplay -L
 9486  sudo alsactl dump-cfg|grep a52
 9487  sudo alsactl dump-cfg
 9488  sudo ls
 9491  sudo rm /etc/alsa/conf.d/51-a52.conf
 9493  reboot
 9495  aplay -l
 9496  aplay -L
 9497  sudo alsactl dump-cfg
 9498  sudo geany &
 9499  reboot
 9501  aplay -l
 9502  aplay -L
 9503  sudo alsactl dump-cfg
 9505  aplay -l
 9506  reboot
 9508  aplay -l
 9509  aplay -L
 9510  sudo alsactl dump-cfg
 9513  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b --no-hostname
 9519  alsamixer
 9520  aplay -l
 9521  alsamixer
 9522  cat /proc/asound/cards
 9523  reboot
 9526  aplay -l
 9529  reboot
 9530  aplay -l
 9532  sudo geany &
 9533  reboot
 9534  alsamixer
 9535  aplay -l
 9536  aplay -L
 9537  cvlc /mnt/linux486/mp3/Genesis/Steve\ Hackett\ -\ Watcher\ of\ the\ Skies/Deja\ Vu.mp3
 9538  wpctl status
 9541  reboot
 9543  aplay -l
 9544  aplay -L
 9545  wpctl status
 9546  alsamixer
 9547  alsactl dump-state
 9548  sudo alsactl dump-cfg
 9549  aplay -l
 9550  aplay -L
 9552  wpctl status
 9555  less /etc/alsa/conf.d/60-a52-encoder.conf
 9556  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}"
 9557  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:0,'hw:1,1'\"}"
 9558  cat /etc/alsa/conf.d/60-a52-encoder.conf
 9559  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}"
 9564  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9565  speaker-test -Dplug:iec958 -c6
 9566  sudo alsactl dump-cfg
 9567  less /etc/alsa/conf.d/60-a52-encoder.conf
 9570  reboot
 9571  aplay -L
 9572  aplay -l
 9573  sudo alsactl dump-cfg
 9574  speaker-test -Dplug:myac3 -c6
 9575  speaker-test -Dplug:iec58 -c6
 9576  speaker-test -Dplug:default -c6
 9577  speaker-test -Dplug:myac3 -c 6
 9578  speaker-test -Dplug:a52 -c 6
 9579  speaker-test -Dplug:myac3 -c 6
 9580  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9581  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"myac3:1,'hw:1,1'\"}" -l 2
 9582  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"myac3,'hw:1,1'\"}" -l 2
 9583  speaker-test -d -b 2000000 -c 6 -D"plug:{myac3,'hw:1,1'}" -l 2
 9584  speaker-test -d -b 2000000 -c 6 -D"plug:{myac3}" -l 2
 9588  reboot
 9589  aplay -l
 9590  aplay -L
 9591  sudo ls
 9593  sudo alsactl dump-cfg
 9594  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9596  speaker-test -Dplug:surround51 -c6
 9597  speaker-test -Dplug:myout -c6
 9598  speaker-test -Dplug:mypcm -c6
 9600  speaker-test -Dmypcm -c6
 9601  speaker-test -Dmyout -c6
 9602  speaker-test -D myout -c6
 9604  aplay -L
 9606  speaker-test -D myout:Generic -c6
 9607  speaker-test -D surround51:Generic -c6
 9608  speaker-test -D iec958:Generic -c6
 9609  speaker-test -D front:Generic -c6
 9610  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9611  reboot
 9614  aplay -l
 9615  aplay -L
 9616  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9617  speaker-test -D sysdefault:Generic -c6
 9618  speaker-test -D surround51:Generic -c6
 9619  speaker-test -D myout:Generic -c6
 9620  speaker-test -D mypcm:Generic -c6
 9621  speaker-test -D a52:Generic -c6
 9622  sudo alsactl dump-cfg
 9623  speaker-test -D a52:Generic -c6
 9624  speaker-test -D a52:Generic -c6 -v
 9626  speaker-test -D a52:1 -c6 -v
 9627  speaker-test -D a52:1 -c6
 9628  speaker-test -D a52:0 -c6
 9630  speaker-test -Dplug:a52 -c6
 9631  speaker-test -Dplug:front -c6
 9632  speaker-test -Dplug:surround51 -c6
 9633  speaker-test -d -b 2000000 -c 6 -D"plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -l 2
 9634  pavucontrol
 9636  sudo alsactl dump-cfg
 9637  sudo ls
 9638  sudo geany &
 9643  mpg123 --list-devices
 9644  mpg123 --list-devices -o pulse
 9646  aplay -D a52:0
 9647  aplay -D a52:1
 9648  speaker-test -Da52:0 -c6
 9649  speaker-test -Da52:1 -c6
 9650  speaker-test -Da52:1,1 -c6
 9651  speaker-test -Da52:1 -c6
 9652  speaker-test -Da52:0 -c6
 9653  speaker-test -D plug:a52 -c6 -t waw
 9655  speaker-test -D plug:a52 -c6 -t wav -l 2
 9656  speaker-test -D "plug:{SLAVE=\"a52:1,'hw:1,1'\"}" -c6 -t wav -l 2
 9658  aplay -l
 9659  aplay -L
 9660  speaker-test -D plug:iec958 -c6 -t wav -l 2
 9663  speaker-test -D plug:iec958 -c6 -t wav -l 2 -v
 9664  aplay -L -v
 9665  aplay -l -v
 9670  reboot
 9671  aplay -l
 9672  aplay -L
 9673  speaker-test -D plug:iec958 -c6 -t wav -l 2 -v
 9674  speaker-test -D plug:iec958 -c6 -t wav -l 2
 9675  speaker-test -D plug:a52 -c6 -t wav -l 2
 9676  alsactl dump-state
 9677  sudo alsactl dump-state
 9678  sudo alsactl dump-cfg
 9679  alsamixer
 9680  aplay -L
 9683  reboot
 9684  aplay -L
 9685  alsamixer
 9686  aplay -l
 9687  alsactl dump-state
 9688  sudo alsactl dump-cfg
 9689  speaker-test -D plug:a52 -c6 -t wav -l 2
 9690  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9696  sudo dnf install edid-decode
 9697  edid-decode /sys/class/drm/card0/hw:1,1/edid
 9698  edid-decode /sys/class/drm/card1/hw:1,1/edid
 9699  ll sys/class/drm/card*
 9700  ll sys/class/drm/
 9701  xrandr --verbose | grep EDID
 9702  ll sys/class/drm/
 9703  ll /sys/class/drm/
 9704  ll /sys/class/drm/card0-HDMI-A-1
 9705  edid-decode /sys/class/drm/card0-HDMI-A-1/edid
 9706  edid-decode /sys/class/drm/card0/card0-HDMI-A-1/edid
 9707  cat /sys/class/drm/card0/card0-HDMI-A-1/edid
 9717  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9718  aplay -l
 9719  aplay -L
 9721  aplay -D iec958:CARD=Generic,DEV=0 Videos/Audio\ tests/Multichannel/AC3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.mp4
 9722  aplay -D iec958:CARD=Generic,DEV=0 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav
 9723  aplay -D plug:mya52 Videos/Audio\ tests/Multichannel/DTS\ 5.1.wav
 9725  mpg123 /mnt/linux486/mp3/Divers/Rene\ Liu\ -\ Hou\ Lai.mp3 /mnt/linux486/mp3/Nena/2020\ Licht/Zimmer.mp3
 9726  aplay --dump-hw-params -D  plug:mya52  /dev/zero
 9727  aplay --dump-hw-params -D  hw:1.1  /dev/zero
 9728  aplay --dump-hw-params -D  iec958  /dev/zero
 9729  aplay -L
 9730  aplay --dump-hw-params -D  iec958:CARD=Generic,DEV=0  /dev/zero
 9731  aplay --dump-hw-params -D  plug:mya52  /dev/zero
 9732  aplay -L
 9733  aplay --dump-hw-params -D hdmi:CARD=HDMI,DEV=0  /dev/zero
 9745  sudo  aplay --dump-hw-params
 9746  reboot
 9749  sudo alsactl dump-cfg
 9752  reboot
 9753  alsamixer
 9754  aplay -L
 9755  sudo alsactl dump-cfg
 9756  aplay -L
 9757  sudo alsactl load pcm.mya52
 9759  sudo geany &
 9760  reboot
 9761  aplay -L
 9762  sudo alsactl dump-cfg
 9763  aplay -v /usr/share/sounds/alsa/Front_Center.wav
 9764  cd /etc/alsa/
 9766  cd conf.d/
 9768  sudo mv 61-a52.conf 61-a52.conf.disabled
 9770  reboot
 9771  aplay -L
 9774  reboot
 9775  aplay -L
 9777  sudo alsactl dump-cfg
 9778  sudo geany &
 9779  sudo mc /etc/alsa/
 9780  aplay -L
 9782  aplay -v /usr/share/sounds/alsa/Front_Center.wav
 9783  sudo alsactl dump-cfg
 9785  speaker-test -D a52 -c6 -t wav -l 2
 9786  sudo geany &
 9787  reboot
 9788  speaker-test -D a52 -c6 -t wav -l 2
 9790  speaker-test -D a52:Generic -c6 -t wav -l 2
 9791  speaker-test -D a52:1 -c6 -t wav -l 2
 9792  sudo alsactl dump-cfg
 9793  sudo geany &
 9794  reboot
 9795  speaker-test -D a52:1 -c6 -t wav -l 2
 9796  speaker-test -D mypcm:1 -c6 -t wav -l 2
 9797  speaker-test -D mypcm -c6 -t wav -l 2
 9798  sudo alsactl dump-cfg
 9799  sudo mc /etc/alsa/
 9800  sudo geany &
 9801  reboot
 9802  sudo alsactl dump-cfg
 9803  speaker-test -D mya52 -c6 -t wav -l 2
 9804  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9806  aplay -L
 9807  alsactl dump-state
 9808  sudo alsactl dump-cfg
 9809  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9811  reboot
 9812  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9817  reboot
 9818  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9819  sudo ls
 9820  sudo mc /etc/alsa
 9821  sudo geany /etc/alsa/alsa.comf.d/61-a52.conf.disabled
 9822  sudo geany /etc/alsa/alsa.comf.d/61-a52.conf
 9823  sudo geany /etc/alsa/alsa.conf.d/61-a52.conf
 9824  sudo mv /etc/alsa/alsa.conf.d/61-a52.conf.disabled /etc/alsa/alsa.conf.d/61-a52.conf
 9825  ll /etc/alsa/alsa.conf.d/
 9826  ll /etc/alsa/
 9827  sudo mv /etc/alsa/conf.d/61-a52.conf.disabled /etc/alsa/conf.d/61-a52.conf
 9830  reboot
 9831  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9832  sudo geany
 9833  reboot
 9834  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9840  reboot
 9849  ll /usr/share/alsa/pcm/
 9851  cat .config/wireplumber/wireplumber.conf.d/51-alsa-disable*
 9853  locate libcsjsound_amd64
 9857  aplay -L
 9858  sudo alsactl dump-cfg
 9859  sudo rm /etc/alsa/conf.d/61-a52.conf
 9864  reboot
 9866  aplay -L
 9867  sudo alsactl dump-cfg
 9868  aplay -L
 9869  alsamixer
 9870  speaker-test -D plug:mya52 -c6 -t wav -l 2
 9871  speaker-test -D plug:pluga52 -c6 -t wav -l 2
 9872  speaker-test -D routea52 -c6 -t wav -l 2
 9873  speaker-test -D a52 -c6 -t wav -l 2
 9874  speaker-test -D a52:1 -c6 -t wav -l 2
 9876  speaker-test -D a52:Generic -c6 -t wav -l 2
 9877  speaker-test -D a52:1 -c6 -t wav -l 2
 9878  speaker-test -D plug:routea52 -c6 -t wav -l 2
 9879  speaker-test -D plug:a52 -c6 -t wav -l 2
 9880  speaker-test -D plug:pluga52 -c6 -t wav -l 2
 9893  reboot
 9894  aplay -L
 9896  speaker-test -D plug:a52 -c6 -t wav -l 2
 9897  speaker-test -D a52 -c6 -t wav -l 2
 9898  speaker-test -D a52:0 -c6 -t wav -l 2
 9899  speaker-test -D a52:1 -c6 -t wav -l 2
 9902  reboot
 9903  aplay -L
 9904  speaker-test -D a52:1 -c6 -t wav -l 2
 9905  speaker-test -D a52 -c6 -t wav -l 2
 9906  speaker-test -D plug:a52 -c6 -t wav -l 2
 9907  speaker-test -D plug:a52route -c6 -t wav -l 2
 9908  speaker-test -D plug:routea52 -c6 -t wav -l 2
 9909  sudo alsactl dump-cfg
 9910  aplay -L
 9912  speaker-test -D plug:routea52 -c6 -t wav -l 2
 9913  speaker-test -D plug:pluga52 -c6 -t wav -l 1
 9914  speaker-test -D plug:a52 -c6 -t wav -l 1
 9915  speaker-test -D a52 -c6 -t wav -l 1
 9916  aplay -L
 9918  aplay -L
 9919  reboot
 9920  aplay -L
 9925  reboot
 9929  sudo mc /etc/alsa
 9930  aplay -L
 9931  alsamixer
 9932  aplay -L
 9933  sudo alsactl dump-cfg
 9934  speaker-test -D plug:mya52 -c6 -t wav -l 1
 9935  speaker-test -D mya52 -c6 -t wav -l 1
 9936  aplay -L
 9937  alsamixer
 9938  sudo mc /etc/alsa
 9939  reboot
 9940  alsamixer
 9942  sudo geany /etc/alsa/conf.d/61-a52.conf &
 9943  alsamixer
 9944  reboot
 9945  alsamixer
 9946  sudo ls
 9947  sudo geany &
 9948  reboot
 9949  alsamixer
 9950  aplay -L
 9951  sudo alsactl dump-cfg
 9954  aplay -L
 9955  reboot
 9956  aplay -L
 9957  sudo ls
 9958  alsamixer
 9959  sudo alsactl dump-cfg
 9960  speaker-test -D a52 -c6 -t wav -l 1
 9961  speaker-test -D plug:a52 -c6 -t wav -l 1
 9962  aplay -L
 9963  sudo alsactl dump-cfg |grep a52
 9965  wpctl status
 9966  aplay -l
 9967  aplay -L
 9981  aplay -L
 9982  speaker-test -D plug:a52 -c6 -t wav -l 1
 9983  sudo alsactl dump-cfg
 9986  reboot
 9987  aplay -L
 9988  sudo alsactl dump-cfg

Of course it requires that the underlying physical device is disabled in pulseaudio/pipewire first, otherwise REW may not be able to gain access to the device when opening the device at initial enumeration. That's the standard procedure for all devices to be accessed by alsa directly.

Please keep in mind pipewire is required for Kodi 5.1 audio to work because alsa passthrough doesn't work. Also for Easyeffects to work. The main goal of this exercise is to correct the sound in my room, which is done with pipewire and easyeffects.

The only time I would require alsa is for REW and so far, in 3 weeks, not a sound is getting out of REW using any PCM device. None of them. Only pulse or pipewire.

My actual /etc/asound.comf is a total capharnaum after all the experiments I made:

Code:
$ cat /etc/asound.conf
#
# Place your global alsa-lib configuration here...
#
#pcm.custom
#{
#    type plug
#    slave
#    {
#        pcm "dmix:1,1"
#    }
#}
pcm.!default {
    type hw
    card 1
    #device 1
}

ctl.!default {
    type hw
    card 1
}

#pcm.a52 {
#        type a52
#        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
#}

#pcm.routea52 {
#  type route
#  slave {
#    pcm "a52"
#    channels 6
#  }
#    ttable.0.0 1
#    ttable.1.1 1
#    ttable.2.2 1
#    ttable.3.3 1
#    ttable.4.4 1
#    ttable.5.5 1
#}

#pcm.pluga52 {
#  type plug
#  slave {
#    pcm "a52"
#  }
#}

#pcm.!default {
#  type plug
#  slave.pcm "mya52"
#}
#pcm.mya52 {
#    type a52
#    slavepcm "iec958:CARD=Generic,DEV=0"
#    rate 48000
#    bitrate 448
#    channels 6
#}
#ctl.!default
#{
#    type hw
#    card 1
#}

#pcm.!default pcm.custom

#ctl.!default ctl.custom
#pcm.!default hw:1,1
#description "Plugin to convert multichannel stream to A52 (AC3) bitstream"
#pcm.a52 {
#  @args [CARD]
#  @args.CARD {
#    type string
#  }
#  type rate
#  slavepcm "iec958:CARD=Generic,DEV=0"
#  slave {
#    pcm {
#      type a52
#      bitrate 448
#      channels 6
#      card $CARD
#    }
#  rate 48000
#  }
#}

#pcm.a52 {
#  slavepcm "CARD=1,DEV=1"
#  slavepcm "hw:1,1"
#   type a52
#    slavepcm "iec958:CARD=Generic,DEV=0"
#    rate 48000
#    bitrate 448
#    channels 6
#    card 1
#    device 1
#    format S16_LE
#}

#pcm.!myac3 {
#     type a52
#     card 1
#     device 1
     #rate 44100
#     channels 6
     #bitrate 256
     #format S16_BE
#}

#pcm.mypcm {
    #card 1
#}
 
#pcm.mya52 {
#    type a52
#    slavepcm "mypcm"
#    slavepcm "iec958:CARD=Generic,DEV=0"
    #device 1
#    description "A52 (AC3) Device"
    #card Generic
#}
# DTS:
#pcm.dca {
#  @args [CARD]
#  @args.CARD {
#    type string
#  }
#  type rate
#  slave {
#    pcm {
#      type dca
#      channels 6
#      card $CARD
#    }
#  rate 48000
#  }
#}

#pcm.dca {
#  slavepcm "CARD=1,DEV=1"
#}

#<confdir:pcm/dca.conf>
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
Yes, I did, please reread my last post from the top to "UPDATE"


It's Fedora system. No .asoundrc file read or has no priority. Config goes into /etc/asound.conf and

AFAIK Fedora uses standard alsa. The access library alsa-lib is maintained by Jaroslav Kysela who is a RedHat employee - i.e. in charge of Fedora too. The stock configs do read ~/.asoundrc file https://github.com/alsa-project/als...2fbf053a7ac3699f1beae6/src/conf/alsa.conf#L15 which is the alsa user-level configuration file. If you do not have one, just create one, no root required.


Yes they are listed. See my system after hardcoding:

Code:
$ !apl
aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
a52
    Plugin to convert multichannel stream to A52 (AC3) bitstream
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
a52:CARD=HDMI
    HDA ATI HDMI
    Plugin to convert multichannel stream to A52 (AC3) bitstream
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output
a52:CARD=Generic
    HD-Audio Generic
    Plugin to convert multichannel stream to A52 (AC3) bitstream
No they are not listed. I see only the a52 hints generated by the a52 alsa config files. If you copy this to /home/YOUR_USER/.asoundrc file (if not existing, just create it under your user):

Code:
pcm.a52 {
        type a52
        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
}

pcm.pluga52 {
  type plug
  slave {
    pcm "a52"
  }
}

You will see this:

Code:
avel@precision:~$ aplay -L
default
    Playback/recording through the PulseAudio sound server
surround21
    2.1 Surround output to Front and Subwoofer speakers
...
a52
pluga52
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
...
Already did that multiple times changing one parameter at a time, which requires reboot every time.
No reboot required for .asoundrc config with no parameters. Which is what I have been telling you to do for several days. Use no arguments in your alsa configs, just copy the lines above. Alsa configs are very hard to get right and difficult to troubleshoot.

And still nothing listed in alplay -L in each and every test.
But IIUC you never put those lines into the ~/.asoundrc file. It requires no restart. Alsa config files are read every time a device is opened, no caching involved.

Code:
 9161  history|grep alsa
 9162  alsa-info.sh --no-upload
 9163  less /tmp/alsa-info.txt.fDTY62cDei
 9164  cat /etc/asound.conf
 9193  cat bin/kodi-passthrough.sh
 9194  dnf list installed *pulseau*
 9195  LANG=C pactl info | grep '^Server Name'
 9196  arecord -l
 9219  cat  /etc/asound.conf
 9220  pactl list modules short | grep dmix.
 9221  pactl list modules short | grep dmix
 9222  pactl list modules short
 9231  flatpak logs kodi
 9232  journalctl -b -u pipewire
 9234  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio
 9237  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9238  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b1
 9239  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b 1
 9240  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -1
 9241  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b
 9242  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -2
 9243  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -3
 9244  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -4
 9245  journalctl --user-unit=pipewire --user-unit=wireplumber --user-unit=pipewire-pulse --user-unit=pulseaudio -b -5
 
 9983  sudo alsactl dump-cfg
 9986  reboot
 9987  aplay -L
 9988  sudo alsactl dump-cfg
...
In those commands I see no test to run anything with the alsa device pluga52. You keep just wrapping with the a52 plugin. That's something else than what I have been trying to show you.
Please keep in mind pipewire is required for Kodi 5.1 audio to work because alsa passthrough doesn't work. Also for Easyeffects to work. The main goal of this exercise is to correct the sound in my room, which is done with pipewire and easyeffects.

The only time I would require alsa is for REW and so far, in 3 weeks, not a sound is getting out of REW using any PCM device. None of them. Only pulse or pipewire.
Well, if you want to use this alsa device in REW, you will have to disable the device in PW, do your REW work, and re-enable afterwards. At least for the start. Later you can try to enable the PCM device with a52 in PW, but that's another major layer of complexity and absolutely not suitable for now.
My actual /etc/asound.comf is a total capharnaum after all the experiments I made:

That file is useless as it contains no working a52 device, like the one at the beginning of this post. If you insist on using /etc/asound.conf (editable by root only), place those lines there, but remove all the commented lines first so that you know exactly what the file actually contains. Do not put any device arguments there, just those several lines above.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
AFAIK Fedora uses standard alsa. The access library alsa-lib is maintained by Jaroslav Kysela who is a RedHat employee - i.e. in charge of Fedora too. The stock configs do read ~/.asoundrc file https://github.com/alsa-project/als...2fbf053a7ac3699f1beae6/src/conf/alsa.conf#L15 which is the alsa user-level configuration file. If you do not have one, just create one, no root required.



No they are not listed. I see only the a52 hints generated by the a52 alsa config files. If you copy this to /home/YOUR_USER/.asoundrc file (if not existing, just create it under your user):

Code:
pcm.a52 {
        type a52
        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
}

pcm.pluga52 {
  type plug
  slave {
    pcm "a52"
  }
}

You will see this:

Code:
avel@precision:~$ aplay -L
default
    Playback/recording through the PulseAudio sound server
surround21
    2.1 Surround output to Front and Subwoofer speakers
...
a52
pluga52
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
...

No reboot required for .asoundrc config with no parameters. Which is what I have been telling you to do for several days. Use no arguments in your alsa configs, just copy the lines above. Alsa configs are very hard to get right and difficult to troubleshoot.
Did all of the above minutes ago. Here are the results

Code:
sudo mc /etc/alsa/conf.d/

@:/etc/alsa/conf.d# ll
total 36
drwxr-xr-x 1 root root  300 25 aoû 22:05 .
drwxr-xr-x 1 root root   70 10 jun 20:00 ..
lrwxrwxrwx 1 root root   39 10 jun 20:00 50-oss.conf -> /usr/share/alsa/alsa.conf.d/50-oss.conf
-rw-r--r-- 1 root root 1842 17 jun 20:00 50-pipewire.conf
lrwxrwxrwx 1 root root   46 10 jun 20:00 50-pulseaudio.conf -> /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf
lrwxrwxrwx 1 root root   47 10 jun 20:00 60-a52-encoder.conf -> /usr/share/alsa/alsa.conf.d/60-a52-encoder.conf
-rw-r--r-- 1 root root  717 25 aoû 22:05 61-a52.conf
-rw-r--r-- 1 root root  661 25 aoû 21:54 61-a52.conf.bak
-rw-r--r-- 1 root root  226 17 jun 20:00 99-pipewire-default.conf
-rw-r--r-- 1 root root  201 10 jun 05:18 99-pulseaudio-default.conf
-rw-r--r-- 1 root root  545 25 aoû 10:05 a52.tar.gz

@:/etc/alsa/conf.d# !tgz
tgz a52.tar.gz 6*
60-a52-encoder.conf
61-a52.conf
61-a52.conf.bak

@:/etc/alsa/conf.d# rm -v 6*
rm : supprimer '60-a52-encoder.conf' du type lien symbolique ? y
'60-a52-encoder.conf' supprimé
rm : supprimer '61-a52.conf' du type fichier ? y
'61-a52.conf' supprimé
rm : supprimer '61-a52.conf.bak' du type fichier ? y
'61-a52.conf.bak' supprimé

@:/etc/alsa/conf.d# ll
total 24
drwxr-xr-x 1 root root  210 26 aoû 14:17 .
drwxr-xr-x 1 root root   70 10 jun 20:00 ..
lrwxrwxrwx 1 root root   39 10 jun 20:00 50-oss.conf -> /usr/share/alsa/alsa.conf.d/50-oss.conf
-rw-r--r-- 1 root root 1842 17 jun 20:00 50-pipewire.conf
lrwxrwxrwx 1 root root   46 10 jun 20:00 50-pulseaudio.conf -> /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf
-rw-r--r-- 1 root root  226 17 jun 20:00 99-pipewire-default.conf
-rw-r--r-- 1 root root  201 10 jun 05:18 99-pulseaudio-default.conf
-rw-r--r-- 1 root root  613 26 aoû 14:16 a52.tar.gz

$ sudo cat /etc/asound.conf
#
# Place your global alsa-lib configuration here...
#
pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw
    card 1
}

$ sudo cat .asoundrc
pcm.a52 {
        type a52
        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
}

pcm.pluga52 {
  type plug
  slave {
    pcm "a52"
  }
}

# First time I get this working without a reboot!

$ speaker-test -D pluga52 -c6 -t wav -l 1

speaker-test 1.2.12

Le périphérique de lecture est pluga52
Les paramètres du flux sont 48000Hz, S16_LE, 6 canaux
fichier(s) WAV
La fréquence est 48000Hz (demandée 48000Hz)
L'intervalle de la taille du tampon est de 1536 à 24576
L'intervalle de la taille de la période est de 768 à 768
Périodes = 4
était paramétré pour period_size = 768
était paramétré pour buffer_size = 3072
 0 - Front Left
 4 - Front Center
 1 - Front Right
 3 - Rear Right
 2 - Rear Left
 5 - LFE
Temps par période = 8,569369

$ !ap
aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output
But IIUC you never put those lines into the ~/.asoundrc file. It requires no restart. Alsa config files are read every time a device is opened, no caching involved.


In those commands I see no test to run anything with the alsa device pluga52. You keep just wrapping with the a52 plugin. That's something else than what I have been trying to show you.
Right. Tired I guess, testing 10-12 hrs/day is hard on the system. Or not saved in history. I'm not always closing the terminal session before rebooting and last bash history is not getting written to file.

Well, if you want to use this alsa device in REW, you will have to disable the device in PW, do your REW work, and re-enable afterwards. At least for the start.
Step by step instructions would be needed I'm afraid
That file is useless as it contains no working a52 device, like the one at the beginning of this post. If you insist on using /etc/asound.conf (editable by root only), place those lines there, but remove all the commented lines first so that you know exactly what the file actually contains. Do not put any device arguments there, just those several lines above.
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
Very good, the speaker-test runs OK. But the aplay -L not listing:

1) Did speaker-test and aplay -L run under the same user? Of course no sudo, it's all for the local user.
2) Why sudo in your 'cat .asoundrc'? Is the file readable for the aplay user? Please show permissions and location of your .asoundrc (ls -la)

Step by step instructions would be needed I'm afraid
Just google out how to disable a device in pulseaudio, e.g. using pavucontrol https://forum.endeavouros.com/t/disabling-audio-devices-entirely/7738/3 . You must have it disabled first for REW to work OK.

One change: please change the type plug to copy in your /home/USER/.asoundrc - explanation https://lore.kernel.org/alsa-devel/.../T/#mf0df67e91a613c80753a5f0d1545cef21a1ebceb :

Code:
pcm.copya52 {
  type copy
  slave {
    pcm "a52"
  }
}

It will generate a device copya52 which offers only a52-encoder params (i.e. 6 ch, 16bit), with any access type:

Code:
pavel@precision:~$ aplay -v --dump-hw-params  -D copya52 /dev/zero 
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 64
CHANNELS: 4
RATE: 48000
PERIOD_TIME: 32000
PERIOD_SIZE: 1536
PERIOD_BYTES: 12288
PERIODS: [2 682]
BUFFER_TIME: [64000 21824000]
BUFFER_SIZE: [3072 1047552]
BUFFER_BYTES: [24576 8380416]
TICK_TIME: ALL
--------------------

REW will offer 6 channel only too.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
Very good, the speaker-test runs OK. But the aplay -L not listing:

1) Did speaker-test and aplay -L run under the same user? Of course no sudo, it's all for the local user.
2) Why sudo in your 'cat .asoundrc'? Is the file readable for the aplay user? Please show permissions and location of your .asoundrc (ls -la)
1 - Yes
2 - I use the bash history a lot. I just forgot to remove it. Permissions:

Code:
$ ll .asoundrc
-rw-rw-r-- 1 shizuma shizuma 238 27 aoû 09:18 .asoundrc
Just google out how to disable a device in pulseaudio, e.g. using pavucontrol https://forum.endeavouros.com/t/disabling-audio-devices-entirely/7738/3 . You must have it disabled first for REW to work OK.

I know how to disable a device. The question is which device does need disabling? I have those 2 disabled permanently for cause of interference. Some clients try to use it and there is nothing connected to hdmi.

Code:
$ cat .config/wireplumber/wireplumber.conf.d/51-alsa-disable*
monitor.alsa.rules = [
  {
    matches = [
      {
        device.name = "alsa_card.pci-0000_00_01.1"
      }
    ]
    actions = {
      update-props = {
         device.disabled = true
      }
    }
  }
]
monitor.alsa.rules = [
  {
    matches = [
      {
        node.name = "alsa_output.pci-0000_00_01.1.iec958-ac3-surround-51"
      }
    ]
    actions = {
      update-props = {
         node.disabled = true
      }
    }
  }
]

Code:
$ !9931
wpctl status
PipeWire 'pipewire-0' [1.0.7, shizuma@shizuma, cookie:327131886]
 └─ Clients:
        31. pipewire                            [1.0.7, shizuma@shizuma, pid:3515]
        32. WirePlumber                         [1.0.7, shizuma@shizuma, pid:3514]
        33. Cinnamon Volume Control Media Keys  [1.0.7, shizuma@shizuma, pid:3350]
        46. WirePlumber [export]                [1.0.7, shizuma@shizuma, pid:3514]
        54. Cinnamon Volume Control             [1.0.7, shizuma@shizuma, pid:3631]
        55. Muffin                              [1.0.7, shizuma@shizuma, pid:3631]
        61. xdg-desktop-portal                  [1.0.7, shizuma@shizuma, pid:3987]
        62. easyeffects                         [1.0.7, shizuma@shizuma, pid:3701]
        98. wpctl                               [1.0.7, shizuma@shizuma, pid:33732]
       113. Brave input                         [1.0.7, shizuma@shizuma, pid:14763]

Audio
 ├─ Devices:
 │      47. Audio interne                       [alsa]
 │
 ├─ Sinks:
 │  *   49. Audio interne Stéréo numérique (IEC958) [vol: 0.94]
 │      63. Easy Effects Sink                   [vol: 1.00]
 │
 ├─ Sources:
 │      64. Easy Effects Source                 [vol: 1.00]
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_00_14.2.iec958-stereo


One change: please change the type plug to copy in your /home/USER/.asoundrc - explanation https://lore.kernel.org/alsa-devel/.../T/#mf0df67e91a613c80753a5f0d1545cef21a1ebceb :

Code:
pcm.copya52 {
  type copy
  slave {
    pcm "a52"
  }
}

It will generate a device copya52 which offers only a52-encoder params (i.e. 6 ch, 16bit), with any access type:

Code:
pavel@precision:~$ aplay -v --dump-hw-params  -D copya52 /dev/zero
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 64
CHANNELS: 4
RATE: 48000
PERIOD_TIME: 32000
PERIOD_SIZE: 1536
PERIOD_BYTES: 12288
PERIODS: [2 682]
BUFFER_TIME: [64000 21824000]
BUFFER_SIZE: [3072 1047552]
BUFFER_BYTES: [24576 8380416]
TICK_TIME: ALL
--------------------

REW will offer 6 channel only too.

Results below. Not exactly what was expected.

Code:
$ speaker-test -D pluga52 -c6 -t wav -l 1

speaker-test 1.2.12

Le périphérique de lecture est pluga52
Les paramètres du flux sont 48000Hz, S16_LE, 6 canaux
fichier(s) WAV
La fréquence est 48000Hz (demandée 48000Hz)
L'intervalle de la taille du tampon est de 1536 à 24576
L'intervalle de la taille de la période est de 768 à 768
Périodes = 4
était paramétré pour period_size = 768
était paramétré pour buffer_size = 3072
 0 - Front Left
 4 - Front Center
 1 - Front Right
 3 - Rear Right
 2 - Rear Left
 5 - LFE
Temps par période = 8,568384

$ cat .asoundrc
pcm.a52 {
        type a52
        slavepcm "iec958:{ AES0 0x06 AES1 0x82 AES2 0x00 AES3 0x00 CARD Generic DEV 0 }"
}

#pcm.pluga52 {
#  type plug
#  slave {
#    pcm "a52"
#  }
#}

pcm.copya52 {
  type copy
  slave {
    pcm "a52"
  }
}

$ !ap
aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output

$ speaker-test -D copya52 -c6 -t wav -l 1

speaker-test 1.2.12

Le périphérique de lecture est copya52
Les paramètres du flux sont 48000Hz, S16_LE, 6 canaux
fichier(s) WAV
Le format d'échantillonage est indisponible à la lecture : Argument invalide
Échec de la configuration des paramètres matériel : Argument invalide

$ aplay -v --dump-hw-params  -D copya52 /dev/zero
Lecture données brutes '/dev/zero' : Unsigned 8 bit, Fréquence 8000 Hz, Mono
Params HW pour le périphérique "copya52" :
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 192
CHANNELS: 6
RATE: 48000
PERIOD_TIME: 16000
PERIOD_SIZE: 768
PERIOD_BYTES: 18432
PERIODS: [2 32]
BUFFER_TIME: [32000 512000]
BUFFER_SIZE: [1536 24576]
BUFFER_BYTES: [36864 589824]
TICK_TIME: ALL
--------------------
aplay: set_params:1387: Ce format d'échantillonage n'est pas disponible
Available formats:
- S32_LE

Just for reference, pluga52:

Code:
$ LANG=C aplay -v --dump-hw-params  -D pluga52 /dev/zero
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "pluga52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE MU_LAW A_LAW IMA_ADPCM S20_LE S20_BE U20_LE U20_BE S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: 16000
PERIOD_SIZE: [64 68719477)
PERIOD_BYTES: [32 4294967295)
PERIODS: (0 34359739)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [128 2199023255]
BUFFER_BYTES: [64 4294967295]
TICK_TIME: ALL
--------------------
Plug PCM: Rate conversion PCM (48000, sformat=U8)
Converter: linear-interpolation
Protocol version: 10003
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 8
  buffer_size  : 4096
  period_size  : 128
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 128
  period_event : 0
  start_threshold  : 4096
  stop_threshold   : 4096
  silence_threshold: 0
  silence_size : 0
  boundary     : 1152921504606846976
Slave: Route conversion PCM (sformat=S32_LE)
  Transformation table:
    0 <- 0
    1 <- 0
    2 <- 0
    3 <- 0
    4 <- 0
    5 <- 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : U8
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 8
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: A52 Output Plugin
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_NONINTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  av_format    : s32p
  av_frame_size: 1536
  remain       : 0
  filled       : 0
Slave: Hooks PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  appl_ptr     : 0
  hw_ptr       : 0
^CAborted by signal Interrupt...
aplay: pcm_write:2178: write error: Interrupted system call
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
I know how to disable a device. The question is which device does need disabling?
The one used by the a52 plugin - Card Generic, Device 0 (or better the whole card Generic).
I have those 2 disabled permanently for cause of interference. Some clients try to use it and there is nothing connected to hdmi.
I do not know which one is your Generic card. Look at the symlinks in /dev/snd/by-path, it will tell you which pcixxxx is the Generic card.
Settings └─ Default Configured Devices: 0. Audio/Sink alsa_output.pci-0000_00_14.2.iec958-stereo
It may be this one - iec958 - used by PW. You need to check it.
Results below. Not exactly what was expected.
Actually the results are correct. Your a52 plugin is compiled with newer libavc and the plugin expects 32bit format S32_LE now, instead of S16_LE on my setup https://github.com/alsa-project/alsa-plugins/blob/master/a52/pcm_a52.c#L952-L956 . speaker-test supports only S16_LE - therefore the error. Generate a 32bit 6ch wav and it will play OK in aplay. Or you can use sox as a generator.

Still I do not like the aplay -L output, it does not make any sense. Please install strace and post output of:

Code:
strace aplay -L 2>&1 | grep asoundrc

You should see that aplay successfully opens the file ~/.asoundrc, like this (empty .asoundrc):

Code:
pavel@hp:~$ strace aplay -L 2>&1 | grep asoundrc
access("/home/pavel/.asoundrc", R_OK)   = 0
stat("/home/pavel/.asoundrc", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
openat(AT_FDCWD, "/home/pavel/.asoundrc", O_RDONLY) = 3
access("/home/pavel/.asoundrc", R_OK)   = 0
stat("/home/pavel/.asoundrc", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
openat(AT_FDCWD, "/home/pavel/.asoundrc", O_RDONLY) = 3

For non-existing .asoundrc:

Code:
pavel@hp:~$ LC_ALL=C strace aplay -L 2>&1 | grep asoundrc
access("/home/pavel/.asoundrc", R_OK)   = -1 ENOENT (No such file or directory)
access("/home/pavel/.asoundrc", R_OK)   = -1 ENOENT (No such file or directory)
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
Code:
$ strace aplay -L 2>&1 | grep asoundrc
Voulez-vous installer le paquet « strace » qui fournit la commande « strace » ? [N/y] y

Continuer avec ces changements ? [N/y] y

access("/home/shizuma/.asoundrc", R_OK) = 0
newfstatat(AT_FDCWD, "/home/shizuma/.asoundrc", {st_mode=S_IFREG|0664, st_size=232, ...}, 0) = 0
openat(AT_FDCWD, "/home/shizuma/.asoundrc", O_RDONLY) = 3
access("/home/shizuma/.config/alsa/asoundrc", R_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
access("/home/shizuma/.asoundrc", R_OK) = 0
newfstatat(AT_FDCWD, "/home/shizuma/.asoundrc", {st_mode=S_IFREG|0664, st_size=232, ...}, 0) = 0
openat(AT_FDCWD, "/home/shizuma/.asoundrc", O_RDONLY) = 3
access("/home/shizuma/.config/alsa/asoundrc", R_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)

Generated a 6 channel wav:

Code:
import numpy as np
from scipy.io.wavfile import write

# Define the parameters
samplerate = 48000  # Hz
duration = 10  # seconds
channels = 6

# Generate some random audio data for each channel
data = np.random.uniform(-1, 1, size=(int(samplerate * duration), channels))

# Write the WAV file
write('output.wav', samplerate, data.astype(np.int32))

Code:
~$ ffprobe /tmp/output.wav
ffprobe version 6.0.1 Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --disable-decoder=amrnb --disable-decoder=libopenjpeg --disable-gnutls --disable-liblensfun --disable-libopencv --disable-podpages --disable-sndio --disable-stripping --enable-avfilter --enable-chromaprint --enable-frei0r --enable-gcrypt --enable-gpl --enable-ladspa --enable-libaom --enable-libaribb24 --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libdavs2 --enable-libdc1394 --enable-libdrm --enable-libfdk-aac --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libkvazaar --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librsvg --enable-librubberband --enable-libshine --enable-libsmbclient --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-nonfree --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-openssl --enable-postproc --enable-pthreads --enable-shared --enable-version3 --enable-vulkan --incdir=/usr/include/x86_64-linux-gnu --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --toolchain=hardened --enable-vaapi --enable-libvpl --enable-libvmaf --enable-libilbc --enable-libjxl --cc=x86_64-linux-gnu-gcc --cxx=x86_64-linux-gnu-g++ --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, wav, from '/tmp/output.wav':
  Duration: 00:00:10.00, bitrate: 9216 kb/s
  Stream #0:0: Audio: pcm_s32le ([1][0][0][0] / 0x0001), 48000 Hz, 6 channels, s32, 9216 kb/s

aplay, totally silent though:

Code:
$ LANG=C aplay -v --dump-hw-params  -D copya52 /mnt/linux486/tmp/output.wav
Playing WAVE '/mnt/linux486/tmp/output.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Channels 6
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 192
CHANNELS: 6
RATE: 48000
PERIOD_TIME: 16000
PERIOD_SIZE: 768
PERIOD_BYTES: 18432
PERIODS: [2 32]
BUFFER_TIME: [32000 512000]
BUFFER_SIZE: [1536 24576]
BUFFER_BYTES: [36864 589824]
TICK_TIME: ALL
--------------------
Copy conversion PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: A52 Output Plugin
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_NONINTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  av_format    : s32p
  av_frame_size: 1536
  remain       : 0
  filled       : 0
Slave: Hooks PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  appl_ptr     : 0
  hw_ptr       : 0
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
OK, disable the device in PW first and check with 'lsof /dev/snd/*' that PW does not use any of the files related to card Generic (you will need its ID from aplay -l or symlinks in /proc/asound). Then try aplay -L again.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
OK, disable the device in PW first and check with 'lsof /dev/snd/*' that PW does not use any of the files related to card Generic (you will need its ID from aplay -l or symlinks in /proc/asound). Then try aplay -L again.
Code:
10029  systemctl --user stop pipewire wireplumber pipewire-pulse
10032  ps aux|grep easye
10033  kill 3701
10034  wpctl status
10035  LANG=C aplay -v --dump-hw-params  -D copya52 /mnt/linux486/tmp/output.wav
Code:
$ wpctl status
PipeWire 'pipewire-0' [1.0.7, shizuma@shizuma, cookie:327131886]
 └─ Clients:
        40. WirePlumber [export]                [1.0.7, shizuma@shizuma, pid:353867]
        46. WirePlumber                         [1.0.7, shizuma@shizuma, pid:353867]
        51. Muffin                              [1.0.7, shizuma@shizuma, pid:3631]
        52. pipewire                            [1.0.7, shizuma@shizuma, pid:353868]
        61. xdg-desktop-portal                  [1.0.7, shizuma@shizuma, pid:3987]
        99. Cinnamon Volume Control             [1.0.7, shizuma@shizuma, pid:3631]
       112. wpctl                               [1.0.7, shizuma@shizuma, pid:355971]
       118. Contrôle du volume PulseAudio      [1.0.7, shizuma@shizuma, pid:352005]
       131. Cinnamon Volume Control Media Keys  [1.0.7, shizuma@shizuma, pid:3350]

Audio
 ├─ Devices:
 │      39. Audio interne                       [alsa]
 │
 ├─ Sinks:
 │  *   62. Dummy Output                        [vol: 1.00]
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:
        94. Contrôle du volume PulseAudio                    
             44. monitor_FL
             84. input_FR        < Dummy Output:monitor_FR    [active]
             92. input_FL        < Dummy Output:monitor_FL    [active]
            119. monitor_FR

Video
 ├─ Devices:
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    easyeffects_sink

aplay atill silent

Code:
$ LANG=C aplay -v --dump-hw-params  -D copya52 /mnt/linux486/tmp/output.wav
Playing WAVE '/mnt/linux486/tmp/output.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Channels 6
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 192
CHANNELS: 6
RATE: 48000
PERIOD_TIME: 16000
PERIOD_SIZE: 768
PERIOD_BYTES: 18432
PERIODS: [2 32]
BUFFER_TIME: [32000 512000]
BUFFER_SIZE: [1536 24576]
BUFFER_BYTES: [36864 589824]
TICK_TIME: ALL
--------------------
Copy conversion PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: A52 Output Plugin
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_NONINTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  av_format    : s32p
  av_frame_size: 1536
  remain       : 0
  filled       : 0
Slave: Hooks PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  appl_ptr     : 0
  hw_ptr       : 0

Code:
$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output


Oops, some sockets were still active so pipewire was reloading. Fixed that.

Code:
$ systemctl --user status pipewire wireplumber pipewire-pulse
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/pipewire.service.d
             └─00-uresourced.conf
             /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2024-08-27 15:23:28 EDT; 51s ago
TriggeredBy: ● pipewire.socket
   Main PID: 361147 (pipewire)
      Tasks: 3 (limit: 37191)
     Memory: 2.1M (peak: 2.3M)
        CPU: 22ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─361147 /usr/bin/pipewire

aoû 27 15:23:28 shizuma systemd[2732]: Started pipewire.service - PipeWire Multimedia Service.

○ wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead) since Tue 2024-08-27 15:23:28 EDT; 51s ago
   Duration: 11min 3.516s
    Process: 353867 ExecStart=/usr/bin/wireplumber (code=exited, status=0/SUCCESS)
   Main PID: 353867 (code=exited, status=0/SUCCESS)
        CPU: 911ms

aoû 27 15:12:25 shizuma systemd[2732]: Started wireplumber.service - Multimedia Service Session Manager.
aoû 27 15:12:25 shizuma wireplumber[353867]: s-monitors: ALSA card/device alsa_card.pci-0000_00_01.1 disabled
aoû 27 15:12:25 shizuma wireplumber[353867]: spa.bluez5: BlueZ system service is not available
aoû 27 15:12:25 shizuma wireplumber[353867]: [6:09:29.835597373] [353867]  WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib64/libcamera'
aoû 27 15:12:25 shizuma wireplumber[353867]: [6:09:29.835658594] [353867]  INFO Camera camera_manager.cpp:313 libcamera v0.3.1
aoû 27 15:23:28 shizuma wireplumber[353867]: wireplumber: disconnected from pipewire
aoû 27 15:23:28 shizuma wireplumber[353867]: pw.core: 0x558f78af5510: leaked proxy 0x558f78b4bd30 id:3
aoû 27 15:23:28 shizuma wireplumber[353867]: pw.core: 0x558f78af5510: leaked proxy 0x558f78c96b00 id:7

● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2024-08-27 15:23:28 EDT; 51s ago
TriggeredBy: ● pipewire-pulse.socket

shizuma@shizuma:~$ systemctl --user stop pipewire wireplumber pipewire-pulse
Stopping 'pipewire.service', but its triggering units are still active:
pipewire.socket
Stopping 'pipewire-pulse.service', but its triggering units are still active:
pipewire-pulse.socket

shizuma@shizuma:~$ systemctl --user stop pipewire wireplumber pipewire-pulse pipewire.socket pipewire-pulse.socket

shizuma@shizuma:~$ systemctl --user status pipewire wireplumber pipewire-pulse pipewire.socket pipewire-pulse.socket

○ pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/pipewire.service.d
             └─00-uresourced.conf
             /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead) since Tue 2024-08-27 15:24:58 EDT; 7s ago
   Duration: 14.904s
TriggeredBy: ○ pipewire.socket
    Process: 361680 ExecStart=/usr/bin/pipewire (code=exited, status=0/SUCCESS)
   Main PID: 361680 (code=exited, status=0/SUCCESS)
        CPU: 44ms

aoû 27 15:24:43 shizuma systemd[2732]: Started pipewire.service - PipeWire Multimedia Service.
aoû 27 15:24:58 shizuma systemd[2732]: Stopping pipewire.service - PipeWire Multimedia Service...
aoû 27 15:24:58 shizuma systemd[2732]: Stopped pipewire.service - PipeWire Multimedia Service.

○ wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead) since Tue 2024-08-27 15:24:58 EDT; 7s ago
   Duration: 14.876s
    Process: 361681 ExecStart=/usr/bin/wireplumber (code=exited, status=0/SUCCESS)
   Main PID: 361681 (code=exited, status=0/SUCCESS)
        CPU: 266ms

aoû 27 15:24:43 shizuma wireplumber[361681]: s-monitors: ALSA card/device alsa_card.pci-0000_00_01.1 disabled
aoû 27 15:24:43 shizuma wireplumber[361681]: spa.bluez5: BlueZ system service is not available
aoû 27 15:24:43 shizuma wireplumber[361681]: [6:21:47.996369049] [361681]  WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib64/libcamera'
aoû 27 15:24:43 shizuma wireplumber[361681]: [6:21:47.996426236] [361681]  INFO Camera camera_manager.cpp:313 libcamera v0.3.1
aoû 27 15:24:58 shizuma wireplumber[361681]: wireplumber: stopped by signal: Complété
aoû 27 15:24:58 shizuma systemd[2732]: Stopping wireplumber.service - Multimedia Service Session Manager...
aoû 27 15:24:58 shizuma wireplumber[361681]: wireplumber: disconnected from pipewire
aoû 27 15:24:58 shizuma wireplumber[361681]: pw.core: 0x55b0ca9dc4b0: leaked proxy 0x55b0cabadb50 id:3
aoû 27 15:24:58 shizuma wireplumber[361681]: pw.core: 0x55b0ca9dc4b0: leaked proxy 0x55b0caa14870 id:7
aoû 27 15:24:58 shizuma systemd[2732]: Stopped wireplumber.service - Multimedia Service Session Manager.

○ pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/user/service.d
             └─10-timeout-abort.conf

shizuma@shizuma:~$ ps aux|grep pipe

shizuma    14301  0.2  0.4 34215184 131876 tty2  Sl+  09:06   0:56 /home/shizuma/slimjet_amd64/slimjet/slimjet --type=utility --utility-sub-type=network.mojom.NetworkService --lang=fr --service-sandbox-type=network --crashpad-handler-pid=14263 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=0,i,15235857404639931448,12617784226075314663,262144 --variations-seed-version
shizuma    14303  0.0  0.0 34146912 17684 tty2   S+   09:06   0:00 /home/shizuma/slimjet_amd64/slimjet/slimjet --type=utility --utility-sub-type=network.mojom.NetworkService --lang=fr --service-sandbox-type=network --crashpad-handler-pid=14263 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=0,i,15235857404639931448,12617784226075314663,262144 --variations-seed-version
shizuma   362574  0.0  0.0 227808  2304 pts/1    S+   15:25   0:00 grep -i --color=auto pipe

shizuma@shizuma:~$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front output / input
surround21:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output

shizuma@shizuma:~$ lsof /dev/snd/*


shizuma@shizuma:~$ LANG=C aplay -v --dump-hw-params  -D copya52 /mnt/linux486/tmp/output.wav
Playing WAVE '/mnt/linux486/tmp/output.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Channels 6
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S32_LE
SUBFORMAT:  STD MSBITS_MAX MSBITS_20 MSBITS_24
SAMPLE_BITS: 32
FRAME_BITS: 192
CHANNELS: 6
RATE: 48000
PERIOD_TIME: 16000
PERIOD_SIZE: 768
PERIOD_BYTES: 18432
PERIODS: [2 32]
BUFFER_TIME: [32000 512000]
BUFFER_SIZE: [1536 24576]
BUFFER_BYTES: [36864 589824]
TICK_TIME: ALL
--------------------
Copy conversion PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: A52 Output Plugin
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_NONINTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 6
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 32
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : ENABLE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  av_format    : s32p
  av_frame_size: 1536
  remain       : 0
  filled       : 0
Slave: Hooks PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24576
  period_size  : 768
  period_time  : 16000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 768
  period_event : 0
  start_threshold  : 24576
  stop_threshold   : 24576
  silence_threshold: 0
  silence_size : 0
  boundary     : 6917529027641081856
  appl_ptr     : 0
  hw_ptr       : 0

$ wpctl status
Could not connect to PipeWire

REW doesn't send output to the proper channels though. Could the tweak with the ',so' file be needed?

Capture d’écran du 2024-08-27 15-35-09.png Capture d’écran du 2024-08-27 15-38-19.png

Amazing, remapped channels and now it's working flawlessly. The anound of knowledge and/or research you made is amazing. Thank you so much for your patience and your time!

Capture d’écran du 2024-08-27 15-51-21.png

I've taken all my measurements!

Capture d’écran du 2024-08-27 16-13-56.png
 
Last edited:

phofman

Member
Joined
Jun 26, 2019
Posts
180
Congrats, I am glad you made it work.

The REW's complaint about PCM:a52 not having any lines supporting ... is correct, because plain a52 plugin expects non-interleaved access, while the .so library in REW has hard-coded interleaved access https://github.com/pavhofman/csjsou...41525d770b39c4fe125c13321c08c/src/impl.c#L320 . The copy plugin wrapping a52 does the necessary conversion from interleaved to non-interleaved for REW.

Code:
$ LANG=C aplay -v --dump-hw-params  -D copya52 /mnt/linux486/tmp/output.wav
Playing WAVE '/mnt/linux486/tmp/output.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Channels 6
HW Params of device "copya52":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S32_LE
...
--------------------
Copy conversion PCM
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S32_LE
...
Slave: A52 Output Plugin
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_NONINTERLEAVED
  format       : S32_LE
...
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
...

You can remove the unused pluga52 device config from your .asoundrc.
 

phofman

Member
Joined
Jun 26, 2019
Posts
180
As of DTS: this note suggests it may not make sense to spend time on the DTS encoder plugin https://github.com/filler56789/ffdcaenc-2/blob/master/README.md#quality

As of PW: it may be possible to set the PCM device output via https://bbs.archlinux.org/viewtopic.php?pid=1741407#p1741407 (device would be "copya52") and use pulseaudio backend in REW. But the PA javasound provider is available only in some java JVM builds (e.g. IcedTea), your screenshot does not list any pulseaudio output, likely not in your JVM8 https://forums.raspberrypi.com/viewtopic.php?t=24210#p223840 . Anyway I would recommend avoiding PW in the measurement chain.
 

linuxonly

Member
Thread Starter
Joined
Jul 27, 2024
Posts
108
More  
Preamp, Processor or Receiver
Logitech Z906
DAC
AMD FCH Azalia
Computer Audio
SPDIF output with alsa, pipewire, wireplumber on Fedora 40
Streaming Equipment
Kodi
Front Height Speakers
33 in
Middle Height Speakers
30 in
Rear Height Speakers
57 in
Video Display Device
X11/VGA + X11/DVI
As of DTS: this note suggests it may not make sense to spend time on the DTS encoder plugin https://github.com/filler56789/ffdcaenc-2/blob/master/README.md#quality

I agree that DCA is better, however I couldn't get it to work for years now. The code in Fedora and Debian is long gone and adding the lines suggested in several internet pages resulted in no visible change. No error though, alsa loading normally but no visible trace of dcaenc. Is that a problem, I dont know. Do I need it, I still don't know. It would be better if Kodi worked with alsa natively, it's a fact. Most who have tested that succeeded; I failed every attempt. I have frozen a specific commit of Kodi flatpak because they have removed pipewire support since until the next Kodi version because some ubuntu users complained having no audio. https://forum.kodi.tv/showthread.php?tid=377077&pid=3194580#pid3194580

Code:
$ flatpak remote-info --log flathub tv.kodi.Kodi

Kodi - Ultimate entertainment center

        ID: tv.kodi.Kodi
       Ref: app/tv.kodi.Kodi/x86_64/stable
      Arch: x86_64
    Branch: stable
   Version: 21.1-Omega
   License: GPL-2.0-only GPL-2.0-or-later LGPL-2.1-or-later MIT BSD-3-Clause BSD-4-Clause
Collection: org.flathub.Stable
  Download: 222,8 Mo
 Installed: 516,5 Mo
   Runtime: org.freedesktop.Platform/x86_64/23.08
       Sdk: org.freedesktop.Sdk/x86_64/23.08

    Commit: 301038887baa0cdc8fab5ef3b5d5737469efc50cfe121ada4f6ebdff6a1fac08
    Parent: d7ea1b8b6c6feab74427b01ac214f7e95187c1024a34c718b265af769e12c5a4
   Subject: Don't bundle lirc docs (c7392276)
      Date: 2024-08-18 01:19:19 +0000
   History:

    Commit: d7ea1b8b6c6feab74427b01ac214f7e95187c1024a34c718b265af769e12c5a4
   Subject: Don't bundle lirc docs (cf3a39fb)
      Date: 2024-08-17 18:59:35 +0000

    Commit: 03934475318a3a17476eed0f73e2d8339194373109f324868fc22484cbd7276e
   Subject: Update addons (787f64c4)
      Date: 2024-06-01 18:22:30 +0000

    Commit: cb0195ac49050d0e16c840244de4c99061453102a270f6f930f3186a25bcd562
   Subject: Update inputstream.adaptive to 21.4.9-Omega (911cd551)
      Date: 2024-05-31 17:46:52 +0000

    Commit: 9464e3dbf2fa9810f1f285e5bc24246a230a10ef4e1224273988b08dcbdc29e4
   Subject: Update libde265 to 1.0.15 (7e0f2934)
      Date: 2024-05-22 03:17:37 +0000

    Commit: 1121f35831a650c21f833dfa79d2544e9770ebb222be032cab858aa32f9cf95d
   Subject: Revert "Add PipeWire support" (ebb2bdeb)
      Date: 2024-05-11 00:13:24 +0000
...

As of PW: it may be possible to set the PCM device output via https://bbs.archlinux.org/viewtopic.php?pid=1741407#p1741407 (device would be "copya52") and use pulseaudio backend in REW. But the PA javasound provider is available only in some java JVM builds (e.g. IcedTea), your screenshot does not list any pulseaudio output, likely not in your JVM8 https://forums.raspberrypi.com/viewtopic.php?t=24210#p223840 . Anyway I would recommend avoiding PW in the measurement chain.

Because it's Fedora 40. No native pulseaudio like in the Fedora 39 distro. It's now build as a wrapper for pipewire which has totally replaced pulseaudio. In F39, Kodi worked perfectly well with native pulseaudio as far as ac3 passthrough is concerned; in F40 impossible to get pulseaudio to even list the passthrough options therefore pipewire is mandatory unless I'm able to reconfigure alsa properly for Kodi to use it directly.

Capture d’écran du 2024-08-28 10-13-58.png

I don't particularly care as long as Kodi audio is working properly. What I dont like is the considerable amount of time and work necessary to reconfigure Kodi to play all audio formats in each and every new version of Kodi and Fedora. Now that I have re-enabled pipewire, the pulseaudio output is displayed again in REW and working (in stereo though).


The REW's complaint about PCM:a52 not having any lines supporting ... is correct, because plain a52 plugin expects non-interleaved access, while the .so library in REW has hard-coded interleaved access https://github.com/pavhofman/csjsou...41525d770b39c4fe125c13321c08c/src/impl.c#L320 . The copy plugin wrapping a52 does the necessary conversion from interleaved to non-interleaved for REW.

Code:
$ LANG=C aplay -v --dump-hw-params -D copya52 /mnt/linux486/tmp/output.wav
Playing WAVE '/mnt/linux486/tmp/output.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Channels 6
HW Params of device "copya52":
--------------------
ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT: S32_LE
...
--------------------
Copy conversion PCM
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S32_LE
...
Slave: A52 Output Plugin
Its setup is:
stream : PLAYBACK
access : MMAP_NONINTERLEAVED
format : S32_LE
...
Slave: Hardware PCM card 1 'HD-Audio Generic' device 1 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
...

You can remove the unused pluga52 device config from your .asoundrc.

Check.

Those are powerful commands. I'm just not skilled enough to interpret them. Happy you are!
 
Top Bottom