装饰音&装饰符号
倚音是依附于主音的小音符,可以放在主音之前或之后。在 jpFun 中,用 > 和 < 连接倚音与主音,箭头始终指向主音:
2 > 1:2是前倚音,写在1的左上方,先奏倚音,再奏主音。1 < 2:2是后倚音,写在1的右上方,先奏主音,再奏倚音。2 > 1 < 3:同一个主音可以同时带有前、后倚音。
2 > 1 1 < 2 2 > 1 < 3倚音默认是八分音符,自带一条减时线;再加一个 / 就变成十六分音符。播放时,倚音从主音的时值中借用时间,不增加这组音的总时值。
2 > 1 2/ > 1多个音共同作为倚音时,用大括号把它们括起来。连续的倚音会自动连接减时线。
{3 2} > 1 5 < {6 5}倚音可以堆叠
Section titled “倚音可以堆叠”倚音本身也可以带倚音。 连写 1 > 2 > 3 时,1 是 2 的倚音,2 又是 3 的倚音,字号会随着嵌套逐层缩小。这与 {1 2} > 3 不同:后者的 1、2 是同一层的两个倚音。
{1 2} > 3 1 > 2 > 3你甚至可以用倚音来画一颗树:
1 > {2 < 4} > 3 > 4 < 3 > 5 < 6 < 7>、< 分别向两侧展开,大括号可以把一段嵌套结构组合起来,再作为另一个音的倚音。
琶音让和弦中的音依次起奏,而不是同时发声。用 @arp/@arpeggio 包住一个和弦,就会在和弦左侧画出琶音波浪线。
@arpeggio(content, direction="")content:和弦内容,必填。用^或_连接至少两个同轨成员,如{1 ^ 3 ^ 5}。direction:琶音方向。- 省略或设为
"":无箭头波浪线,从下到上播放。 up:顶端带向上箭头,从下到上播放。down:底端带向下箭头,从上到下播放。
- 省略或设为
@arpeggio(1 ^ 3 ^ 5)
@arp({1 ^ 3 ^ 5}, up)
@arp({1 ^ 3 ^ 5}, direction=down)这里的方向按音符在谱面上的上下位置判断。播放时,各音的起音依次错开,但仍在和弦原本的终点一起结束,不会增加和弦的总时值。
理论上琶音非常自由,可以横跨声部、轨道。但是 jpFun 考虑到实用性,限制琶音只能作用于至少包含两个成员的同轨和弦(用 ^ 或 _ 连接),不能用 & 连接的多个声部代替。这是因为如果要支持任意声部,就需要用标签的写法,写起来并不方便。
滑音可以连接两个音,也可以表示单个音的滑入或滑出。目前只有视觉效果,不产生滑音播放,也不改变原来的音高或时值。
两音之间的滑音
Section titled “两音之间的滑音”先用 @标签 标记两个端点,再用 @gliss(标签1, 标签2) 连接。箭头按音高上行或下行,标签传入顺序不限;两个端点不能同时起音,也不能跨谱面行。
1@a 5@b @gliss(a,b) 6@c 2@d @gliss(c,d)
% 滑音连接非常自由
N: 1@a 2 3 4 5@d
N: 0 3@b 2 1@c 0
@gliss(a,b)
@gliss(a,c)
@gliss(b,d)
@gliss(b,c)
用 @slide 包住要修饰的内容:
@slide(content, side=pre, direction=up)side:pre在左侧画滑入箭头,post在右侧画滑出箭头。direction:up表示音高上行,down表示音高下行。默认是从低处滑入。
@slide(5) @slide(5, direction=down) @slide(5, side=post) @slide(5, side=post, direction=down)多个音用大括号括起来:pre 只修饰内容首端,post 只修饰末端,不会给每个音都加箭头。
演奏与装饰符号
Section titled “演奏与装饰符号”重音、延长记号、波音和颤音等符号,都收纳在符号函数 @symbol 中:
@symbol(name, size=0.5em)简写为 $名称,用 ^ 把符号放在音符上方。例如 1 ^ @symbol(tr) 与 1 ^ $tr 等价。
| 符号 | 名称 | jpFun 播放效果 |
|---|---|---|
$accent | 重音 | 增强所附着音符的力度,详见 重音 |
$f 等 | 力度记号 | 持续影响所附着音符及其音轨内之后的音符的力度,详见 力度 |
$fermata | 延长记号 | 所附着音符的区间内速度减半,实际时长翻倍,结束后恢复速度 |
$mordent | 下波音 | 按“本音、调内下方二度、本音”演奏,三个音均分原音符的时值 |
$prall | 上波音 | 按“本音、调内上方二度、本音”演奏,三个音均分原音符的时值 |
$tr | 颤音 | 从本音开始,与调内上方二度快速交替,填满原音符的时值 |
$turn | 回音 | 按“调内上方二度、本音、调内下方二度、本音”演奏,四个音均分宿主时值 |
$iturn | 逆回音 | 按“调内下方二度、本音、调内上方二度、本音”演奏,四个音均分宿主时值 |
$marcato | 强调音 | 播放同重音,所附着音符的力度增加 20,最高 127,不改变后续基础力度 |
$tenuto | 保持音 | 仅记谱,短横线;不改变时值或力度 |
$staccato | 断奏 | 仅记谱,尖端朝下的实心三角楔形;暂不缩短实际发声 |
$tremolo | 轮指 | 仅记谱,五个放射状短笔画,无外圈;不改变播放 |
$harmonic | 泛音 | 仅记谱,空心小圆;不改变播放 |
1 ^ $fermata 1 ^ $mordent 1 ^ $prall 1 ^ $tr颤音记号后可以紧接 + 添加波浪尾巴(只有视觉效果):$tr+ 是一截,$tr++ 是两截,$tr+++ 是三截。
1^$tr++++++++++++ 234上下方二度按当前调内音级计算,不是固定相差两个半音。 例如默认 C 调中,3 的上方二度是 4,1 的下方二度是低音 7。波音、颤音和回音都不额外增加总时值。
延长记号不改变记谱时值,而是延长实际播放时间;由于速度是全篇共享的,同一区间内其他声部也会一起减速。
用 @box 给音符或一组内容加上矩形外框,突出需要注意的部分。外框本身只是视觉装饰,不改变内容的音高、时值或播放效果。
@box(content, padding=0em, stroke=1px, width=-1px)content:要加框的内容,必填。多个音符用大括号括起来。padding:内容与边框之间的四侧留白,默认0em;允许负值,表示向内收缩。stroke:边框线宽,默认1px;设为0px可以隐藏边框。width:内容的排版宽度,不含留白与边框。默认-1px,随内容自动确定;设为正值时,按指定宽度调整框内音符的水平间距。
@box(1, padding=0.2em) 2 @box({3 4 5}, padding=0.3em, stroke=0.08em) 6留白与边框线宽参与横向排版和纵向占用。给单个音符或复合主体加框时,上下留白也计入 ^、_ 的堆叠间距:
1 ^ @box(3, padding=0.3em) @box(5, padding=0.3em) _ 3跨轨范围框只在整体外围预留上下空间,不扩大框内各轨之间的间距。
指定 width 可以让一段内容占据固定宽度;配合 stroke=0px,也可以只调整排版而不显示外框。
@box({1 2 3}, padding=0.2em, width=6em) @box({4 5 6}, stroke=0px, width=6em)同一个外框的内容不能跨越谱面行,需要换行时应分别加框。指定的宽度必须足以容纳内容;负 padding 收缩后也必须能容纳边框,否则会报错。