×

RPi Z2W USB声卡开源分享

消耗积分:0 | 格式:zip | 大小:0.06 MB | 2023-06-13

百灵千岛酱

分享资料个

描述

这个项目是我之前的 RPi Zero 2 W Audio Gadget 项目的延续

该项目的目标是将 RPi Zero 2 W 用作功能齐全的 DAC 和 DSP。这将通过使用 CamillaDSP 以及其他一些有用的软件将 Pi 上的 USB 捕获设备连接到 Allo miniBOSS DAC 来实现。CamillaDSP 的 DSP 功能不会真正涵盖,但本指南提供的基本配置可以很容易地扩展,以添加过滤器、混合器、处理管道等。基本配置也可以适用于其他输入/输出设备。

该项目还添加了从 USB 主机设备调整的音量和静音控制。在这种情况下,使用 Windows 计算机作为主机,可以使用 Windows 中的音量控制和静音按钮来调整 RPi 上的音量和静音。

本指南有一些假设:

  • 您遵循了上一个指南并拥有一个正常工作的 g_audio 设备
  • 您的用户名是“pi” :这可以更改,但您需要更改配置文件和 .service 文件中的每个“pi”实例
  • 您要用于 CamillaDSP websocket 的端口是“1234” :这也可以通过编辑各种配置文件和启动命令camilladsp.service以及 websocket 端口轻松更改usb-control.py
  • 您在 RPi 上运行内核 5.18-rc3 或更高版本:较旧的内核可能工作,但 5.18 包括对 g_audio 驱动程序的改进,并且根据我的测试,与以前的版本相比,Windows 主机的工作效果要好得多。

第 1 步:启用 Allo miniBOSS

首先,必须添加 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

输出应该与此类似:

pYYBAGSGd12AYOYkAABwInINuRc207.png
 

您可能拥有更多或更少的设备,具体取决于当前插入到您的 pi 的音频设备,但 BossDAC (pcm512x-hifi-0) 应该在播放设备列表中。

第 2 步:重新配置 g_audio

现在需要重新配置 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/*

第 3 步:设置 CamillaDSP

首先,安装依赖项:

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

它应该(希望)在没有任何错误的情况下启动。如果您没有从主机播放任何音频,您可能会收到有关等待超时的警告:

poYBAGSGd1-AbN1oAACeZOcSsiQ184.png
 

如果您想做一些测试,但只需要错误,请将 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

确保你得到最后一行“创建的符号链接...”

pYYBAGSGd2OAccVtAAEZa9cU_IE247.png
 

第 4 步:设置 CamillaGUI 服务器

安装 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_configactive_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 界面

poYBAGSGd2aACnS4AAC-aTDpdII879.png
 

如果没有,请检查服务是否处于活动状态:

sudo systemctl status camilladsp.service
sudo systemctl status camillagui.service
pYYBAGSGd2mAb9CjAAEv243Pemk266.png
 

如果您遇到任何问题,请直接向我发送有关 hackster 的消息。

第 5 步:添加主机音量控制/静音

最后一步是添加一个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 连接播放声音。

pYYBAGSGd2yAZwiJAADOw44PH84967.png
 

现在将此功能添加为启动时的服务:

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)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !