ALSA 配置 如何在 asound.conf 中结合 MMAP 仿真和 Ladspa 插件

Posted

技术标签:

【中文标题】ALSA 配置 如何在 asound.conf 中结合 MMAP 仿真和 Ladspa 插件【英文标题】:ALSA Configuration How To Combine MMAP Emulation and Ladspa Plugin in asound.conf 【发布时间】:2015-12-07 01:27:28 【问题描述】:

我在使用 rpi dac 的 Raspberry Pi 计算模块 (Linux) 上有一个可正常工作的 PCM 输出,并带有良好的音频。 'aplay -l' 命令输出显示如下:

>> aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpirpidac [snd_rpi_rpi_dac], device 0: RPi-DAC HiFi pcm1794a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0

要让音频完全正常工作,我必须将 /etc/asound.conf 文件更改为如下所示:

pcm.mmap0 
  type mmap_emul
  slave 
    pcm "hw:0,0"
  


pcm.!default 
  type plug
  slave 
    pcm mmap0
  

当我播放 .wav 文件时,输出听起来很棒,但它有点安静,而且 alsamixer 不允许使用此驱动程序控制音量。

我想获得更多的音量,所以我研究了 Ladspa 项目软件放大器插件。以下示例代码提高了普通 Pi 上 3.5 毫米插孔的音量:

pcm.radio 
    type plug
    slave.pcm "ladspa"
    hint 
        show on
        description "in -> equal -> declip -> compressor -> limiter -> dmix -> out"
    


#  LADSPA plugins:
#    "listplugins" to see the list of installed plugins
#    "analyseplugin <filename>" to see plugin controls
#    Use "ardour2" to experiment with plugin settings
pcm.ladspa 
    type ladspa
    slave.pcm "plughw:0,0"
    path "/usr/lib/ladspa"
    plugins 
        0 
        # Limiter
            label amp
            input 
                controls [ 10 ]
            
          
    

我一直在阅读这里的文档:http://alsa.opensrc.org/Asoundrc,但我正在努力理解如何结合 2 - 我想要 MMAP 仿真和放大。我怎样才能做到这一点?谢谢。

【问题讨论】:

您尝试过 Soft Volume alsa 插件吗?似乎也在放大(有关详细信息,请参阅alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html 【参考方案1】:

请尝试下一个设置,它可以在我的 x86 linux 下运行:

pcm.mmap0 
    type mmap_emul
    slave 
        pcm "hw:0,0"
        #    pcm ladspa
    


pcm.ladspa 
type ladspa
#slave.pcm "plughw:0,0"
slave.pcm mmap0
path "/usr/lib/ladspa"
plugins 
    0 
    # Limiter
        label amp
        input 
            controls [ 100 ]
        
      



pcm.!default
type plug
slave 
    pcm mmap0
    #pcm ladspa
    

【讨论】:

以上是关于ALSA 配置 如何在 asound.conf 中结合 MMAP 仿真和 Ladspa 插件的主要内容,如果未能解决你的问题,请参考以下文章

ALSA 更改默认声卡

树莓 ALSA 声音输出/输入从机

android audio/linux alsa音频-应用层基础

android audio/linux alsa音频-应用层基础

为我的嵌入式设备定义一个干净且有效的 asound.conf

Portaudio选择用于捕获的输入设备