这个项目是我之前的 RPi Zero 2 W Audio Gadget 项目的延续。
该项目的目标是将 RPi Zero 2 W 用作功能齐全的 DAC 和 DSP。这将通过使用 CamillaDSP 以及其他一些有用的软件将 Pi 上的 USB 捕获设备连接到 Allo miniBOSS DAC 来实现。CamillaDSP 的 DSP 功能不会真正涵盖,但本指南提供的基本配置可以很容易地扩展,以添加过滤器、混合器、处理管道等。基本配置也可以适用于其他输入/输出设备。
该项目还添加了从 USB 主机设备调整的音量和静音控制。在这种情况下,使用 Windows 计算机作为主机,可以使用 Windows 中的音量控制和静音按钮来调整 RPi 上的音量和静音。
本指南有一些假设:
camilladsp.service
以及 websocket 端口轻松更改usb-control.py
首先,必须添加 Allo miniBOSS 作为叠加层:
sudo nano /boot/config.txt
更改dtparam=audio
参数如下,禁用板载声卡:
dtparam=audio=off
然后将此行添加到文件末尾:
dtoverlay=allo-boss-dac-pcm512x-audio
现在重新启动您的 RPi 并检查 DAC 是否显示:
sudo reboot
aplay -l && arecord -l
输出应该与此类似:
您可能拥有更多或更少的设备,具体取决于当前插入到您的 pi 的音频设备,但 BossDAC (pcm512x-hifi-0) 应该在播放设备列表中。
现在需要重新配置 UAC2 声卡。miniBOSS 是一个 384kHz/32 位 DAC,因此 USB 捕获设备将被设置为这样。为简单起见,仅使用一种采样率。在撰写本文时,CamillaDSP 无法轻松处理更改采样率。
为 g_audio 创建一个新的配置文件,以便在启动时读取。
sudo nano /etc/modprobe.d/g_audio.conf
然后将适当的设置添加到文件中:
options g_audio c_srate=384000 c_ssize=4 p_chmask=0 iProduct="RPi USB DAC"
c_srate
- 以赫兹为单位的捕获采样率c_ssize
- 样本的大小(以字节为单位)p_chmask
- 将播放通道掩码设置为 0 禁用 USB 播放iProduct
- 描述设备的字符串有关这些设置的作用的更多信息,请参阅我之前的指南。这些可用于进一步定制 USB 音频设备以满足您的需求。
如果您想测试它是否正常工作,请重新启动并检查当前加载的设置:
grep -H '' /sys/module/g_audio/parameters/*
首先,安装依赖项:
sudo apt install alsa-utils python3 python3-pip python3-websocket python3-aiohttp python3-jsonschema python3-numpy python3-matplotlib unzip git -y
创建文件夹结构:
mkdir camilladsp
cd camilladsp
mkdir coeffs configs
注意:从现在开始,本指南假定您在目录中。~/camilladsp/
现在为此设备添加 CamillaDSP 配置文件:
wget https://raw.githubusercontent.com/Masonrf/RPi-Z2W-USB-Soundcard/main/camilladsp.yml -P configs
制作日志文件:
touch camilladsp.log
现在下载最新版本的 CamillaDSP。此命令取决于将在其上运行的设备的体系结构。
对于 64 位 RPi:
wget https://github.com/HEnquist/camilladsp/releases/latest/download/camilladsp-linux-aarch64.tar.gz
对于 32 位 RPi:
wget https://github.com/HEnquist/camilladsp/releases/latest/download/camilladsp-linux-armv7.tar.gz
提取压缩包:
tar -xvf camilladsp-linux-*.tar.gz
现在尝试启动 CamillaDSP:
./camilladsp -g-10 -p 1234 configs/camilladsp.yml
它应该(希望)在没有任何错误的情况下启动。如果您没有从主机播放任何音频,您可能会收到有关等待超时的警告:
如果您想做一些测试,但只需要错误,请将 start 命令更改为仅显示错误:
./camilladsp -g-10 -p 1234 configs/camilladsp.yml -l error
现在我们可以在启动时作为服务启动 CamillaDSP。
下载服务文件并在启动时启用它:
sudo wget https://raw.githubusercontent.com/Masonrf/RPi-Z2W-USB-Soundcard/main/camilladsp.service -P /lib/systemd/system
sudo systemctl enable camilladsp
确保你得到最后一行“创建的符号链接...”
安装 pycamilladsp 及其绘图功能:
sudo git clone https://github.com/HEnquist/pycamilladsp
cd pycamilladsp
sudo pip3 install .
cd ..
sudo git clone https://github.com/HEnquist/pycamilladsp-plot
cd pycamilladsp-plot
sudo pip3 install .
cd ..
安装 camillagui:
wget https://github.com/HEnquist/camillagui-backend/releases/latest/download/camillagui.zip
unzip camillagui.zip -d camillagui
接下来,我们需要重新配置 camillagui:
nano ~/camilladsp/camillagui/config/camillagui.yml
更改camillaDSP 设备配置的路径default_config
:active_config
default_config: "~/camilladsp/configs/camilladsp.yml"
active_config: "~/camilladsp/configs/camilladsp.yml"
现在将 CamillaGUI 添加为服务并在启动时启用:
sudo wget https://raw.githubusercontent.com/Masonrf/RPi-Z2W-USB-Soundcard/main/camillagui.service -P /lib/systemd/system
sudo systemctl enable camillagui
现在重新启动并进入http://(your pi ip):5000/
您的浏览器
您应该会看到 CamillaDSP 的 gui 界面
如果没有,请检查服务是否处于活动状态:
sudo systemctl status camilladsp.service
sudo systemctl status camillagui.service
如果您遇到任何问题,请直接向我发送有关 hackster 的消息。
最后一步是添加一个python程序,将主机发送的USB音量和静音控制信号连接到CamillaDSP。
安装依赖项:
sudo apt install libasound2-dev
pip install pyalsaaudio
下载python程序并测试它:
wget https://raw.githubusercontent.com/Masonrf/RPi-Z2W-USB-Soundcard/main/usb-control.py
python3 usb-control.py
当您更改主机音量和静音选择时,您应该会看到值发生变化。您还应该能够在 python 程序运行时听到更改,并且您可以通过 USB 连接播放声音。
现在将此功能添加为启动时的服务:
sudo wget https://raw.githubusercontent.com/Masonrf/RPi-Z2W-USB-Soundcard/main/usb-control.service -P /lib/systemd/system
sudo systemctl enable usb-control
最后,重新启动以使更改生效。
您现在应该可以从您的主机静音和更改音量了!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !