Alsamixer com Alsaequal [RESOLVIDO]

1. Alsamixer com Alsaequal [RESOLVIDO]

Rosildo Pereira
TIMUS

(usa Debian)

Enviado em 05/01/2023 - 02:28h

Boa galera
Uso debian 11 64/32 bit e após instalar a biblioteca de aprimoramento de áudio alsa (libasound2-plugin-equal) o áudio do emulador Zsnes ficou mudo e gera essa mensagem no terminal.

ALSA lib dlmisc.c:339:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_equal.so (/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_equal.so: wrong ELF class: ELFCLASS64)

Só então tive conhecimento que o alsaequal não tem suporte multlib.

Tentei resolver substituindo meu arquivo de configuração .asoundrc que fazia apenas o alsaequal funcionar por essa configuração abaixo, que pretende fazer justamente o que quero. Desviar comportamentos 32bit do alsaequal. Porém, também não tive sucesso.


# Set the default backend card and device to the onboard Intel HDA codec; see
# /proc/asound/cards for the names of the cards in the system.
defaults.pcm.!card Intel
defaults.ctl.!card Intel
defaults.pcm.!device 0
defaults.ctl.!device 0

# Equalizer definition, uses dmix internally; use amixer in a script to adjust
# the equalizer boost/cut levels, or use the following command to adjust the
# levels interactively.
#
# alsamixer -D equal
#
ctl.equal {
type equal;
}
pcm.equal {
type equal;
slave.pcm "plug:dmix";
}

# The alsaequal plugin is not compatible with 32-bit programs on amd64, so it
# will crash them with the following message:
#
# Failed to load plugin "/usr/lib/ladspa/caps.so": /usr/lib/ladspa/caps.so: wrong ELF class: ELFCLASS64
#
# To get around this, the asymed definition takes two parameters: PLAY and
# CAPT, to direct the slave PCMs. These are controlled either by arguments
# in the slave definition (i.e. slave.pcm "asymed:dmix,dsnoop" ), or by
# environment variables (ALSA_ASYM_PLAY=dmix ALSA_ASYM_CAPT=dsnoop aplay ...)
pcm.asymed {
@args [ PLAY CAPT ]
@args.PLAY {
type string
default {
@func getenv
vars [
ALSA_ASYM_PLAY
]
default "equal"
}
}
@args.CAPT {
type string
default {
@func getenv
vars [
ALSA_ASYM_CAPT
]
default "dsnoop"
}
}
type asym;
playback.pcm $PLAY;
capture.pcm $CAPT;
}

# Set the default playback device to the above asymed soft-device
pcm.!default {
type plug;
slave.pcm asymed;
}



Alguém poderia melhorar essa configuração, visto que não tenho conhecimento suficiente.


  


2. Re: Alsamixer com Alsaequal [RESOLVIDO]

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 05/01/2023 - 02:28h

R: Para conseguir usar o alsaequal com programas de 32bit no amd64, você deve utilizar a configuração abaixo no seu .asoundrc:


# Set the default backend card and device to the onboard Intel HDA codec; see
# /proc/asound/cards for the names of the cards in the system.
defaults.pcm.!card Intel
defaults.ctl.!card Intel
defaults.pcm.!device 0
defaults.ctl.!device 0

# Equalizer definition, uses dmix internally; use amixer in a script to adjust
# the equalizer boost/cut levels, or use the following command to adjust the
# levels interactively.
#
# alsamixer -D equal
#
ctl.equal {
type equal;
}
pcm.equal {
type equal;
slave.pcm "plug:dmix";
}

# The alsaequal plugin is not compatible with 32-bit programs on amd64, so it
# will crash them with the following message:
#
# Failed to load plugin "/usr/lib/ladspa/caps.so": /usr/lib/ladspa/caps.so: wrong ELF class: ELFCLASS64
#
# To get around this, the asymed definition takes two parameters: PLAY and
# CAPT, to direct the slave PCMs. These are controlled either by arguments
# in the slave definition (i.e. slave.pcm "asymed:dmix,dsnoop" ), or by
# environment variables (ALSA_ASYM_PLAY=dmix ALSA_ASYM_CAPT=dsnoop aplay ...)
pcm.asymed {
@args [ PLAY CAPT ]
@args.PLAY {
type string
default {
@func getenv
vars [
ALSA_ASYM_PLAY
]
default "equal"
}
}
@args.CAPT {
type string
default {
@func getenv
vars [
ALSA_ASYM_CAPT
]
default "dsnoop"
}
}
type asym;
playback.pcm $PLAY;
capture.pcm $CAPT;
}

# Set the default playback device to the above asymed soft-device
pcm.!default {
type plug;
slave.pcm asymed;
}



Agora você terá suporte para 32bit no amd64, desde que carregue sua configuração do .asoundrc. Para isso, execute o seguinte comando no terminal:

$ alsactl -F -f ~/.asoundrc load


3. Re: Alsamixer com Alsaequal [RESOLVIDO]

Rosildo Pereira
TIMUS

(usa Debian)

Enviado em 05/01/2023 - 03:09h

Usei o comando com restore, pois o load não é reconhecido.
$ alsactl -F -f ~/.asoundrc restore

Obtive a mensagem abaixo e a mensagem de erro do zsnes persiste.


No state is present for card Intel
alsa-lib parser.c:260:(error_node) UCM is not supported for this HDA model (HDA Intel at 0xfcffc000 irq 26)
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -6
Found hardware: "HDA-Intel" "VIA VT1708BCE" "HDA:1106e721,10192683,00100100" "0x1019" "0x2683"
Hardware is initialized using a generic method
No state is present for card Intel
No state is present for card NVidia
alsa-lib parser.c:260:(error_node) UCM is not supported for this HDA model (HDA NVidia at 0xfea7c000 irq 17)
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -6
Found hardware: "HDA-Intel" "Nvidia GPU 14 HDMI/DP" "HDA:10de0014,10de0101,00100100" "0x1acc" "0x43c5"
Hardware is initialized using a generic method
No state is present for card NVidia



4. Re: Alsamixer com Alsaequal [RESOLVIDO]

Rosildo Pereira
TIMUS

(usa Debian)

Enviado em 07/01/2023 - 01:28h

Após procurar em vários sites e alguns teste. A solução que funcionou foi a dica desse site: https://bbs.archlinux.org/viewtopic.php?id=97653 Não era da maneira que com eu queria. Porém, como é apenas para um programa, serviu! Usei dois aquivos .asoundrc no diretório home, como sugerido.

.asoundrc

pcm.dmixer {
type dmix
ipc_key 1024 # must be unique!
slave {
pcm {
type hw
card Intel # name of the card, see aplay -L
device 0
}
buffer_size 4096 # needs to be set!
}
}

ctl.equal {
type equal;
}

pcm.plugequal {
type equal
slave.pcm "plug:dmixer"
#needs "plug:" cause of floating point transition
}

ctl.!default {
type hw
card Intel
}

pcm.!default {
type plug
slave.pcm plugequal
}


.asoundrc.default

ctl.!default {
type hw
card Intel
}

pcm.dmixer {
type dmix
ipc_key 1024 # must be unique!
slave {
pcm {
type hw
card Intel
device 0
}
}
}

pcm.!default {
type plug
slave.pcm dmixer
}


E um script simpes para alternar os arquivos de configuração e executar o zsnes sem o alsaequal.

.alsasnes.sh

#!/bin/bash
PROSS=$(PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin)
ALSARESTORE=$(alsactl -F -f ~/.asoundrc restore)
HOME=$(cd ~/)

HOME
PROSS
mv .asoundrc .asoundrc.equal
mv .asoundrc.default .asoundrc
ALSARESTORE
zsnes
mv .asoundrc .asoundrc.default
mv .asoundrc.equal .asoundrc
ALSARESTORE







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts