跨平台的布鲁斯口琴(十孔口琴)乐谱软件——琴谱展示、管理与导出。开源,MIT 协议。
- 专业琴谱展示:上行简谱(数字 + 八度点 + 升降号 + 附点 + 节奏下划线 + 延音线 + 歌词),下行口琴演奏标记(吹吸方向 + 孔号 + 压音级别 + 超吹 + 技巧),小节线 / 反复记号 / 双纵线完整刻画
- 吹吸配色:
+N吹气(暖红)、-N吸气(深蓝)、'压音(每个符号半音)、°超吹、~颤音 - 曲谱管理:内置曲谱 + 个人曲谱(浏览器本地持久化),搜索、查看、删除、JSON 导入
- 导出:PNG(高清位图)、SVG(矢量)、打印 / PDF、JSON 源文件
- 可吹性分析:自动标注每个音的孔位,统计音域、压音数量,超出 C 调十孔口琴能力的音即时提示
- 跨平台:纯 Web 应用,浏览器即开即用,桌面 / 手机 / 平板通用(PWA 友好)
| 曲谱 | 调 | 把位 | 难度 | 特点 |
|---|---|---|---|---|
| 小星星 | C | 第一把位 | ★ | 全自然音,入门 |
| 欢乐颂 | C | 第一把位 | ★ | 全自然音,入门 |
| 爱尔兰画眉 | C | 第一把位 | ★★ | 十孔口琴经典 |
| 友谊地久天长 | C | 第一把位 | ★★ | 附点节奏练习 |
| 送别 | C | 第一把位 | ★★ | 教材 24 小节完整展开版 |
| 12 小节布鲁斯练习曲 | G | 第二把位 | ★★★★ | 压音强化(3' 3'' 4') |
| 铃儿响叮当 | C | 第一把位 | ★ | 全自然音,吐音练习 |
| 压音入门练习曲 | C | 第一把位 | ★★★ | 原创压音练习 |
| 两只老虎 | C | 第一把位 | ★ | 连续八分音符、轮唱旋律 |
| 玛丽有只小羊羔 | C | 第一把位 | ★ | 相邻音与重复吐音 |
| 祝你生日快乐 | C | 第一把位 | ★ | 3/4 拍弱起 |
| 西班牙划船歌 | C | 第一把位 | ★★ | 2/4 拍二八节奏 |
| 平安夜 | C | 第一把位 | ★★ | 3/4 拍附点节奏 |
| 奇异恩典 | C | 第一把位 | ★★★ | 弱起、附点与较宽音域 |
npm install
npm run dev # 开发服务器
npm run build # 产出 dist/
npm run preview # 预览构建结果
npm test # 导入器自动化测试
npm run scores:validate # 校验全部内置谱开发环境要求 Node.js 20.19+ 或 22.12+(Vite 8 要求)。
曲谱为 JSON(见 src/data/scores/*.json):既可导入包含 lines 的完整 HarpScore JSON,也可导入包含 melody 的旋律 DSL JSON。导入器会校验嵌套结构、规范化八度、避免 ID 覆盖,并重新推算口琴孔位。
批量制谱使用配套导入工具:tools/import/*.json 为旋律 DSL 输入(空格分词、| 小节线、/ 八分、// 十六分、' 高音点、, 低音点、#/b 升降、~ 延音、=字 歌词、- 延长一拍),运行 npm run scores:build 完成“深层校验 → 八度规范化 → 可吹性验证 → 孔位推算 → 写入内置曲谱 → 重建索引”全流程。
非原创内置谱优先以文字简谱或清晰数字简谱逐音核对,并记录 sourceUrl、sourceFormat 与 sourceCheckedAt;五线谱不作为图片识别输入。npm run scores:validate 会同时阻止节拍、可吹性或来源字段不完整的曲谱进入发布。
Vite + React + TypeScript,乐谱为纯 SVG 渲染,无重型依赖。
- HarpScore:我做了一个开源的布鲁斯口琴乐谱软件 —— 从 Prompt 到实现的全过程记录,含内置曲谱的音高校验与来源标注说明。
MIT © 2026 ax2