@muse-player/core
MXL/MusicXML 乐谱渲染与回放的核心 React Hooks 和组件。
Peer 依赖: react >=18、react-dom >=18
Warning
此包不包含 Verovio 或任何 MXL 解析能力。它仅消费由 @muse-player/server 或 muse-render CLI 生成的预渲染静态产物(manifest.json、data.json、SVG 页面)。你必须在使用这些 Hooks 之前先预渲染 MXL 文件。
Hooks
useScore
从 manifest URL 加载预渲染的乐谱数据。URL 必须指向由 @muse-player/server 或 muse-render 生成的 manifest.json。此 Hook 无法加载原始 MXL/MusicXML 文件。
参数: 无
返回值:
usePlayback
完整的 MIDI 回放引擎。解析 base64 MIDI,通过 Tone.js 调度音符,跟踪时间和小节,并支持实时速度变更。
参数:
返回值:
Warning
首次 play() 调用会触发 Tone.start(),这是浏览器音频策略所要求的。必须从用户手势处理器中调用。
usePianoSampler
通过 Tone.Sampler 加载逼真的钢琴采样,带有压缩器和混响效果链。
参数:
返回值:
音频链路:采样器 -> 压缩器 -> 混响 -> 输出
useAutoScroll
在回放期间自动滚动乐谱容器,使当前小节保持可见。
参数:
返回值:
手动滚动会禁用自动滚动 5 秒。回放开始时会立即重新启用。
useNoteHighlight
在乐谱上为活跃播放的音符绘制彩色覆盖矩形。右手蓝色(staff 1),左手红色(staff 2)。
参数:
此 Hook 纯粹产生副作用 —— 不返回任何值。
组件
ScoreRenderer
在可滚动容器中渲染单个 SVG 页面。

