creakwork12 让 Framework 12 的转轴听起来像生锈的门

creakwork12 的作用及其意义

creakwork12 是一个微小的 Rust 工具,它会拦截 Framework 12 笔记本电脑的转轴传感器数据,并播放一种嘎吱作响的木门声,其音调和音量取决于转轴的位置和移动速度。该工具将一台现代、安静的笔记本电脑变成了一个幽默、复古风格的设备,展示了如何将传感器数据重新利用于有趣的交互体验。


核心功能 (自包含)

  • 嘎吱作响的转轴音频 – 每当转轴移动时,都会生成类似木门的吱呀声。
  • 动态音调 – 音调随转轴的角度位置变化,模拟真实门在不同角度下的声音。
  • 动态音量 – 音量随转轴调节的速度而变化,因此快速的弹开比缓慢的弯曲声音更大。
  • Framework 特定调优 – 音频过滤器针对 Framework 12 转轴的硬度进行了校准,尽管作者指出它也可能适用于其他笔记本电脑。
  • 简单执行 – 在 Releases 标签页中提供预编译的二进制文件;用户只需 chmod +x 并运行可执行文件即可。

安装与使用 (自包含)

  1. 下载 GitHub Releases 页面上的最新发布二进制文件。
  2. 运行 chmod +x creakwork12 使其变为可执行文件。
  3. 执行二进制文件。程序将监听转轴传感器事件并实时播放嘎吱声。

从源码构建 需要 Rust 工具链和以下开发库:

  • 在 Fedora 上:libiio-develalsa-lib-devel
  • 在 Debian/Ubuntu 上:libasound2-devlibalsa-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 的硬件接口、实时音频处理和趣味性黑客行为的简洁示例。

Sources