Coder Social home page Coder Social logo

nmn2vsqx's Introduction

nmn2vsqx

trans numbered musical notation to vocaloid file 书写简谱以转换为vocaloid支持的vsqx工程文件

简介

最近刚开始学习vocaloid, 经常在翻唱时涉及到扒谱一事

无奈人懒, 且扒谱能力差, 只能找现有的简谱进行转译(个人认为简谱是最适合转译为vocaloid文件的乐谱形式, 因为基本只涉及人声部分, 不像五线谱对整首音乐进行记录)

但在手动转译的过程中,在钢琴卷帘中找音高实在是痛苦

一次心血来潮下, 试了试使用文本编辑器来打开vsqx工程文件, 结果发现vocaloid4的工程文件以xml形式保存

在分析文件后, 发现可以通过书写xml方式生成工程文件

于是就有了做一个简谱转录vsqx文件的想法

但很遗憾, 仍旧是手工转译方法, 但是依然比操作钢琴卷帘要快得多

使用说明

新建一个名为music.json的文件, 在文件中书写简谱相关信息, 然后node index即可

music.json书写方式说明

  • 必须为标准json格式
  • 程序并未做容错处理, 请严格按照说明使用

music.json大概内容如下 { "tempo": 90, "key": "C", "beat": "4/4", "notes":[] }

  • tempo字段为数字类型, 定义了整首歌曲的速度, 对应简谱上的"四分音符=90", 即以4分音符为一拍,每分钟x拍

  • key 字段为字符串类型, 定义了歌曲调号, 对应简谱上"1=C"

  1. 如有升降号, 升降号写在前, 字符写在后
  2. 升号为字符"#",降号为小写字母"b", 例如"#C" "bB"
  • beat字段为字符串类型, 定义了歌曲节奏型, 以x分音符为1拍, 每小节4拍

  • notes 字段类型为数组, 定义了歌曲中所有音符的集合, 请注意书写顺序, 最终会以书写顺序转换

notes 字段内单个音符定义如下{ "type": "16", "pitch": "1", "multiples": 2 }

  1. type 字段类型为字符串, 定义了单个音符的类型, 如果该字段中只有数字, 则被认为是等同数值的x分音符, 例中即为16分音符

如果需要休止符,则在数字前加上小写字母's', 例如's16', 即为16分休止符

如果需要附点,则在数字后加上字符'.', 例如's8.', 即为8分附点休止符 或者 '4.', 即4分附点音符

注意, 如果当前音符被定义为休止符, 则该音符其他字段会被忽略

  1. pitch 字段类型为字符串, 定义了单个音符的音高, 即简谱上的7个唱名, 该字段同调号, 如果需要升降号, 请书写在数字之前,例如"#1"
  2. multiples 字段类型为数字, 该字段为可选字段可以不写, 辅助定义音符音高, 该数字为正整数时, 为x倍音高, 如上例中 2, 即为倍高音'DO', 对应简谱 "1"上方2个高音记号

如果该字段为负整数, 则为x倍低音

快速开始

仓库中music.example.json文件是一个简单的music.json示例

修改music.example.json文件名为music.json

node index即可

该例中转译了一段<追光者>的副歌

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.