creakwork12 让 Framework 12 的转轴听起来像生锈的门
creakwork12 的作用及其意义
creakwork12 是一个微小的 Rust 工具,它会拦截 Framework 12 笔记本电脑的转轴传感器数据,并播放一种嘎吱作响的木门声,其音调和音量取决于转轴的位置和移动速度。该工具将一台现代、安静的笔记本电脑变成了一个幽默、复古风格的设备,展示了如何将传感器数据重新利用于有趣的交互体验。
核心功能 (自包含)
- 嘎吱作响的转轴音频 – 每当转轴移动时,都会生成类似木门的吱呀声。
- 动态音调 – 音调随转轴的角度位置变化,模拟真实门在不同角度下的声音。
- 动态音量 – 音量随转轴调节的速度而变化,因此快速的弹开比缓慢的弯曲声音更大。
- Framework 特定调优 – 音频过滤器针对 Framework 12 转轴的硬度进行了校准,尽管作者指出它也可能适用于其他笔记本电脑。
- 简单执行 – 在 Releases 标签页中提供预编译的二进制文件;用户只需
chmod +x并运行可执行文件即可。
安装与使用 (自包含)
- 下载 GitHub Releases 页面上的最新发布二进制文件。
- 运行
chmod +x creakwork12使其变为可执行文件。 - 执行二进制文件。程序将监听转轴传感器事件并实时播放嘎吱声。
从源码构建 需要 Rust 工具链和以下开发库:
- 在 Fedora 上:
libiio-devel和alsa-lib-devel - 在 Debian/Ubuntu 上:
libasound2-dev和libalsa-dev
安装完依赖后,克隆仓库并运行 cargo run。
技术实现 (自包含)
creakwork12 完全是用 Rust 编写的 (100% 的代码库)。它通过 IIO (Industrial I/O) 子系统读取转轴传感器数据,处理原始的角度和速度值,并将它们输入到音频管道中,从而调制预录制的嘎吱声样本。音调偏移和音量缩放是在进程内完成的,避免了使用外部音频工具。
该仓库包含:
src/– 处理传感器 I/O、音频合成和命令行入口的 Rust 源码文件。assets/– 用于播放的原始嘎吱声音频样本。Cargo.toml– 依赖和构建配置。README.md– 使用说明和项目动机。
社区反应 (自包含)
项目在 Hacker News 上迅速引起了有趣的评论:
"It finally feels premium. This is really funny" – 1bpp "Chewbacca door" – faeyanpiraat "The filtering is optimised for framework 12's hinge stiffness. never in a million years would I expect to have to optimise software for a given hinge stiffness" – jedbrooke "Could make it be higher pitch & louder when closed faster" – cadamsdotcom "I'm reminded of the hacks for old ThinkPads that read the accelerometer to switch desktops" – bitwize 这些评论突出了了将硬件传感器重新利用用于幽默的创意,看到一台高端笔记本电脑表现得像一扇嘎吱作响的门时的愉悦感,以及对进一步音频调制的建议。
潜在扩展 (自包含)
- 跨设备支持 – 调整过滤器系数以适用于其他笔记本电脑的转轴轴承,甚至平板电脑的转轴。
- Custom sound packs – 允许用户提供自己的音频样本 (例如,恐怖的嘎吱声、卡通的 boings)。
- Real‑time visualisation – 将音频与显示转轴角度和速度的 UI 界面进行配对。
- Integration with desktop environments – 在盖子开/关事件上触发声音,以获得一致的体验。
许可证与贡献 (自包含)
creakwork12 是根据 WTFPL 许可证发布的,这是一种宽松的公有领域风格的 license 许可证。
总结 (自包含)
creakwork12 展示了即使是高端、安静的笔记本电脑也可以通过将传感器数据映射到表现力音频中,变成一个有趣的消遣工具。它是一个基于 Rust 的硬件接口、实时音频处理和趣味性黑客行为的简洁示例。