📖 关于项目
OsynicMIDI 是一个轻量级、高效的 MIDI 到键盘映射工具,使用 Rust 编写。它允许你用任何 MIDI 设备(如电子琴、鼓垫、MIDI 控制器)控制计算机上的键盘输入。
无论你是游戏玩家、音乐制作人,还是想要创意地使用 MIDI 设备,OsynicMIDI 都能为你提供简单而强大的解决方案。
为什么选择 OsynicMIDI?
✅ 简单易用 - 5秒快速启动,无需复杂配置
✅ 强大灵活 - 支持多种映射模式和自定义配置
✅ 现代界面 - 交互式菜单,使用箭头键和回车按钮
✅ 库 + CLI - 既可作为独立工具,也可嵌入你的 Rust 项目
✅ 可靠稳定 - 经过充分测试,生产就绪
✅ 开源免费 - MIT 许可,完全开源
⚡ 快速开始
1️⃣ 安装
或从源码编译:
2️⃣ 运行
3️⃣ 选择
用箭头键 ↑ ↓ 选择配置和设备,按 Enter 确认!
就这么简单!现在你可以用 MIDI 设备弹出键盘按键了 🎉
✨ 特性
🎹 MIDI 映射
- 两种映射模式
- 音符模式:每个 MIDI 音符映射到特定按键
- 八度模式:按八度和音高自动映射
🎯 智能设备管理
- 自动发现所有连接的 MIDI 设备
- 基于设备名称的可靠连接(不依赖不稳定的索引)
- 支持多个 MIDI 设备
⚙️ 灵活配置
- JSON 格式的可读配置文件
- 预设配置开箱即用
- 易于创建自定义映射
- 支持力度阈值过滤
🖥️ 现代化 CLI
- 交互式菜单选择(类似 Vite)
- 箭头键导航,直观易用
- 支持非交互式模式用于脚本和自动化
- 完整的命令行帮助系统
📚 全面文档
- 完整的 API 文档
- 详细的配置指南
- 丰富的使用示例
- 架构和设计文档
📦 安装
使用 Cargo(推荐)
从源码编译
编译后的二进制文件位于:
- 开发版本:
target/debug/osynic-midi.exe - 发布版本:
target/release/osynic-midi.exe
系统要求
- Rust:1.85.0 或更高版本
- 操作系统:Windows、Linux 或 macOS
- MIDI 设备:至少一个 MIDI 输入设备(可选,支持虚拟 MIDI 端口)
🚀 使用指南
基本命令
# 快速使用
# 列出所有连接的 MIDI 设备
# 列出所有可用的配置文件
# 启动交互式 MIDI 映射
# 创建一个新的映射配置文件(交互式)
# 从本地文件加载配置文件
# 使用指定配置启动
# 指定映射模式(notes 或 octaves)
# 同时指定配置和模式(非交互式)
# 从本地路径加载配置和指定模式
交互式菜单
运行 osynic-midi start 后,你会看到三个选择菜单:
? Select configuration file:
❯ midi_config.json
midi_config_10ka.json
midi_config_10kab.json
...
操作方式:
↑/↓- 上下移动Enter- 确认选择Ctrl+C- 取消
工作流程
-
检查设备
确保你的 MIDI 设备已识别
-
选择配置方式
方式 A:使用现有配置(推荐新手)
方式 B:创建新配置(推荐自定义)
按照提示逐步创建你的映射配置
方式 C:加载本地配置文件
指定配置文件的完整路径(可以在任何位置)
-
启动映射
按照交互式提示完成设置
-
开始使用 现在你可以使用 MIDI 设备弹出键盘按键了!
📚 文档
完整文档位于 docs/ 目录:
| 文档 | 内容 |
|---|---|
| 快速开始 | 5分钟入门指南 |
| CLI 完整指南 | 命令行工具的详细使用说明 |
| 库 API 文档 | Rust 库的完整 API 参考 |
| 架构设计 | 项目结构和设计说明 |
| 配置指南 | JSON 配置文件详细说明 |
| 更新日志 | 版本历史和更新内容 |
| 故障排除 | 常见问题和解决方案 |
💡 示例
示例 1:快速启动
示例 2:库中使用
use ;
async
详见 examples/ 目录获取更多示例。
🎯 使用场景
🎮 游戏玩家
- 用 MIDI 键盘控制游戏(Osu!mania、节奏游戏等)
- 创建专业游戏外设映射
🎵 音乐制作人
- 用 MIDI 控制器控制 DAW
- 创建自定义快捷键映射
💻 开发者
- 作为库集成到 Rust 项目中
- 创建专业的 MIDI 应用程序
🏠 爱好者
- 创意使用 MIDI 设备
- 自动化和控制应用程序
🔧 配置示例
Osu!Mania 风格
钢琴键盘式
更多配置见 配置指南。
🤝 贡献
欢迎贡献!无论是下列哪一种方式,我们都很感谢:
- 🐛 报告 Bug
- 💡 提出新想法
- 📝 改进文档
- 🔧 提交代码修复
请通过 GitHub Issues 或 Pull Requests 与我们联系。
❓ 常见问题
Q: 支持哪些操作系统?
A: Windows、Linux 和 macOS 都支持。
Q: 可以不用 MIDI 设备使用吗?
A: 可以使用虚拟 MIDI 端口(如 Windows 的 loopMIDI)进行测试。
Q: 支持多个 MIDI 设备吗?
A: 目前一次只能使用一个设备,但可以快速切换。
Q: 如何创建自定义配置?
A: JSON 格式非常简单。参考 配置指南。
Q: 可以在脚本中使用吗?
A: 可以!使用 -c 和 -m 参数运行非交互式模式。
更多问题见 故障排除指南。
📊 项目状态
- ✅ 稳定版本
- ✅ 生产就绪
- ✅ 完整文档
- ✅ 活跃维护
📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
🙏 致谢
感谢以下项目的支持:
📮 联系方式
- 📧 Email: zoneherobrine@gmail.com
- 🐙 GitHub: @osynicite
- 🌐 项目链接: osynic_midi