先说结论
同一个音高通常能在二到六根弦上弹出来,所以六线谱必须选定一根。大多数打谱软件(包括 MuseScore)会把每个音放在能弹出它的音最高的那根弦上,也就是最低的品;和弦里某个音的弦如果已被占用,就挪到下一根空着的弦。这样排出的指法把位低、好读,但也可能让旋律在一根弦上一路往上爬,而不是停在同一个把位里。如果从文件生成的六线谱整体高了一个八度,那是因为文件把吉他记得比实际音高高一个八度,而软件按记谱音高排了品。
为什么同一个音在指板上有好几个位置?
因为各弦的音域相互重叠。标准定弦下,六根空弦依次是 E2、A2、D3、G3、B3 和 E4,相邻两弦相差五个半音,只有 G 弦到 B 弦相差四个,所以一根弦的第 5 品(G 弦是第 4 品)就是下一根弦的空弦音。中央 C 上方的 E,也就是 E4,可以是 1 弦空弦、B 弦第 5 品、G 弦第 9 品、D 弦第 14 品、A 弦第 19 品,或者低音 E 弦第 24 品:24 品的琴颈上有六个位置,22 品的电吉他或 19 品的古典吉他上则有五个。
五线谱只给出音高,六线谱给的是弦和品。所以不管是人还是程序来写六线谱,都要为每个音从这些位置里挑一个,而这个选择决定了手放在哪里。
打谱软件按什么规则选弦?
MuseScore 的规则写在源代码的 StringData 里。一个音会被放到空弦音不高于它的弦中音最高的那一根(convertPitch 上方的注释写着“using the highest possible string”,即尽量用最高的弦)。和弦则从最高的音往下逐个安排;如果某个音要用的弦已被占用,软件会“从最上面开始找一根合适的弦”(a suitable string, from topmost),也就是从上往下找第一根空着、并且能在指板品数范围内弹出这个音的弦。如果一根也找不到,两个音就留在同一根弦上,六线谱会标出这个冲突。
我们为 ScoreStarling 写了同样的规则,并把两者做了对比。一个脚本在标准定弦、还没填品的六线谱谱表上随机写入 120 个和弦,每个和弦含一到四个不同的音,音域在 E2 到 C6 之间;再让 MuseScore 4.7.5 的命令行把品填上,然后逐个音比对。我们换不同的随机和弦,一共跑了四次。
| 和弦 | 数量 | 结果 |
|---|---|---|
| MuseScore 能排出来的 | 447 | 全部 1,055 个音的弦和品都相同 |
| MuseScore 把两个音留在同一根弦上的 | 13 | 高把位和弦;它导入的吉他品数比我们的 24 品少,而我们把每个音都放在了各自的弦上 |
| 怎么排弦都弹不了的 | 20 | 低音比能弹到它们的弦还多,比如两个低于 A2 的音,只有低音 E 弦能弹;按 MuseScore 的写法写出并加上标记 |
这条规则可预测,所以很适合当默认值:看六线谱的人都能推算出每个音会落在哪里。用 Guitar Pro 或 MuseScore 打开这份乐谱,看到的品也一样。
“低品优先”什么时候会排得别扭?
当旋律落在指板高处时。这条规则从不看前后的音,所以凡是 1 弦能弹的音都会放到 1 弦上,吉他手本来会在一个位置弹完的乐句,就变成在这一根弦上来回跑。下面是一个从第 12 品的 E 往下走的乐句,ScoreStarling 分别按两种规则写出。
低品优先
换把最少
| 音 | 低品优先 | 换把最少 |
|---|---|---|
| C5 | 1 弦第 8 品 | 1 弦第 8 品 |
| D5 | 1 弦第 10 品 | 1 弦第 10 品 |
| E5 | 1 弦第 12 品 | 1 弦第 12 品 |
| D5 | 1 弦第 10 品 | 1 弦第 10 品 |
| C5 | 1 弦第 8 品 | 1 弦第 8 品 |
| B4 | 1 弦第 7 品 | 1 弦第 7 品 |
| A4 | 1 弦第 5 品 | 2 弦第 10 品 |
| G4 | 1 弦第 3 品 | 2 弦第 8 品 |
低品优先的排法在一根弦上横跨第 3 到第 12 品,下行时手要一次又一次地移动。换把最少的排法把最后两个音放在 B 弦的第 10 品和第 8 品,手始终保持在第 7 到第 12 品之间。两种都不算错,大多数打谱软件显示的是低品优先的版本;第二种更接近老师会写的指法。
程序只要通盘规划整个声部,就能找到第二种排法。ScoreStarling 的“换把最少”选项把每个音或和弦当作一步,列出它所有可能的按法,再在所有步骤中搜索代价最小的路径:手一次覆盖四个品;换把移得越远,代价越高;跨度超过四个品的和弦要额外加代价;高把位和第 12 品以上的位置稍微加一点;空弦不计代价。不过它仍然不了解你的演奏技术,所以规划出的指法只是建议,还需要你核对。
为什么我的六线谱高了一个八度?
因为吉他的实际音高比记谱低一个八度,而文件有两种方式表达这一点。MusicXML 可以按实际音高记谱,用下方带小 8 的高音谱号;也可以高八度记谱,再加一个 transpose 元素,它“表示记谱音高需要加上多少,才能得到正确的实际音高”。两种方式印出来的五线谱一模一样。如果软件按第二种文件的记谱音高来填六线谱,每个音都会高一个八度。
我们在 MuseScore 4.7.5 里亲眼见过。一个文件里是开放把位的 C 大调音阶,实际音高从 C3 到 C4(从 A 弦第 3 品到 B 弦第 1 品),按第二种方式记谱,并写明了弦和品。MuseScore 把所有品都换掉了,写成从 B 弦第 1 品到 1 弦第 8 品——同一条音阶,高了一个八度。改用带 8 的谱号按实际音高记谱后,同一条音阶打开时,每根弦、每个品都和文件里写的一致。ScoreStarling 下载的 MusicXML 就是这样写六线谱声部的。
如果别人给你的六线谱高了一个八度,先别急着改音,检查一下源文件里这个声部的谱号和移调设置。
变调夹在文件里改变了什么?
改变的是空弦音。MusicXML 的 capo 元素会按它的半音数“改变各弦的空弦定弦”,而品的编号从空弦的 0 开始,所以变调夹夹在第 2 品时,0 品就是在变调夹处弹响的弦,第 3 品则是从琴枕数起的第 5 品。这和吉他手看带变调夹的弹唱谱时的读法一致。MuseScore 4.7.5 打开我们的 MusicXML 时忽略了变调夹,从琴枕开始标品,所以最好在乐谱的文字说明里也注明变调夹的位置。
ScoreStarling 怎样写六线谱
从 2026年10月8日起,ScoreStarling 可以把吉他、贝斯或尤克里里声部显示为五线谱加下方的 TAB 谱,或者只显示 TAB 谱,来源可以是录音或视频链接、PDF 乐谱,或者 MusicXML、MIDI、ABC 文件。默认的弦位遵循上文的低品优先规则;“换把最少”会帮你规划,让手尽量停在一个把位;你也可以把任意一个音挪到另一根弦上(音高不变),或者直接输入品数。定弦包括 Drop D、DADGAD 和开放 G,变调夹最高可以夹到第 12 品。任何弦都无法按原样弹出的音会被标出。它不记推弦、滑音、击弦和扫弦,整首曲子也只用一种定弦。可以在音频转吉他谱、B 站、YouTube 视频转吉他谱或五线谱转吉他谱页面上试试。
参考资料
- MuseScore,
src/engraving/dom/stringdata.cpp:convertPitch和fretChords,2026年10月7日查阅。 - MusicXML 4.0 的 string 元素:1 弦是全长的弦中音最高的一根。
- MusicXML 4.0 的 fret 元素:空弦记为 0。
- MusicXML 4.0 的 capo 元素.
- MusicXML 4.0 的 transpose 元素.
- 我们的对比测试:标准定弦下的 480 个随机和弦,MuseScore Studio 4.7.5 命令行对比 ScoreStarling;以及用两种方式记谱的 C 大调音阶。2026年10月8日。
常见问题
为什么打谱软件把音排在我不会用的那根弦上?
因为五线谱不会标明用哪根弦,软件只能按规则来排。MuseScore 会选能弹出这个音的音最高的那根弦,也就是最低的品;和弦里某个音要用的弦如果已被占用,就顺延到下一根空着的弦。你习惯在别处弹的音,自己改到对应的弦上就行,音高不会变。
为什么我的吉他六线谱高了一个八度?
很可能是文件用 transpose 元素,把吉他记得比实际音高高一个八度,而软件按记谱音高排了品。改成按实际音高记谱、用下方带 8 的高音谱号,就能解决。在我们的测试中,用第一种方式记谱的开放把位 C 大调音阶,被 MuseScore 4.7.5 读成了高一个八度、排在 1、2 弦上的同一条音阶。
夹了变调夹,0 品指的是琴枕还是变调夹?
在 MusicXML 里指的是变调夹:capo 元素会把各弦的空弦音升高相应的半音数,所以 0 品就是在变调夹处弹响的弦。MuseScore 4.7.5 打开我们的 MusicXML 时忽略了变调夹,从琴枕开始数品。
ScoreStarling 能把录音扒成吉他六线谱吗?
能,2026年10月8日起就可以:它会把录音写成五线谱并在下方配上六线谱,也可以只显示六线谱,支持吉他、贝斯和尤克里里,单件乐器免费。它不记推弦、滑音和击弦。详见音频转吉他谱。