乐团内所用的声部分谱较为复杂,制谱比较考验技术。本文介绍了jianpu-ly配合lilypond打谱的经验与技巧,并比较了番茄简谱、jianpu-ly及其他市面上常见的简谱打谱软件,讨论了目前各软件的优劣。
乐团谱或移植乐曲的谱多为线谱,在视奏时有一定门槛。可以用PhotoScore把线谱识别成musicXML,但麻烦主要在线谱与简谱互转,目前缺少开源免费的程序。
目前简谱的打谱软件主要有三类:所见即所得型、代码型、线谱转简谱程序。
所见即所得的打谱软件主要有EOP、MusicWriter、xunscore、来音制谱、Word简谱字体等。EOP用来入门不错;MusicWriter功能强大、支持简线互转与移调,但学习成本比较高;xunscore需要付费使用,运行时可能不稳定,且个人觉得并不是十分好用,musicxml转简谱时升降音记号有bug。这一类软件共同的特点是:多数为闭源,每种软件的使用方法都需要重新学习,文件格式互通性有限。代表性的Word简谱字体是怒独僧的简谱字体,效果不错,但因为字体的总字符数限制,不少符号无法打出来。此外,动手打谱也是费心费力的一件事。
MusicWriter、来音制谱、Sibelius+简谱插件、MuseScore+简谱插件可以将线谱转成简谱。MusicWriter看起来挺不错的(虽然排版字体不好看)但我还没有尝试过;来音制谱或者基于JS的xml2jianpu可以转,但是不支持多声部;Sibelius需要付费,MuseScore的简谱插件操作复杂且已经断更许久,比较遗憾。
代码型的简谱打谱软件主要有番茄简谱和lilypond,两者各有优劣。个人偏好代码型的打谱软件,虽然不太直观(就像Word和LaTeX的区别一样),但修改起来容易,也便于复制。在未来如果能有线谱简谱互转且使用通用格式的开源软件想是最好,但需要一些努力。
使用方法
安装lilypond和jianpu-ly,lilypond的基本操作:https://www.yuque.com/qqbunny/lilypond/begin#
基本操作:请看谱例。为展示各种记号,这段旋律没有意义。
1 |
|
注意语法中的空格问题,该加空格的时候一定要加够。时值可以用字母也可以就反斜杠,个人偏爱用反斜杠,直观一点。倚音不能加空格,也不能用反斜杠。
理论上顺序不重要,个人习惯大概是这样:5b'\\
,与番茄一致。如果在多声部遇到升降号的识别bug时再把升降号放到音符前面。
小节线可加可不加,为了方便在程序报错时(音符穿过小节线/乐曲没有在整数拍结束,拍子不够)检查错误,在复杂段落时我会加上。用-
来表明和前面相同的音符比较好用,跨小节时会自动添加连弓记号。例如:
1 |
|
和下面的效果一样。
1 |
|
可以看出程序提供了丰富的记号,比如颤音\prall
, \trill
, \startTrillSpan
、颤弓(震音 Tremolo)、延长、弓指法记号、强弱记号等。音符头上的各种音乐语气(Articulations)符号可以用Fr=***
打出,可以组合使用,等同于lilypond五线谱里音名后面紧跟着的-***
。常用的有断弓(保持音)_
、拨弦+
、重音>
等。符号表里没有提供的符号,可以直接粘Unicode字符进去解决,比如二胡的顿弓▼
、人工泛音◇
等。可以去word的“插入”选项卡里找字符大全。
美中不足的是,如果标了内外弦,由于中文的自动换行问题目前无法解决,无法做到书上标指法时竖着排的样子。还有就是符号大小和位置不好看,因为这些符号都是五线谱里的,生搬硬套到简谱上尚有问题。符号表见 https://sheet-poem.com/lilypond/notation.pdf 的755-769页(符号真多……)。
渐强渐弱:\< \>
(Hairpin),后接\!
标明结束渐强渐弱的位置,不标默认延续到下个力度记号位置。
利用正则表达式和查找替换功能可以快速地改谱。正则表达式在VSCode、例如,有一段旋律:
1 |
|
用[1-7][#b]?[']?
这一表达式即可匹配到音符。想要升八度,只需要替换成$0'
即可(建议单开个文件替换完了再贴回去)。目前临时多声部我是用和弦来做的,想要高低两个八度多声部,替换成$0$0'
就有高八度的,$0,$0
就有低八度的(注意必须按音高从低到高写)。之后处理一下例外情况就行,比如1'
降八度后应该是1
而非1',
(查找',
替换成空白即可),比如有时升降号和八度记号会识别错误(我一般会写成,b555#'
这种样子,但遇到,b56#7'
还是没辙),需要调整下顺序,反正就排列组合直到能编译为止。常见报错:Ambiguous octave marks (please set OctavesBefore or OctavesAfter if writing them in the middle)
多声部的例子:
1 |
|
但目前移调还是个问题。对于八度以外的情况,正则表达式的替换就不管事了。可能需要程序来实现。
多声部还有一些其他问题,比如高声部音符时值必须相等,没法加颤弓等符号、低声部有高音点时会把高声部的音符向上顶等问题。还有待解决。
最后给出一小段体现各种功能的段落。
1 |
|
还有一个常见的问题是弱起小节(anacrusis)。拍号里设置起来不难,例如4/4,4
,但是要注意在最后一个小节时少打这一拍。这是五线谱里的习惯。但是在简谱里一般最后一小节也是打满拍数的,这时需要参照GitHub上issue里提到的办法,设置环境变量。https://github.com/ssb22/jianpu-ly/issues/74
编译需要在cmd下进行。第一行设置编码为UTF-8,因为lilypond的编码格式是不带BOM的UTF-8。PowerShell是UTF-16 BOM,编译时会遇到问题。
1 |
|
建议每打一小段就编译一下,容易查错。如果遇到”failed”的情况也不要惊慌,看看生成的pdf从哪里开始出错,从开始出错的地方开始一段段排查。lilypond和latex类似,都会尽量把能成功生成的部分打印出来。目前jianpu-ly生成的文件还是很容易有bug,可以去GitHub上看有没有人提过类似的issue。
合奏谱的考量
在打合奏谱时,需要特别考虑几点。
一是长时间休止后的进板问题。不能全指望指挥给提示,需要在长时间停顿后的最后几小节标上其他乐器的名字或旋律(旋律用小一号字体并放在括号里)。如果恰逢翻页,需要把停顿的小节拆成两部分,把进板提示写到下一面上。
二是谱子比较长的时候如何处理翻页问题。如果全部单面打印,不装订/不放到谱夹里,只需要标明页码,尽量在空小节处分页,让乐手自己决定在谱架上放哪3-4页即可;如果要放到谱夹里,就需要考虑只有两面时的翻谱问题。我目前的办法是额外加一页首页,同时尽量把空小节放到偶数页结尾以减少一次翻页。在制谱时还要注意,多次反复的小节如果简写的话,尽量放在同一行里,且至少每一页都要有一个完整的小节,不然翻面后就没法演了。
更详细的页脚需要自行修改生成的.ly
文件。我自己的设置是在页面内外侧都加页码,页脚处写明乐曲名称,以便查阅。
三是小节编号问题。尽量不要用区间反复功能(R{ ... }
),因为反复不会记入小节数,导致总小节数对不上,需要手动修改。建议多标一些排练记号,比标小节数更好用。
更多关于打谱的细节考量,可以参考《Behind Bars》,知乎上有人翻译了一部分:https://zhuanlan.zhihu.com/p/492401201 https://zhuanlan.zhihu.com/p/493149160
技巧与经验
输入的纯文本文件可以是任何格式,我习惯存成.tex
格式,配合文本编辑器的注释快捷键用起来比较快。善用各种光标控制键(Home, End, Ctrl+方向键, Ctrl+Shift+方向键, Shift+方向键, Insert, Alt+Shift激活块选择……)和正则表达式替换功能提高效率。
拍数不对,分段注释检查。一般的错多为时值打错、休止符少加一拍等。
音高不对,一般是差个二度,因为把五线谱的线和间看错了。
番茄简谱和jianpu-ly的比较
番茄简谱的思路介于脚本生成和手动排版之间,每一行都要打一遍分谱的各个声部,小节线也要自己打。好处是接近“所见即所得”,上手相对容易。多声部的大括号也比较接近传统习惯。
临时多声部功能很好用,特别适用于乐团里同种乐器经常分分合合的情况。手动加括号和注释比较方便,可以把用于提示乐手进板的其他乐器的旋律也打进来。
缺少小节重复等符号。升降还原记号需要自己处理,音符的分组功能尚有bug。
由于flash终止支持的原因,试听功能已经不能用了。功能全部在服务器端实现,且服务器经常被攻击,导致实际体验有时不太好。个人很佩服开发者,从2014年至今维持着服务器运转,且其功能、易用性在同类软件中至今仍相当优秀。
jianpu-ly依托于lilypond强大的排版功能,分页、断行、小节重复等操作相当方便。升降号、音符分组等会自动处理,打谱时只要把每个音的音高和时值打对即可。连音线的添加习惯和番茄不同,是把从第二个音开始的音括住。加括号、调字号、小节高亮等复杂功能不是实现不了就是会引起排版错乱,还需要改进。
每一部分的分谱就像音轨的一轨一样,这使得拆分和合并相当容易,也无须处理换行问题。但是目前简谱不能打临时多声部,如果通过和弦功能实现还是有不少问题。
脚本会严格地检查每一小节的拍数,散板段落目前还不太好处理(虽然ly本身打线谱时都可以实现)。弱起小节的问题前文已经说过。
本地编译上手比番茄稍复杂,而且处理报错需要一点经验。习惯后还好。
musicxml转简谱的功能仍在开发中,目前不可用。ly可以生成midi文件,虽然有bug但至少还能一听。