Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syrinx

Syrinx · 长笛流光

把喜欢的乐谱留在身边,让每一次练习从容开始。

个人乐谱仓库 · 电子阅谱 · 长笛伴奏练习

English · 在线体验 · 快速开始

Local first React License

下载与运行

平台 文件 下载
Windows Syrinx-0.3.0-x64-setup.exe 一键安装 GitHub Release · 夸克网盘(国内高速)
Windows Syrinx-0.3.0-portable.exe 免安装版 GitHub Release
macOS(Apple Silicon) Syrinx-0.3.0-mac-arm64.dmg GitHub Release · 夸克网盘
在线体验 无需下载 romanticjojo.com

安装包内置全部五首精选曲目(乐谱、采样钢琴伴奏、封面与动态背景视频),安装后离线即用。未签名安装包可能触发 SmartScreen 提示,选「更多信息 → 仍要运行」即可;macOS 首次打开若被 Gatekeeper 拦截,在「访达 → 应用程序」中右键 Syrinx → 打开再点「打开」(仅需一次)。Intel 芯片 Mac 请从源码运行。

其他平台 / 从源码运行 —— 见下方快速开始

曲目素材的来源与版权说明见 NOTICE.md

Syrinx 首页:精选曲库英雄位轮播与曲库入口
精选曲库首页 · 英雄位轮播,悬停卡片即播放动态封面

它能做什么

一方随身曲库。 导入 MusicXML、XML 或 MXL,把曲名、作曲、标签和封面整理好;文件夹、收藏、搜索、分页,数据全部留在你自己的设备上。详见下方个人乐谱仓库

翻开就能练。 单长笛谱直接翻页阅读;带钢琴声部的乐谱可选本机合成伴奏——四拍倒数起奏、点小节定位、0.5–1.5 倍保调变速,演奏完回听录音并查看逐音音高对比。

精选曲库开箱即用。 五首钢琴伴奏曲目(Luv Letter、Flower Dance、Lumière、Alicia、Interstellar)随仓库与安装包分发:动态封面、循环背景视频、精确对齐的采样钢琴伴奏,无需导入任何文件。详见下方精选曲目的沉浸式演奏

个人乐谱仓库

导入自己的 MusicXML / XML / MXL,就有一方随身的曲库——数据全部保存在你自己的设备上。

个人仓库书架:导入的两份乐谱、搜索与视图切换
个人仓库 · 导入即整理,卡片与列表两种视图

收藏与整理。 导入时自动识别曲名、声部与拍号;之后可编辑信息、设置 PNG / JPEG / WebP 封面、用文件夹分组、收藏常练曲目、按曲名或作者搜索。

翻开就能练。 单长笛谱直接翻页阅读;带钢琴声部的乐谱可选「原谱钢琴伴奏」本机合成——试听满意后点「开始演奏」,四拍倒数起奏、点小节定位、0.5–1.5 倍保调变速。

个人仓库列表视图:曲名、作者与乐谱信息一览 Morning Light 乐谱页:钢琴伴奏设置与开始演奏
列表视图,适合快速查找 带钢琴声部的乐谱:先试听,再开始演奏

仓库自带两份原创小练习(docs/examples/ 中的 Morning Light 与 Breath Study)可直接导入体验;从仓库菜单可随时导出备份。

精选曲目的沉浸式演奏

Hero 轮播 → 详情预览 → 起奏 → 录音回放与音准反馈,全流程无需账号。

曲库与详情

曲库卡片悬停时自动播放方形动态封面;进入曲目后,背景切换为与封面同源的高清循环视频,演奏页垫底色取自视频首帧,观感无缝衔接。

精选曲库:五首曲目的卡片视图 曲目详情页:动态背景、长笛分谱与曲目信息
曲库:悬停卡片即播放动态封面 详情页:先读谱、试听,再开始演奏

演奏与实时反馈

点击「开始演奏」,四拍倒数后伴奏与谱面光标同步前进:

  • 谱面光标 —— 沿伴奏实时位置前进,自动翻行居中;手动滚谱时自动让位
  • 小节 HUD —— 右上角实时显示当前小节与累计时间(如 01 / 97
  • 实时音高 —— 演奏中即时显示当前音准状态,偏离即刻可见

演奏页实拍:动态背景、谱面光标与实时 HUD
演奏中的谱面:背景视频来自曲目封面,光标与伴奏逐音符对齐

录音回放与音准分析

演奏结束自动进入回放页,录音与伴奏可分别调节音量、对照回放。音高图上,高亮加粗轨迹是命中的音符、红色细轨迹是偏音、斜纹块是漏音;统计卡给出整段音准比例与平均音分偏差。分析在后台 Worker 中运行,长曲目也不卡界面。

回放页实拍:音高对比图、图例与双音量回放器
回放页:录音与伴奏双滑杆,音高图逐音对照谱面目标

快速开始

需要 Node.js 20.19+ 或 22.12+ 与 npm:

git clone https://github.com/Romanticjojo/Syrinx.git
cd Syrinx/app
npm install
npm run dev          # 个人仓库模式(正式版功能)

打开终端显示的本地地址(通常是 http://localhost:5173)。其他命令:

npm run dev:web      # 精选曲库模式(安装包同款形态)
npm test             # 单元与组件测试
npm run build        # 构建 → app/dist
npm run dist         # 打包 Windows 安装包(electron-builder)
npm run dist:mac     # 打包 macOS dmg/zip,Apple Silicon(M 系列芯片)

仓库自带全部精选曲目素材(app/public/songs/)与两份可导入的原创小练习(docs/examples/),克隆后开箱即用。

数据留在你的设备

个人仓库无需账号;导入解析、封面处理与钢琴合成都在本机完成,乐谱与编辑信息保存在当前浏览器的 IndexedDB 中。不同浏览器或站点地址的仓库相互独立,清除站点数据会删除仓库——请定期用仓库菜单的导出备份留存。

架构与演奏数据流

Syrinx 是静态部署的浏览器应用,谱面解析、时间轴、伴奏引擎与音高分析全部运行在浏览器内。

内容
核心架构 视图、谱面、伴奏、录音与音高分析模块关系
演奏数据流 素材解析 → 时间轴 → 同步演奏 → 录音分段 → 音准反馈

伴奏的实际播放位置驱动谱面光标;跳转小节或变速会保存当前录音并倒数开启新段,每段记录起点和速度,回听与图表按对应谱面时间对齐。

参与开发

React 19 · TypeScript · Vite · OpenSheetMusicDisplay · Web Audio · three.js。个人仓库与精选 Song Pack 是两条独立的曲目来源。

cd app
npm test && npm run lint && npm run build

致谢与许可

感谢 OpenSheetMusicDisplaythree.js 等开源项目。程序代码采用 Apache License 2.0;曲目素材归各自权利人所有,见 NOTICE.md

About

Flute practice companion that listens: real sampled piano accompaniment synced to your score, live pitch detection with note-by-note scoring, and a personal sheet-music library. Free & open source, 5 songs built in — Windows / macOS / Web.

Topics

Resources

Stars

70 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages