简谱转减字:程序凭什么替你选这个指法
同一个音在古琴上往往有好几种弹法:不同的弦配不同的徽位,音高一样,手上的动作完全不同。从简谱自动生成减字,难点不在算音高,而在替人做选择。本文讲我们怎么取舍,以及为什么每个音都要把其他候选列出来。
琴学、技法与数字化打谱的持续记录。
从简谱转成减字,听起来像个查表的活:知道音高,查出弦和徽,填上去。
真做起来发现,查表那一步几乎不是问题,问题是表里有好几个答案。
同一个音有好几种弹法
古琴上一个音高通常能在多个位置取到:不同的弦配不同的徽位,算出来的音高一样。
它们音高相同,但在手上完全不是一回事:
- 手要不要跨过去。上一个音在四弦,这个音在四弦九徽和七弦十徽都能取,取七弦左手就得整体移位。
- 散音、按音还是泛音。音高一样,音色差得远。散音开阔,按音有余地做吟猱,泛音清透。
- 下一个音接不接得上。这个位置本身合适,但接着的三个音都在低音区,那就等于给自己挖了个坑。
所以选指法不是查表,是在一串音里找一条手上走得通的路。
我们的取舍顺序
大致是这样几条,从硬到软:
一、先看物理上做不做得到。左手按不到的跨度、同一时刻要求两个手指在同一个位置,这类候选直接排除。
二、再看手的移动量。在音高相同的候选里,优先选让左手少移动的那个。这既省力,也更接近琴人的实际习惯——手懒是有道理的,省下来的时间用在音乐上。
三、然后看实际弹法说不说得通。这一层是最容易被忽略、也最影响结果的:
- 连续的同音不写成一串独立的音,而是收成轮、半轮、长锁或短锁——因为琴上连敲同一个音本来就是用这些指法完成的。
- 连续扫过相邻数弦收成滚或拂。
- 同时发声的两个音收成撮。
- 源谱标了滑音的按音挂上绰或注。
- 和声、连奏线、同音延长这些源谱上的信息都会被读进来,而不是丢掉。
第三层做不做,决定了转出来的谱是「音高对的减字」还是「像谱的减字」。前者能播放,后者能弹。
为什么每个音都列出其他候选
因为上面这套取舍必然有猜错的时候。
「手少动」是个好启发,但不是规律。琴人会为了音色故意跨到远处取一个散音;会为了下一句的走向提前换弦;会因为这一段要做大幅度的猱而选一个更好按的位置。这些理由程序都不知道——它们来自对整首曲子的理解,不来自眼前这三个音。
所以转译之后,每个音都会列出其他可选的写法,并说明为什么这样取舍。点一下就能换。
这个设计背后有个立场:程序的角色是缩小选择范围,不是代替你选。一个音有五种弹法,程序把它们按合理程度排好、讲清各自的代价,剩下的判断留给弹的人。这比直接给一个答案更有用,因为你能看见它的理由,也就能看出它在哪里想错了。
它做不到什么
说清边界比说功能重要。
它不替你打谱。打谱是把没有节奏的古谱推演成可演奏的曲子,核心是定节奏和句读,那一步只有人能做。转译处理的是已经有节奏的简谱,方向正好相反。
它不保证符合某一家的传承。同一首曲子各派处理不同,程序不知道你学的是哪一路。
它仍在打磨。复杂段落、密集装饰、特殊定弦这些地方,出来的结果需要逐音检查。我们把它做成「转完还要改」的流程,而不是「转完就能用」,正是因为这个。
它省掉的是什么
那它有什么用?省的是最枯燥的那部分。
一首曲子两百个音,如果每个音都要手动决定弦、徽、分、右手指法,光是敲进去就要很久,而其中大多数音根本没有争议——音高在那里,位置就那一个合理选择。
把这些没争议的音交给程序,人的注意力就能集中到真正需要判断的地方:这一句该怎么分,这个音要不要跨到别的弦上取个更空的音色,这个装饰该用绰还是注。
工具的价值在于让人少花时间在不需要判断的事情上,而不是在需要判断的事情上替人拿主意。