返回博客
产品手记

延音线与连奏线:谱面上两道相似的弧,说的是两件事

延音线连的是同一个音,意思是继续按住、不要重弹;连奏线连的是若干个音高不同的音,意思是一气呵成。两者在谱上都是一道弧,含义完全不同。本文讲清区别、它们在减字谱里各自对应什么手上动作,以及我们为什么把界面上的名字改掉了。

灵弦琴学札记

琴学、技法与数字化打谱的持续记录。

产品手记3 分钟阅读

先承认一件事:我们自己在界面上把这两个东西都叫「连音线」,叫了很久。

结果是可想而知的——用户点了其中一个,期待另一个的行为,然后发现不对。我们自己排查问题时也绕了弯路,因为在代码里它们是两个完全不同的字段,而在界面上看不出区别。

现在改了。这篇说清这两件事到底差在哪。

延音线:同一个音,别重弹

延音线连接的是音高相同的两个音符。

它的意思很具体:前一个音继续响下去,后面那个音不要重新弹。在五线谱里这是标准用法——两个四分音符用延音线连起来,等于一个二分音符,只是因为跨了小节或换了拍组,不得不写成两个。

放到古琴上,延音线对应的手上动作是:右手不再弹,左手继续按着不动。弦还在振动,音还在响。

因为它连的必须是同一个音,所以配对可以由程序自动完成:找到后面第一个音高相同的音符,连上。用户不需要手动指定终点。

连奏线:若干个音,一气呵成

连奏线连接的是一串音,这些音的音高可以各不相同。

它的意思是这一串要连着奏出来,不要一个一个断开。在西方记谱里它表达的是句法和呼吸——这道弧覆盖的范围就是一个乐句。

放到古琴上,连奏线对应的是左手在弦上连续走动而右手只弹一次或少数几次:绰、注、上、下、进复、退复这些走手音,本质上就是连奏——一次拨弦,音高连续变化出好几个音。

因为它连的是不定数量、不定音高的音,所以起点和终点必须手动点。程序猜不出你想把哪几个音归成一句。

两者的差别,一张表

延音线连奏线
连的音音高必须相同音高可以不同
意思继续按住,不重弹一气呵成,不要断
音数通常两个两个到一整句
怎么配对程序自动找同音手动点起、点止
古琴上对应左手按住不动,右手不弹走手音、一句里的连续动作

一个共同的后果:后面那个减字不用再写一遍

这是两者共有的性质。

如果被连起来的两个音减字完全一致,那么后一个音在谱面上就不该再把减字写一遍。理由很直接:手上没有新动作。同一个减字写两遍,读谱的人会读成「再弹一次」,而这恰恰是连线要否定的事。

撮这类复合谱字尤其明显——一个撮的谱字信息量大、占位宽,紧挨着写两个一模一样的,谱面很扎眼。

所以现在的处理是:连线连着的后一个音,若减字与前一个完全一致,只留简谱数字和那道弧,不重复书写减字。

判据是「完全一致」,这一点很重要:如果有人用连奏线连了两个不同的音(这是连奏线的正常用法),减字自然不一致,就不会被省写。省略只发生在真的没有新动作的时候。

我们在这里踩的坑

值得记下来,因为它是个典型错误。

这个省写规则最初只认延音线。于是用「连奏线起 / 止」连起来的那些音,怎么点都不省——而界面上两项当时都叫「连音线」,用户看不出自己点的是哪一种,我们看报错也看不出。

更糟的是,我第一次「修好」它的时候,用的是自己写的测试数据,里面填的是延音线字段。测试过了,实际没修好。真实的谱子里那一栏是空的,填的是连奏线字段。

教训有两条:一是界面上两个不同的东西不能叫同一个名字,二是验证要用真实的数据,自己造的数据只能证明代码跑得通,证明不了它解决了问题。

现在界面上怎么写

谱面细化面板里:

  • 延音线—— 同一个音继续按住,自动配对
  • 连奏线起 / 连奏线止—— 若干个音一气呵成,手动点起止

分组标题也从「连音线」改成了「延音线与连奏线」。名字长了一点,但两次点击之间不会再犹豫。