trans numbered musical notation to vocaloid file 书写简谱以转换为vocaloid支持的vsqx工程文件
最近刚开始学习vocaloid, 经常在翻唱时涉及到扒谱一事
无奈人懒, 且扒谱能力差, 只能找现有的简谱进行转译(个人认为简谱是最适合转译为vocaloid文件的乐谱形式, 因为基本只涉及人声部分, 不像五线谱对整首音乐进行记录)
但在手动转译的过程中,在钢琴卷帘中找音高实在是痛苦
一次心血来潮下, 试了试使用文本编辑器来打开vsqx工程文件, 结果发现vocaloid4的工程文件以xml形式保存
在分析文件后, 发现可以通过书写xml方式生成工程文件
于是就有了做一个简谱转录vsqx文件的想法
但很遗憾, 仍旧是手工转译方法, 但是依然比操作钢琴卷帘要快得多
新建一个名为music.json
的文件, 在文件中书写简谱相关信息, 然后node index
即可
- 必须为标准json格式
- 程序并未做容错处理, 请严格按照说明使用
music.json
大概内容如下
{ "tempo": 90, "key": "C", "beat": "4/4", "notes":[] }
-
tempo
字段为数字类型, 定义了整首歌曲的速度, 对应简谱上的"四分音符=90", 即以4分音符为一拍,每分钟x拍 -
key
字段为字符串类型, 定义了歌曲调号, 对应简谱上"1=C"
- 如有升降号, 升降号写在前, 字符写在后
- 升号为字符"#",降号为小写字母"b", 例如"#C" "bB"
-
beat
字段为字符串类型, 定义了歌曲节奏型, 以x分音符为1拍, 每小节4拍 -
notes
字段类型为数组, 定义了歌曲中所有音符的集合, 请注意书写顺序, 最终会以书写顺序转换
notes
字段内单个音符定义如下{ "type": "16", "pitch": "1", "multiples": 2 }
type
字段类型为字符串, 定义了单个音符的类型, 如果该字段中只有数字, 则被认为是等同数值的x分音符, 例中即为16分音符
如果需要休止符,则在数字前加上小写字母's', 例如's16', 即为16分休止符
如果需要附点,则在数字后加上字符'.', 例如's8.', 即为8分附点休止符 或者 '4.', 即4分附点音符
注意, 如果当前音符被定义为休止符, 则该音符其他字段会被忽略
pitch
字段类型为字符串, 定义了单个音符的音高, 即简谱上的7个唱名, 该字段同调号, 如果需要升降号, 请书写在数字之前,例如"#1"multiples
字段类型为数字, 该字段为可选字段可以不写, 辅助定义音符音高, 该数字为正整数时, 为x倍音高, 如上例中 2, 即为倍高音'DO', 对应简谱 "1"上方2个高音记号
如果该字段为负整数, 则为x倍低音
仓库中music.example.json
文件是一个简单的music.json
示例
修改music.example.json
文件名为music.json
node index
即可
该例中转译了一段<追光者>的副歌