#firewire #protocols #alsa

bin+lib firewire-tascam-protocols

TASCAM FireWire 系列协议实现

2 个不稳定版本

0.2.0 2023 年 4 月 18 日
0.1.1 2022 年 8 月 5 日

1568硬件支持

每月下载 24

LGPL-3.0-or-later

180KB
4K SLoC

该库 crate 包含 TASCAM FireWire 系列型号的协议实现,旨在 IEEE 1394 总线上的音频和音乐单元。

TASCAM FireWire 系列

截至 2022 年,TASCAM 是 TEAC Corporation 的子公司。FW-1884 于 2003 年推出,是第一个在 IEEE 1394 总线上为音频和音乐单元设计的 TASCAM 产品。同时,FE-8 作为 FW-1884 的扩展单元推出。FW-1082 于 2005 年推出,是一款比 FW-1884 更小的控制台模型。FW-1804 于 2006 年推出,是一款机架式模型。上述型号由 TASCAM 和 Frontier Design Group 的联合项目提供。

这些型号通过四元组消息序列传输硬件状态,而不同型号之间的传输方式不同。大多数型号在 PCM 帧中异步复用传输消息。FE-8 是一个例外,它通过异步事务传输到注册地址的消息。

ALSA firewire-tascam 驱动器

Linux 音频子系统,即 ALSA,为除 FE-8 以外的单元提供可加载内核模块(snd-firewire-tascam)作为驱动程序。该驱动程序维护音频帧和状态消息以及 MIDI 传输的同步包流。

驱动程序允许用户空间应用程序通过执行系统调用来检索缓存的状态和读取状态更改的通告。为此,hitaki 库SndTascam GObject 类。该类实现了 TascamProtocol GObject 接口,该接口也由 asynch::TascamExpander 结构实现,因此也可以支持 FE-8。

无论如何,该 crate 是运行时程序配置数字信号处理功能和控制台表面的补充实现,这些功能在驱动程序中未实现。

依赖关系

这是依赖的 crate 列表。

glib 和 hinawa crate 需要一些底层系统库

Linux FireWire和声音子系统的功能通过hinawa和hitaki封装和库来与IEEE 1394总线上的节点通信,因此该封装不可移植。

支持型号

这是当前支持的型号列表。

  • Tascam FW-1884
  • Tascam FW-1082
  • Tascam FW-1804
  • Tascam FE-8

封装状态

该封装由ALSA GObject Introspection团队为snd-firewire-ctl-services项目开发和维护,目前尚不稳定。包含的Rust元素可能在不提供向后兼容性的情况下发生变化。

许可证

该封装在遵循反向工程条款的情况下,按照GNU Lesser General Public License v3.0或更高版本发布。

支持

如果在使用过程中发现问题,请在该链接处提交:https://github.com/alsa-project/snd-firewire-ctl-services/

免责声明

协议的实现是通过反向工程的方式进行的;通过嗅探目标设备连接的IEEE 1394总线,并分析设备与硬件供应商提供的驱动程序之间的通信。由于开发者以黑盒方式工作,因此与您的设备不兼容是正常的。

实用程序

一些程序位于'src/bin'目录下。

tascam-config-rom-parser.rs

该程序解析TASCAM专用配置ROM的内容,然后打印信息。

在没有任何命令行参数的情况下,它将打印帮助信息并退出。

$ cargo run --bin tascam-config-rom-parser
Usage:
  tascam-config-rom-parser CDEV

  where:
    CDEV:       The path to special file of firewire character device, typically '/dev/fw1'.

请使用firewire字符设备运行参数

$ cargo run --bin tascam-config-rom-parser /dev/fw1
...

tascam-hardware-info.rs

该程序通过TASCAM定义的协议从目标设备的节点检索信息,然后打印信息。

在没有任何命令行参数的情况下,它将打印帮助信息并退出。

$ cargo run --bin tascam-hardware-info
Usage:
  tascam-hardware-info CDEV

  where:
    CDEV:       The path to special file of firewire character device, typically '/dev/fw1'.

请使用firewire字符设备运行参数

$ cargo run --bin tascam-hardware-info /dev/fw1
...

依赖关系

~6.5MB
~140K SLoC