项目简介
本项目是一个基于Teensy 4.1和PlatformIO的分布式音频系统,支持通过网络进行音频数据的传输和处理,具有多种音频处理环境和调试优化选项,可适配相关硬件扩展模块。
项目的主要特性和功能
- 网络音频传输:支持通过UDP多播组进行音频数据的接收和发送。
- 音频处理:提供基本音频客户端、同步测试和波场合成(WFS)算法等多种音频处理环境。
- 硬件兼容性:支持Teensy 4.1及其相关音频和以太网扩展模块。
- 调试和优化:提供音频缓冲区调试、传输调试和时钟调整等多种调试模式和优化选项。
安装使用步骤
1. 环境准备
确保已安装以下工具和库: - PlatformIO(测试版本:v6.1.15) - TyTools(用于脚本上传)
2. 硬件准备
- Teensy 4.1开发板
- Teensy 4.x音频扩展板
- Teensy 4.1以太网扩展板或SparkFun RJ45 MagJack Breakout
- 以太网交换机和CAT5E/CAT6以太网线
- 最多16个扬声器(取决于服务器配置)
3. 构建和上传
使用PlatformIO构建并上传代码到Teensy:
shell
pio run -t upload -e [environment]
或者使用tytools
上传到所有连接的Teensy:
shell
./scripts/upload.sh [environment]
environment
默认为basic
。
4. 配置网络
5. 运行和调试
- 上传后,Teensy将自动重启并尝试连接到UDP多播组。
- 使用
./scripts/reboot.sh
重启所有连接的Teensy。 - 通过串行输出进行调试,查看音频内存和处理器使用情况。
6. 高级配置
通过修改platformio.ini
中的build_flags
来调整客户端设置,如音频块大小、UDP端口和调试模式。
ini
build_flags =
-DAUDIO_BLOCK_SAMPLES=32
-DWAIT_FOR_SERIAL
通过NetJUCEClient
类的构造函数和ClientSettings
结构体进行更详细的配置。
c++
ClientSettings settings{
{192, 168, 10, 10}, // 适配器IP地址
{224, 4, 224, 4} // 多播组IP地址
};
NetJUCEClient client{settings};
通过begin()
和loop()
方法启动和运行客户端。
c++
if (!client.begin()) {
Serial.println("Failed to initialise ethernet.");
}
client.loop();
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】