2024-01-08
使用 Tone.js,开发中。
关于 simple tune - 简单的非专业旋律表示:
用于表示简单旋律的字符串格式。
使用数字 1 ~ 7 表示音符,使用 ( )
包裹的音符时长减半,用 0
或 -
表示休止符。每拍都需要用音符或休止符占位。
更多操作见文档部分。开发中,规则可能会改变。
使用数字 1 ~ 7 表示单个音符。
在数字后加 '
表示升8度,加 ,
表示降8度。可多次使用,如 1''
。
在数字前加 #
表示升半音,加 b
表示降半音。
默认音符为一拍。
使用 ( )
包裹的音符时长减半。可嵌套使用,如 ((1))
表示1/4拍。
使用 (3% )
包裹的音符时长减为 1/3,以此类推。
使用 0
或 -
表示休止符,每一拍都需要用音符或休止符填充。
使用 [ ]
包裹和弦,使用 < >
包裹琶音。
|:
为重复开始,:|
为重复结束。乐谱开头的重复开始可以省略。
若多次重复的结尾处有不同部分,使用 |1%
表示不同结尾部分的开始,其中数字为重复次数。例:
|: A |2% B |1% C :|
,演奏顺序为 A-B-A-B-A-C;
|: A |3%:|
,演奏顺序为 A-A-A。
使用 v1:
表示声部,其中数字为声部号,可省略。
使用 { }
包裹附加操作,格式: { 操作名称: 参数 }
,不可嵌套。所有操作在输入操作的位置之后生效。
目前支持的操作:
{ bpm: 120 }
- 将 bpm 调整为 120{ octave: 3 }
- 将八度区间调整为 3(默认为4){ arpeggio-delay: 75 }
- 为每组琶音后增加延迟,单位为毫秒
琶音中音符的时长间隔为 1/10 拍,但间隔的时长不顺延至后续音符。
若在时值较短的一串音符中使用琶音,可能导致琶音与后续音符间隔过短,影响演奏效果。酌情使用琶音延迟可缓解此问题。
|
为小节线,使用 /* */
包裹注释,使用 //
进行单行注释。
操作的数值需要在四位数以内。空格,换行对解析没有影响。
《牧场物语》开场 (2) (八音盒)
花的摇篮曲
(有删改)
春日影