Appearance
按规则转换音符
根据你上一步(寻找合适的乐谱
)挑选的乐谱,按一定的规则进行转换,暂且把这一步得到的文本叫做”*音符时机文本“吧(吐槽:所以到底要叫什么名字?第二步得到的文本?)。
老实讲,这一步是最难的了,没点乐理知识和耐心,还真折腾不出来。。。需要计算每个音符的响起的时机,很耗时耗力。
规则
风物之诗琴如下图所示:
图片中音符对应的规则如下:
音高/序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
高音/H | C5 | D5 | E5 | F5 | G5 | A5 | B5 |
中音/M | C4 | D4 | E4 | F4 | G4 | A4 | B4 |
低音/L | C3 | D3 | E3 | F3 | G3 | A3 | B3 |
H-1(高音第1个音符)对应C5,M-1(中音第1个音符)对应C4,等等。
以上规则依赖基础基础乐理和MIDI知识,对照如下:
除上述规则外,还需要确定每个音符响起的时机,单位是毫秒,ms。
新建记事本,从上至下顺序按照H-1-400的格式写下每行代码,设置初始等待时长一个小节(4/4拍即为四个4分音符),设置不同时值音符时长诸如:
3200-全音符时长,1600-2分音符时长,800-4分音符时长
400-8分音符时长,200-16分音符时长,100-32分音符时长
因此我们可以得到如下样式的文本:
L-6-800
M-7-400
L-1-400
M-7-800
L-1-200
...
注意:H、M、L写的时候,可以不用区分大小写。
此文本的每一行,表示某个音符响起的时机,例如L-6-999
表示A3音符在第999毫秒时响起,之后是M-7-333
,它表示B3音符在上个音符响起后的第333毫秒响起。
如何表示和弦?
一组和弦写作文本时,从低音往高音依次记录,只有第一个音符记录时长,其他音符全部记作0.
以这组和弦为例:
图片中的音符依次可以写作如下样式的文本:
M-2-800
M-3-0
M-6-0
如何表示双手五线谱?
左右手合并写作文本时,将左右手五线谱合并看做一条五线谱,仍然依照和弦记录方式写。
以这小节为例:
图片中的音符依次可以写作如下样式文本:
L-6-800
M-2-0
M-3-0
M-6-0
L-3-400
L-6-400
M-3-1600
M-5-0
M-7-400
注意:该小节第一组音符中,右手和弦下面对应的左手单音原应是A2,由于原神风物之诗琴音域内没有这么低的音,所以灵活处理为A3。
如何计算乐曲速度?
先计算出该曲最快音符(一般为32分音符)的时值,由于小数代码读取有误差所以一律取整,用当前曲子最快音符时值除以预设标准音符时值(100ms)即可得速度比例。
以这个乐谱为例:
计算取整得该曲32分音符时值为70ms,除以100ms,为0.7,随后在转换器中修改代码数值为0.7,保存为当前乐曲速度的适用转换器。
转换器中修改部分如下: