五线谱编辑器

基于 Canvas 的在线五线谱编辑工具,支持鼠标点击输入音符、键盘快捷键切换时值、实时 MIDI 播放预览,以及 PNG / PDF / MusicXML 多格式导出。

在线编辑 · 所见即所得

无需安装任何软件,在浏览器中即可完成专业级五线谱的创建、编辑与导出

五线谱,是西方音乐记谱法的通用语言

五线谱由五条平行的横线组成,线与间共同构成九个音位,配合谱号、调号、拍号等符号系统,精确记录音高、节奏、力度与表情。自11世纪圭多·达雷佐发明四线谱以来,五线谱历经近千年演变,已成为全球音乐交流的标准记谱体系。

本编辑器基于 HTML5 Canvas 与 Web Audio API 开发,在浏览器中实现接近桌面制谱软件的核心功能。支持高音谱号、低音谱号、中音谱号与次中音谱号;覆盖全音符至六十四分音符及附点、三连音等扩展时值;内置自动排版引擎处理符干方向、符杠连接与连音线;通过 OscillatorNode 实现 MIDI 级音准的实时播放预览。

🎼 Canvas渲染 🎹 MIDI播放 📤 多格式导出 ⌨️ 键盘快捷键 📐 自动排版 🔒 本地处理

五线谱工作台 · 开始创作

点击五线谱放置音符,使用工具栏切换音符时值与升降号,键盘快捷键提升输入效率

谱号
调号
音符
变音
附点
🎵 当前音符: 四分音符
🎼 谱号: 高音谱号
🔑 调号: C大调
📝 音符数: 0
⌨️ 快捷键: 1-5切换时值 · 点击放置 · Delete删除

六大特性 · 专业级体验

从输入到导出,每个环节都经过精心设计与乐理验证

🖱️

鼠标点击输入

在五线谱任意位置点击即可放置音符,自动吸附到最近的线或间。支持拖拽调整音符位置,右键删除已放置的音符。鼠标悬停时显示预览虚影,确保放置精准。

⌨️

键盘快捷键

数字键 1–5 快速切换全音符至十六分音符;方向键微调音符位置;Delete / Backspace 删除选中音符;空格键播放/暂停。大幅提升输入效率,减少鼠标往返。

🎼

自动排版引擎

符干方向根据音符相对于五线谱中间线的位置自动判定(中线以上符干向下,反之向上)。符杠连接自动识别相邻同拍号的八分/十六分音符并绘制横梁。支持连音线、延音线与断奏标记。

🎹

MIDI实时播放

基于 Web Audio API 的 OscillatorNode 合成三角波音色,按照乐谱节奏精确播放。支持调整播放速度(50%–200%),A4 基准频率 440Hz 可调。所有音频处理均在本地完成,不上传服务器。

📤

多格式导出

支持导出 PNG 高清图片(2× 分辨率适配 Retina 屏幕)、PDF 矢量文档(通过 html2canvas + jsPDF 实现)以及 MusicXML 标准格式(兼容 Sibelius、Finale、MuseScore 等主流制谱软件)。

🎨

四种谱号支持

完整支持高音谱号(G clef,小提琴/长笛/钢琴右手)、低音谱号(F clef,大提琴/巴松/钢琴左手)、中音谱号(C clef,中提琴)与次中音谱号(C clef,大提琴/巴松高音区),覆盖交响乐团全乐器组。

快速上手 · 四步成谱

无论您是初次接触五线谱,还是经验丰富的制谱者,遵循以下步骤即可高效创作

设置谱号与调号

在工具栏左侧选择适合的谱号(高音/低音/中音/次中音)与调号。调号决定整首乐曲的升降音体系,可在编辑过程中随时更改,已放置的音符会自动调整显示。

选择音符时值

使用工具栏中的音符按钮或键盘快捷键 15 切换音符时值。点击附点按钮可为当前音符添加附点(时值延长一半)。变音记号(升/降/还原)可随时切换。

点击放置音符

在五线谱的线或间上点击鼠标左键放置音符。音符会自动吸附到最近的音位。已放置的音符可拖拽调整位置,右键或 Delete 键删除。连续放置的八分/十六分音符会自动连接符杠。

播放与导出

点击 ▶ 播放 按钮预览乐曲效果,使用 空格 键快速切换播放状态。满意后点击 💾 导出PNG 保存高清乐谱图片,或复制 MusicXML 代码导入专业制谱软件进一步编辑。

底层架构 · 乐理与代码的交汇

深入理解五线谱编辑器背后的声学公式、坐标计算与渲染管线

🎯 音高坐标映射系统

五线谱的音高位置通过坐标映射系统精确计算。以高音谱号为例,下加一线的 C4(中央C)坐标为基准,每条线/间之间的垂直间距为 12px,每个半音对应 6px(即半个线间距)。音符的垂直位置 y 与 MIDI 音高 pitch 的换算公式为:

pitch = basePitch - round((y - baseY) / 6)
frequency = 440 × 2^((pitch - 69) / 12)

其中 basePitch 根据谱号类型变化(高音谱号下加一线为 MIDI 60,低音谱号上加一线为 MIDI 60),baseY 为对应基准线的 Canvas Y 坐标。

🎵 符干方向判定算法

符干(Stem)方向的判定遵循标准乐理规范:当音符符头位于五线谱第三条线(中线)及以上时,符干向下;位于中线以下时,符干向上。这一规则确保乐谱的视觉平衡与可读性。

符干长度固定为 35px(约三个线间距),符杠(Beam)连接相邻的八分/十六分音符,其角度根据首尾音符的垂直位置差自动计算,一般不超过 20°,以保持乐谱的整洁美观。

🔊 Web Audio API 合成引擎

播放功能基于 Web Audio API 的 OscillatorNodeGainNode 实现。每个音符创建一个独立的振荡器,使用三角波(Triangle)音色模拟钢琴泛音结构。音符的起止时间通过 AudioContext.currentTime 精确调度,确保节奏准确。

为模拟真实乐器的包络(ADSR),每个音符应用线性淡入(Attack: 10ms)与指数淡出(Release: 100ms),避免生硬的起止音。播放速度通过调整音符间的时间间隔实现,BPM 与毫秒换算公式为:

interval(ms) = 60000 / BPM × (4 / duration)
// 其中 duration: 全音符=1, 二分=2, 四分=4...

📐 调号与升降号渲染

调号(Key Signature)遵循五度循环圈的排列规则。升号调按照 F♯–C♯–G♯–D♯–A♯–E♯–B♯ 的顺序,从高音谱号的第五线(F♯)开始,依次向上/下交替排列。降号调按照 B♭–E♭–A♭–D♭–G♭–C♭–F♭ 的顺序,从第三线(B♭)开始排列。

临时变音记号(Accidental)的渲染位置根据音符所在线/间的位置精确偏移:升号(♯)居中,降号(♭)略偏左下方,还原号(♮)居中。多个升降号在小节内遵循"就近原则"排列,避免重叠。

音符时值 · 速查手册

常见音符时值的图形表示与拍数换算,以四分音符为一拍

全音符
𝅝   4 拍
二分音符
𝅗𝅥   2 拍
四分音符
𝅘𝅥   1 拍
八分音符
𝅘𝅥𝅮   ½ 拍
十六分音符
𝅘𝅥𝅯   ¼ 拍
附点四分
𝅘𝅥.   1½ 拍

快捷键大全 · 指尖飞谱

熟练掌握快捷键,将五线谱编辑效率提升三倍以上

🎵 音符时值

  • 全音符 1
  • 二分音符 2
  • 四分音符 3
  • 八分音符 4
  • 十六分音符 5
  • 切换附点 .

🖱️ 编辑操作

  • 放置音符 Click
  • 删除音符 Delete Backspace
  • 撤销操作 Ctrl+Z
  • 音符上移
  • 音符下移
  • 清除全部 Ctrl+Shift+C

🎹 播放控制

  • 播放 / 暂停 Space
  • 停止播放 Esc
  • 加速播放 ]
  • 减速播放 [
  • 导出PNG Ctrl+S
  • 切换谱号 C

开始您的五线谱创作

无需下载安装,打开浏览器即可开始专业级五线谱编辑。从简单的练习曲到复杂的交响乐章,这里都是您理想的创作起点。