Skip to content

Repository files navigation

拾音 · 游戏口琴播放器

image image

把喜欢的旋律带进三角洲行动。打开 MIDI / TXT 曲谱,先在本地试听,再用游戏里的口琴演奏。不需要账号、网络服务或大模型,完全免费开源。

纵览GITHUB各个相关开源仓库,痛点如下:

  • 1: 产品形态未收敛,存在较多BUG
  • 2:产品规格化过于严重,不具有轻便性
  • 3:产品资源生命周期混乱,进程名称未知且无法同步杀死
  • 4:产品GUI过于古板,且专业术语等接口暴露过多,存在技术壁垒,影响非音乐、计算机专业人员使用

0.3.3 修复了暂停清理期间按 F8 无法继续的问题,并包含最新微调曲库。0.3.2 更新了三连音曲谱解析与图片简谱转换经验:双排谱只取上排,超限音区可按整段八度折叠生成听感优先的可演奏版本。

0.2.1 更新了暖色界面、程序图标、启动音效和旋律轨迹。轨迹的上下位置表示音高,横向长度表示时值,游标跟随演奏进度;它不是麦克风音量或游戏发声检测。窗口右上角可直接访问 GitHub 项目 和 作者的哔哩哔哩空间。

使用

拿走求star~没有github关注下bilibili也可以哦

怎么下载这个软件?

下载我给的最新版release,整体解压,发布目录自带运行组件,不需要另装 .NET;请保留整个文件夹,不要只移动 EXE。启动新版前先关闭旧版。运行DeltaPlayer.exe即可; 当前版本打开 artifacts/app-0.3.3/DeltaPlayer.exe。发布目录自带运行组件,不需要另装 .NET;请保留整个文件夹,不要只移动 EXE。启动新版前先关闭旧版。

发布包已经包含 README.md、曲库 示例曲谱和 skill/ai-jianpu-to-deltaplayer/SKILL.md。拿到压缩包后可以直接打开曲谱;需要把简谱图片整理成 TXT 时,可把这份 skill 交给支持本地 skill 的工具使用,不需要另行下载仓库文件。

怎么使用这个软件?

  1. 打开或拖入 MIDI / TXT 曲谱。
  2. 点击“本地试听”检查旋律,再点“结束试听”。多声部 MIDI 可以点“选择旋律”。
  3. 在游戏里装备口琴。点击“游戏演奏”或“继续演奏”后,有 3 秒时间切回游戏;在游戏内按 F8 则立即演奏/继续。注意,因为发现人物任何移动,包括转动视角都会使得演奏不稳定,本产品会捕捉任何其他动作并停止演奏,届时需要重新按F8在原进度继续。

F8 演奏/暂停,F9 停止并清空进度。 试听时游戏演奏按钮不可用,F8 也不会排队触发演奏。演奏、倒计时和暂停期间,本地试听不可用;先停止再试听。

演奏时操作键盘或鼠标会自动暂停,释放程序模拟的按键并保留进度;松开自己的按键后按 F8 继续,从下一个音开始。切出游戏会停止。停止热键被其他程序占用时禁止游戏演奏,试听仍可用;关闭占用热键的程序后重新打开拾音。

怎么转换乐谱?

非现有曲库且非MIDI,把我的skill.md连带着你要转化的简谱图片丢给豆包,deepseek等,如果有codex等可以把这个skill直接安装到对话级别,skill具体使用本人skill-forge 进行优化

简谱示例

BPM=100
1 1 5 5 6 6 5- | 4 4 3 3 2 2 1-

默认 BPM=120,1=C4。0 休止,#1 升半音,1_ 半拍,1__ 四分之一拍,1. 附点,1- 两拍;【1】 高八度,(1) 低八度。空格、换行、竖线只用于排版。

自动处理与边界

MIDI 支持标准 SMF 0 / 1、PPQ 计时、全局速度变化,排除打击乐声道。推荐声部是规则排序,不保证识别出真正主旋律。和弦取最高起音,新音截断旧音;不会恢复被覆盖的伴奏尾音。

程序尝试整首升降八度、最多相对所选速度放慢 15%,不逐音折返。超出音域时,需明确选择播放可演奏部分;过密而无法可靠安排的旋律会提示,不会大量删音或无限顺延。

乐器映射采用 C4 中音、Z X C V B N M 与逗号、鼠标左/右八度、中键升半音预设。Windows 接收输入不代表游戏必然发声,游戏版本和并发键鼠操作会影响结果。试听使用本机 MIDI 合成器,设备不可用会明确提示。

本地数据

曲谱只读,不改写原文件。最近文件夹与速度设置保存在 %LOCALAPPDATA%/DeltaPlayer/settings.json。诊断在内存中最多保留 256 条,用户点击“复制诊断信息”时写入剪贴板;程序没有网络请求或遥测上传。

开发

源码在 src,测试在 tests。C# / WPF,.NET 10,DryWetMIDI 7.2.0 固定依赖。构建需 .NET 10 SDK,运行发布版本则无需 SDK。

./build.ps1
# 也可指定隔离 SDK
./build.ps1 -DotnetPath 'C:/path/to/dotnet.exe'

构建脚本先运行模拟输入测试,通过后才发布。结果在 artifacts/app。不要在仍打开该目录中的程序时覆盖构建;使用独立输出目录或正常关闭程序。

界面使用 WPF 原生动画,不引入 UI 框架。旋律底图仅在曲谱或尺寸变化时重建,最多绘制 1,600 个音符标记;游标动画在 UI 线程,演奏时序仍由独立线程负责。超长曲谱的可视化会抽样,实际演奏不因此删音。

resources/2.webp 是图标来源,resources/app.ico 包含多种 Windows 图标尺寸;1.mp3 是启动音效,2.png 与 1.jpg 用于界面装饰,3.png 保留为备用素材。资源由用户提供。

详细实现与验证范围见 docs/。原始三仓库分析只作为设计参考,本程序没有合并其应用代码。

About

介于现存三角洲口琴项目痛点:UI操作复杂,产品未收敛,进程未收回,取百家之长做一个口琴演奏个人自用app

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages