Skip to content

129s/Lyra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lyra

音高:

0代表休止 CDEFGAB为当前八度内对应音名,可以后置数字用于指明音域 也可以用数字表示调内音级(1-127) 前置#b为升降,后置+-为八度升降 例:C4、0、##7+、bE5+

和弦:

音高记号后加和弦属性记号即可,采用爵士和弦标记(除了大三和弦标记为M用作和普通音符的区分)

元数据:

tempo:速度(bpm),值为浮点数或整数 meter:拍号,值为分数 unit:元素单位时值,值为分数或浮点数,如@unit=1/4代表其子元素是1/4小节的时值 key:调性,值为音名 oct:当前的八度 如果没有对应的metadata覆写,那么继承自上一级

元素

组成: 容器/音高/和弦/补齐符

补齐符

".": 填充小节中的空白部分,如{@meter=4/4 @unit=1/4 {1 2 .}}中1 2 .等价于1 2 0 0,又如1 . 2等价于1 0 0 2

容器:

{}:顺序排列子元素的容器,如{1 2 3 4}依次播放1 2 3 4,前一个元素的结束点对齐后一个元素的起始点 []:固定时值的容器,其子元素均匀占据[]所占有的时间,如[(1 1+) 2]在其上下文中占有1个时间,那么(1 1+)和2分别占有1/2的时间 ():同步子元素的容器,如(1 3 5 7)是一个七和弦,默认按照起始点对齐

容器内容:

组成:前体、前对齐符、主体、后对齐符、后体 前体、主体、后体为元素组成 对齐符用于给容器提供与其他容器对齐的锚点

对齐规则:

":": 设置了一个容器的起始点,当容器被组合时,父容器会根据冒号对齐各个容器,如({1:2}{4##:5 6})将会把2和5对齐,也就是说,冒号是容器的播放起始点。另如{{1 2}{3:4}}等价于{1 (2 3) 4},因为{}会顺序排列其子容器所以{3:4}中4排列在2后,3会放在前面与2对齐。又如{1:{2:3}},等价于{(1 2):3}。 如果没有冒号,则默认的起始点为开头,如{1 2 3}默认为{:1 2 3} ";": 设置了一个容器的结束点,没有分号结束点默认为尾部,其他同冒号 对齐指的是当前容器的对齐点,而不是容器里的元素的对齐点。比如{1 :2 3; 4}这代表主体部分是{2 3},1和4的位置根据主体部分来计算,如{{1:2}{3:4}}={{1:2;}{3:4;}}={1 (2 3) 4}。至于!()的规则是对齐各个部分的结束点,如!({1}{2;3})={2 (1 3)} 分号仅仅是定义该容器的结束位置,不影响元素。首先{{1:2}{3:4}}我可以先等价写出{1:2}{3:4},也就是说如果没有任何括号,默认为顺序排布,然后{1:2}没有设置结束点,则结束点默认为最后一个元素结束的时刻,也就是说,{1:2}={1:2;},而{1:2;}的;会与{3:4}的:对齐(这是顺序容器的性质,前一个元素的结束对齐后一个元素的起始),又由于时值默认都是一样的,所以最终形成{1 (2 3) 4}

About

Structured Music Mark Language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages