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) (八音盒) 
花的摇篮曲
(有删改) 
春日影