ShawzinBot:在星际战甲沙温琴上演奏 MIDI 文件
【免费下载链接】ShawzinBotConvert a MIDI input to a series of key presses for the Shawzin项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBot
不用练手指。把一个 .mid 文件加载进 ShawzinBot,点播放,切回 Warframe,屏幕里的沙温琴就会跟着 MIDI 把整首歌弹完。这个开源 C# 小工具把 MIDI 音符事件翻译成一串真实按键,不会弹琴的人也能在游戏里完整演奏曲目。
什么时候会想用上 ShawzinBot
你可能在直播或游戏里见过这种画面:别人在飞船餐桌旁用沙温琴弹一整首歌,你自己在游戏里试了三分钟,光找按键组合就放弃了。ShawzinBot 接住的就是这个处境——旋律的活由 MIDI 出,你的活只有两件事:提供曲谱(文件,或者 MIDI 键盘的信号),以及保持游戏窗口在前台。之后按下去的每个键都是它在替你按。
ShawzinBot 首次运行:克隆与运行
git clone https://gitcode.com/gh_mirrors/sh/ShawzinBot环境要求不高:Windows 系统 + .NET Framework 4.7.2,框架版本在 packages.config 里声明为 net472。软件不需要安装,拿到编译好的 ShawzinBot.exe 后双击就能跑。想自己编译的话,用 Visual Studio 打开 ShawzinBot.sln 直接构建即可,组件不要拆散存放。
功能讲解:ShawzinBot 播放 MIDI 的四个开关
加载文件并播放
解决"我手上已有曲子文件,想直接弹"的问题。点左上角的文件夹图标按钮,选 .mid 或 .midi 文件,顶部会显示曲名和进度条,中间那个橙色圆形按钮就是播放。加载完成后把窗口切回 Warframe,它就开始按。
MIDI Tracks 筛选音轨
解决"MIDI 里轨太多,伴奏太杂"的问题。多轨文件加载后,"MIDI Tracks" 区域会为每条音轨生成一个复选框,第一条轨默认勾选。把不需要的轨取消掉,只留主旋律,弹出来会干净很多。
接 MIDI 设备、调播放速度
解决"我想用实体键盘弹,或者原速跟不上"的问题。"MIDI Input Device" 下拉框列出系统里检测到的 MIDI 设备(电子琴、合成器、虚拟 MIDI 通道都行),选不到设备就点右侧的刷新按钮。"Settings" 区域里的 "Playback speed" 下拉框提供 0.25x 到 2x 的倍速,默认是 1x。
Transpose notes 与 Enable vibrato
解决"曲目里有沙温琴够不着的音"的问题。ShawzinBot 的音符映射覆盖 C3 到 D5,"Transpose notes"(默认开)会把超出这个范围的音符自动移进可演奏区间;"Enable vibrato"(默认开)则给个别需要颤音的音符补上 Space 键的颤音动作。
遇到问题时的几条注意
注意:游戏里沙温琴当前音阶,必须和软件界面 "Scale: xxx" 一行显示的音阶一致,不一致时每个音都会错位,这是新手踩得最多的坑。
注意:按键只在 Warframe 窗口处于前台焦点时发送,ActionManager.cs 里每个音符下发前都会检查窗口标题,弹到一半切走,播放会停下。
注意:沙温琴本身对同时按下的多个音支持不好,某段旋律发虚、卡键时,回 MIDI 编辑器把同时音错开几毫秒再试。
如果关掉 Transpose notes,超出 C3~D5 范围的音符会直接不出声,而不是报错。
进阶玩法与资源
想改指法映射的话,音符到按键组合的对照表就在 ActionManager.cs 的 shawzinNotes 里,MIDI 加载与播放逻辑在 MainViewModel.cs,底层的 MIDI 解析用的是 DryWetMidi 5.1.1。平时多攒一些 .mid 文件,曲库就是自己慢慢攒出来的。
ShawzinBot 的价值很朴素:你负责给 MIDI,它负责按键。现在就可以试——找一首简单的 .mid,加载、对齐音阶,把第一首完整弹完。
【免费下载链接】ShawzinBotConvert a MIDI input to a series of key presses for the Shawzin项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考