软件介绍
自动演奏程序:读 MIDI 曲库,编译成按键动作,再用 Windows 的 SendInput 发给屏幕上的口琴。纯 Python 标准库写成,零第三方依赖。
歌曲说明
第一次打开时,程序会在 exe 旁边自动建一个「曲库」文件夹,并放进一首示例曲(小星星), 所以双击之后立刻就有东西可弹。想弹别的曲子:进「内置社区分享库」页搜索下载, 或者把自己的 .mid 文件丢进那个「曲库」文件夹里。
Windows 可能会弹"未知发布者"的警告(这是没有购买代码签名证书的必然结果,点"仍要运行" 即可);少数杀毒软件会误报 PyInstaller 打包的程序,需要加白名单。
软件功能
图形界面
双击 run.bat 打开(用 pythonw 启动,不弹黑框)。左侧是浮岛式侧边栏,
页面包括演奏、收藏夹、热键、内置社区分享库、日志和设置。
演奏页:曲库列表、当前曲目、当前音与要按的键、可拖动的位置条(拖到哪就从哪开始弹)、
播放控制、跳过前奏、循环、连奏防断音、速度滑条、倒计时、演奏预览
收藏夹页(Soundpad 式两栏):左栏收藏夹列表,右栏曲子。收藏夹只存在 hca.json 里,
不挪动曲库文件;一首曲子可以进多个收藏夹;双击曲目直接开始演奏
热键页:任意条数的「组合键 ↔ 曲目」,现按现录,按下立即切换演奏
内置社区分享库页:搜索 B 站三角洲口琴谱社区,列下载量/点赞,下载后转成 MIDI 存入曲库
曲库管理
命名、分类、批量删除、批量入夹。分类就是曲库下的子文件夹(旧版和游戏只读一层,
看不到子文件夹里的曲子,正好当仓库用;本程序两层扫描,照常可选可弹)。
删除永远走系统回收站(hca/trash.py 用 SHFileOperationW + FOF_ALLOWUNDO),可还原。
内置直连的 MIDI 下载站
程序里那个「内置社区分享库」页就是内置直连的谱面下载站,不经过我们自己的任何服务器, 也不要求你注册或配置:打开就能搜、能下载。
这个方向是单向的:只下载,不上传。 你本地曲库里的曲子不会被传上去 —— 整个项目里 只有 hca/bili.py 会联网,它只发五类请求:拿游客身份的两个 POST(请求体是空的), 以及搜索、统计、下载三个 GET。没有 PUT,没有multipart,没有任何文件上传。
网站:B 站《三角洲行动》口琴谱社区(https://www.bilibili.com/toy/deltaforce/index.html)
程序直连的接口:https://111.229.198.119/v1(这个地址是从社区页前端 JS 里取到的, 证书是签给域名的,所以客户端要带 Origin/Referer 头,实现在 hca/bili.py)
怎么用:关键词留空则按最新浏览,支持翻页;列表带下载量和点赞数。 选一首或几首点下载,程序把它转成 MIDI 存进你的曲库,重名自动加 (2)(3)
下载到的是 raw deflate 压缩的 DFHS v1 二进制谱(格式已逆向,解码器也在 hca/bili.py), 转出来的 MIDI 是 format 0,和本地曲库里其他文件一样能直接弹。
需要说明的是:这个站是玩家投稿的社区曲库,不是严格意义上的开源乐谱站(比如 Mutopia、 MuseScore 那类)。它的价值是谱面本身就是为口琴改编的,拿来就能弹;代价是质量参差 —— 有些是音频自动扒的劣质谱(判断方法见「扒谱质量体检」一节)。
开源地址:https://github.com/xkrmand-web/delta-harmonica













