6个版本
0.3.1 | 2024年3月1日 |
---|---|
0.3.0 | 2024年2月25日 |
0.2.1 | 2023年10月29日 |
0.2.0 | 2023年4月18日 |
0.1.2 | 2022年8月29日 |
76 在 硬件支持
每月 164 次下载
1MB
17K SLoC
该库crate包括数字接口通信引擎(DICE)解决方案和应用设备以及连接到IEEE 1394总线的设备的协议实现
数字接口通信引擎(DICE)
TC Applied Technologies(TCAT)于2003年成立,作为TC集团数字音频微电子和软件技术部门拆分的结果。首款产品是DICE II ASIC,作为单芯片IEEE 1394音频解决方案,适用于专业和消费级应用。DICE II ASIC由WaveFront Semiconductor(原名Alesis Semiconductor)独家制造和分销。DICE Jr(TCD2200 ASIC)和DICE Mini(TCD2210 ASIC)似乎于2005年左右发布。2014年推出的DICE III(TCD3070 ASIC)比之前的性能更好。
DICE似乎表示包括在ASIC中的硬件抽象层和软件堆栈,可以通过公共应用程序编程接口操作。
当音乐集团于2015年收购TC集团时,TCAT的所有权也转移了。该集团旗下的公司之一CoolAudio International分销TCAT ASIC以及WaveFront IC。2017年,音乐集团将其名称更改为Music Tribe。
TCAT协议
TCAT为两种类型的协议提供了软件堆栈选项;TCAT协议和mLAN(音乐局域网)/OGT(开放通用传输器)协议。DICE II ASIC被用于雅马哈的第三代mLAN;2007年推出的Yamaha n8/n12,2008年推出的Steinberg MR816X/MR816CSX。
该crate仅支持TCAT协议,因为mLAN/OGT协议是封闭的。该协议分为两部分;公共和扩展。所有基于DICE的设备都支持公共协议,而扩展仅由DICE Jr和DICE mini支持。
该协议的显著特点是管理节点内存空间的部分。部分的内容表示节点的配置。当节点自愿更改配置或通过写入事务更改其他节点的配置时,节点会生成包含对应于该部分的位标志的四元组通知。
TC Electronic对其Konnekt系列进行了协议设计的模拟,而一些厂商则基于简单的异步事务实现了自己的协议。
ALSA dice驱动程序
Linux声音子系统,即ALSA,提供了可加载的内核模块(snd-dice
)作为单元的驱动程序。驱动程序维护音频帧和MIDI消息的同步数据包流,以及通过异步事务进行的通知机制,因为ASIC的其他内部功能,如数字信号处理,可以直接由用户空间应用程序操作。
驱动程序允许应用程序通过执行系统调用来读取通知。为此,hitaki库有SndDice
GObject类,而该包仍然独立于库,以便将读取通知消息的任务委托给应用程序程序。
该包是运行时程序的补充实现,用于操作除同步数据包流之外的内联函数。
依赖项
这是依赖项列表。
glib和hinawa包需要一些底层系统库
Linux FireWire子系统的功能通过hinawa包和库调用,以与IEEE 1394总线上的节点通信,因此该包不可移植。
支持的型号
这是目前支持的型号列表。
- M-Audio ProFire 2626
- M-Audio ProFire 610
- Avid Mbox 3 Pro
- TC Electronic Konnekt 24d
- TC Electronic Konnekt 8
- TC Electronic Studio Konnekt 48
- TC Electronic Konnekt Live
- TC Electronic Desktop Konnekt 6
- TC Electronic Impact Twin
- TC Electronic Digital Konnekt x32
- Alesis MultiMix 8/12/16 FireWire
- Alesis iO 14
- Alesis iO 26
- Alesis MasterControl
- Lexicon I-ONIX FW810s
- Focusrite Saffire Pro 40
- Focusrite Liquid Saffire 56
- Focusrite Saffire Pro 24
- Focusrite Saffire Pro 24 DSP
- Focusrite Saffire Pro 14
- Focusrite Saffire Pro 26
- PreSonus FireStudio
- PreSonus FireStudio Project
- PreSonus FireStudio Tube
- PreSonus FireStudio Mobile
- Weiss Engineering ADC2
- Weiss Engineering Vesta
- Weiss Engineering DAC2, Minerva
- Weiss Engineering AFI1
- Weiss Engineering INT202, INT203, DAC1 FireWire选项卡
- Weiss Engineering DAC202, Maya
- Weiss Engineering MAN301
对于其他型号,提供了通用和扩展协议的实现,而不考虑厂商的定制。
包的状态
该包由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'目录下可用。
tcat-general-parser.rs
该程序根据通用协议从目标设备的节点检索信息,然后打印信息。
如果没有命令行参数,则打印帮助信息并退出。
$ cargo run --bin tcat-general-parser
Usage:
tcat-general-parser CDEV
where:
CDEV: The path to special file of firewire character device, typically '/dev/fw1'.
请用参数运行以启动火线字符设备。
$ cargo run --bin tcat-general-parser /dev/fw1
...
tcat-extension-parser.rs
该程序根据协议扩展从目标设备节点检索信息,然后打印信息。
如果没有命令行参数,则打印帮助信息并退出。
$ cargo run --bin tcat-extension-parser
Usage:
tcat-extension-parser CDEV
where:
CDEV: The path to special file of firewire character device, typically '/dev/fw1'.
请用参数运行以启动火线字符设备。
$ cargo run --bin tcat-extension-parser /dev/fw1
...
tcat-config-rom-parser.rs
该程序解析配置ROM的内容,然后打印其中的信息。
如果没有命令行参数,则打印帮助信息并退出。
$ cargo run --bin tcat-config-rom-parser
Usage:
tcat-config-rom-parser CDEV | "-"
where:
CDEV: the path to special file of firewire character device, typically '/dev/fw1'.
"-" use STDIN for the content of configuration ROM to parse. It should be aligned to big endian.
请用参数运行以启动火线字符设备。
$ cargo run --bin tcat-config-rom-parser -- /dev/fw1
...
或通过STDIN提供配置ROM的内容
$ cat /sys/bus/firewire/devices/fw0/config_rom | cargo run --bin tcat-config-rom-parser -- -
...
在上面的情况下,内容应对齐为大端顺序。
依赖关系
~6.5MB
~135K SLoC