5 个版本 (3 个破坏性更新)
新版本 0.5.0 | 2024年8月23日 |
---|---|
0.4.0 | 2023年6月11日 |
0.3.0 | 2022年7月10日 |
0.2.1 | 2022年6月12日 |
0.2.0 | 2022年6月12日 |
#123 在 可视化
5MB
5K SLoC
咖啡音乐视觉化工具
用 Rust 编写的个人 GUI + TUI 音乐视觉化工具。
关于此项目
我决定编写这个视觉化工具,因为现有的项目不符合我的需求。有些太慢,有些没有我喜欢的那种视觉化效果,有些占用的 CPU 资源太多,等等。
这个项目也作为我的实验场,所以你会在源文件中看到很多奇怪的实现。
0.5.0 版本的新功能
终端和 minifb 模式已经移动到它们自己的功能。您需要使用 --features terminal
和/或 --features minifb
重新编译才能使用它们。
0.5.0 版本引入了 Winit 作为 Coffeevis 的默认窗口后端。Cvis 仍然可以通过 --minifb 标志使用 minifb 启动。Coffeevis 现在默认也支持 Wayland。
应用程序现在有一套新的视觉化工具,称为 Milky。这些视觉化工具(应该)比默认的 Classic 视觉化工具更艺术化和多彩。目前该套中只有 1 个视觉化工具。我计划在 0.6.0 版本之前设计更多。
通过性能改进,Cvis 现在应该使用更少的 CPU 资源,空闲时更少。
示例
平台支持
Coffeevis 为 Linux 构建,并在 Linux 上运行。Windows、MacOS 和 BSD 的支持不可用。
安装
运行 cargo install coffeevis
要在终端中运行 coffeevis,使用
cargoinstall coffeevis --功能终端
如果出于某种原因您想使用 minifb,请使用
cargoinstall coffeevis --功能minifb
配置
Coffeevis 不会记住设置也不会生成配置文件(除非请求,否则不会实现此功能)。
为了解决这个问题,创建一个用户脚本,使用标志运行 coffeevis
例如
#!/bin/bash
/path/to/coffeevis --fps 60 --no-auto-switch --size 40x40
标志
Coffeevis 支持启动时的临时选项
选项 | 值(示例) | 描述 |
---|---|---|
--minifb | 使用 minifb 打开窗口(coffeevis 默认使用 winit) | |
--x11 | 在 X11 中运行(默认为 Wayland) | |
--ascii --block --braille |
在终端中运行 | |
--no-auto-switch | 禁用自动视觉化工具切换 | |
--size | 80x80 | 在窗口模式下设置分辨率 |
--scale | 2 | 在窗口模式下放大 |
--fps | 60 | 设置刷新率 |
--resizable | 允许在窗口模式下调整大小 | |
--max-con-size | 50x50 | 在终端模式下设置最大分辨率 |
--vis | 频谱 | 使用指定的可视化器启动coffeevis |
注意
启动coffeevis时,它将捕获您的默认音频源,请使用音频配置工具将所需源定向到coffeevis(例如,pavucontrol
)。
在Wayland上,coffeevis无法将其自身置于顶层,因此您需要依赖于外部工具。例如,在KDE Plasma上,您可以使用窗口规则功能。
当输入静默时,可视化器将尝试放大输入,以使可视化器不会变得无聊。
Coffeevis直接打印文本到stdout,渲染可能取决于您的终端。
建议使用支持GPU加速的终端(例如Alacritty、Kitty、Wezterm等)。
控制台模式中内置了最大分辨率(默认:50x50)。如果终端尺寸大于限制,Coffeevis将在屏幕中央渲染。
键盘快捷键
全局
键 | 描述 |
---|---|
空格 | 遍历可视化器(循环) |
b | 向后遍历(循环) |
Esc | 退出 |
/ | 重置所有设置 |
- / + | 减小/增加输入音量 |
[ / ] | 减小/增加频谱粗糙度 |
; / ' | 减小/增加输入中的样本数量(仅适用于某些基于波的视觉化器) |
\ | toggles auto switching (默认: 开启,8秒) |
n | 遍历一组可视化器(循环) |
终端
键 | 描述 |
---|---|
. | 在ASCII渲染、块渲染和点字渲染之间切换 |
9 / 0 | 减小/增加最大分辨率 |
7 / 8 | 减小/增加fps 5(默认:60) |
1 ... 6 | 将fps更改为10 ... 60 |
请不要看我的代码。我不是在那里隐藏任何东西,它都是垃圾代码,我不知道如何做GPU编程,所以它都是CPU代码uh uhhh
依赖关系
~3–36MB
~569K SLoC