Set app volumes with real sliders! deej is an Arduino & Go project to let you build your own hardware mixer for Windows and Linux
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 |
deej
deej是一款专为Windows和Linux个人电脑设计的开源硬件音量混音器。它让你能够像DJ一样使用真实的推杆滑块,无缝地控制不同应用程序(如音乐播放器、游戏和语音聊天)的音量,无需中断你的工作。
如果你需要帮助或有任何问题,请加入deej Discord服务器!
新功能: 进行中的deej常见问题解答(FAQ)!
deej由一个用Go编写的轻量化桌面客户端组成,以及基于Arduino的简单且经济实惠的硬件搭建方案。查看我们社区成员构建的一些版本!
下载最新发布版 | 视频演示 | Tech Always的建造视频

悄悄话: 没有3D打印机?没问题!你可以用纸板、鞋盒甚至面包板来建造deej哦! :)
目录
特性
deej使用Go编写,并以便携式执行文件形式发布,不需要安装程序。
- 将应用程序绑定到不同的推杆滑块
- 同一推杆可绑定多个应用(例如所有游戏)
- 绑定主通道
- 绑定“系统声音”(在Windows上)
- 通过名称绑定特定音频设备(在Windows上)
- 绑定当前活动的应用(在Windows上)
- 绑定其他未分配的所有应用
- 控制麦克风输入电平
- 轻量级桌面客户端,内存占用约10MB
- 从系统托盘运行
- 提供有用的通知,以便在出现问题时通知你
寻找旧版Python版本吗? 它已不再维护,但你可以在
legacy-python分支中找到它:https://github.com/omriharel/deej/tree/legacy-python。
工作原理
硬件
- 推杆滑块连接到Arduino Nano/Uno主板上的5个(或任意数量)模拟引脚。它们从主板的5V输出供电(见电路图)
- 主板通过USB电缆连接到PC
电路图

软件
推杆映射(配置)
deej使用名为config.yaml的简单YAML格式配置文件,与deej可执行文件放在一起。
配置文件确定哪些应用程序(和设备)映射到哪个推杆,以及用于连接Arduino主板的参数以及其他用户偏好设置。
当其内容更改时,此文件会自动重新加载,因此你可以在不重启deej的情况下动态更改应用程序映射。
如下所示:
slider_mapping:
0: master
1: chrome.exe
2: spotify.exe
3:
- pathofexile_x64.exe
- rocketleague.exe
4: discord.exe
# 如果希望控制器反转(即顶部为0%,底部为100%),将此设置为true
invert_sliders: false
# 用于连接到arduino板的设置
com_port: COM4
baud_rate: 9600
# 根据硬件质量调整信号噪声抑制程度
# 支持的值有 "low"(优质硬件)、"default"(常规硬件) 或 "high"(差、噪声大的硬件)
noise_reduction: default
master是特殊选项,用于控制系统的主音量(使用默认播放设备)mic是特殊选项,用于控制麦克风的输入电平(使用默认录音设备)deej.unmapped是特殊选项,用于控制未绑定到任何推杆的所有应用(“其他所有应用”)- 在Windows上,
deej.current是特殊选项,用于控制当前焦点应用的音量 - 在Windows上,你可以指定设备的完整名称,例如
Speakers (Realtek High Definition Audio),将其音量级别绑定到推杆。这不会与默认的master和mic选项冲突,适用于输入和输出设备。- 确保使用菜单中左键单击任务栏扬声器图标时显示的完整设备名称
- 所有名称大小写不敏感,意味着
chrome.exe和CHROME.exe都会生效 - 你可以创建进程名列表(使用数组)来:
- 使用一个推杆控制多个应用
- 选择群组中当前正在运行的任何进程(例如让一个推杆控制你在玩的任何游戏)
自己动手做!
建造deej非常简单。你需要一些相对便宜的零件——这是一个很好的入门项目(也是我个人的第一个Arduino项目)。记住,如果你需要帮助或有未在此解答的问题,你总是可以加入deej Discord服务器。
为自己建造deej,或者作为送给你的游戏伙伴的超棒礼物!
常见问题
我开始努力编写一个关于deej的详细FAQ页面,涵盖了许多基本和高级主题。
目前仍然_非常初步_,但我很高兴分享它现在的样子,希望能解答你的一些疑问。
鼓励在我们的社区Discord提供FAQ反馈哦!
建造视频
如果你喜欢看视频而不是阅读,来自YouTube频道Tech Always的Charles制作了一个出色的视频,涵盖了自己建造deej的基础知识,包括零件、成本、组装和软件。强烈推荐观看!
材料清单
- 一块Arduino Nano、Pro Micro或Uno主板
- 我官方建议使用Nano或Pro Micro,因为它们体积更小,USB连接器更友好,有更多的模拟引脚。而且它们更便宜
- 你也可以使用任何具有Serial over USB接口的开发板
- 几个推杆电位器,最多不超过你自由模拟引脚的数量(较便宜的那种每个大约1-2美元,通常带有标准的10K欧姆变阻器。这些对于这个项目来说应该工作得很好)
- 重要提示: 请确保获取线性推杆,而不是对数推杆!检查产品描述
- 你也可以使用圆形旋钮,如果你喜欢的话
- 一些电线
- 任何类型的盒子来把所有东西装在一起。这个项目不需要3D打印机! 只用一片纸板或一只鞋盒就可以很好地完成工作。话虽如此,如果你有3D打印机,继续阅读...
Thingiverse集合
随着众多不同的3D打印设计加入我们的社区展示区,我们觉得创建一个Thingiverse收藏集供您浏览是合适的。如果你有一台3D打印机,欢迎使用其中的设计来构建你的项目。
你也可以提交你自己的设计以添加到收藏集中。无论如何,如果你把你的设计上传到Thingiverse,请给它加上一个
deej标签,以便其他人更容易找到。
搭建流程
- 根据schematic连接所有部件。
- 使用多用表测试确认滑块已正确连接。
- 将Arduino芯片刷入
arduino\deej-5-sliders-vanilla中的草图。- 重要: 如果你的滑块数量多于或少于5个,必须编辑草图以匹配你的配置。
- 刷机后,检查串行监视器。你应该能看到由竖线字符(
|)分隔的持续值流,例如:0|240|1023|0|483。- 当你移动滑块时,其对应的值应在0和1023之间变化。
- 恭喜,你现在可以运行deej可执行文件了!
如何运行
需求
Windows
- Windows操作系统
Linux
- 安装
libgtk-3-dev,libappindicator3-dev和libwebkit2gtk-4.0-dev以支持系统托盘。目前未发布预编译的Linux二进制文件,所以你需要从源代码自行构建。如果有对预编译版本的需求,请告诉我!
下载与安装
- 转至发行版页面,下载最新版本的可执行文件和配置文件(
deej.exe和config.yaml)。 - 将它们放在电脑上的同一目录下。
- (可选,Windows用户)创建
deej.exe快捷方式并复制到%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup,让deej在启动时运行。
从源代码构建
如果你不想下载编译好的可执行文件,或者想扩展或根据需要修改deej,可以克隆仓库并自己构建。你只需要一台装有Go 1.14(或更高版本)环境的电脑。如果选择这条路,请务必查看pkg/deej脚本。
和其他Go包一样,你也可以使用go get工具:go get -u github.com/omriharel/deej。请注意,现在代码包位于pkg/deej目录中,在其他项目中导入时需要从此处导入。
如需帮助,敬请加入我们的Discord服务器。
社区
虽然deej是一个相对较新的项目,但一个充满活力和创意的社区正在迅速发展。欢迎加入deej Discord服务器,或在社区展示中查看我们成员创造的一系列酷炫创新的搭建作品。
服务器也是提问、建议功能或报告问题的好地方(当然,你也可以选择在GitHub上操作)。
捐赠
如果你热爱deej并希望支持这个项目,可以通过以下链接进行捐赠。请不要感到有义务捐款——构建项目并与朋友分享同样意义重大!非常感谢。
贡献
许可证
deej遵循MIT许可证。