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

19

我在使用树莓派计算模块 (Linux) 和 rpi dac 时,拥有一个正常工作的 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 文件以便它看起来像以下内容:

要使音频正常工作,我不得不修改我的/etc/asound.conf文件以便它看起来像以下内容:

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

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

播放.wav文件时,输出声音效果良好,但有点安静,而且该驱动程序不能使用alsamixer进行音频音量控制。

我想要更多的音量,所以我研究了Ladspa项目软件放大器插件。以下示例代码可以增加普通树莓派上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,但是我不太理解如何将两者结合起来 - 我想要MMAP模拟和放大。我该怎么做?谢谢。


你尝试过Soft Volume alsa插件吗?它似乎也可以放大音量(请参见http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html获取更多详细信息)。 - Bert Neef
1个回答

2
请尝试下面的设置,它可以在我的 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
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接