@Darcy
2018-06-05T06:26:41.000000Z
字数 3063
阅读 1559
主标题:
语法:T: 单身情歌 (第一个)字段:metaText.title
副标题:
语法:T: 演唱 林志炫(第n个,n 大于等于2)字段:metaText.subtitle
作者:
语法:C: 陈耀川字段:metaText.composer
当有多个 C 出现的时候,在composer用换行符分隔。
字段:
staff[n].voices[0] = {head: "jianpu", el_type: "style"}
调号:
语法:K: C字段:key{acc:'', //升降调 (#/b)accidentals:[],// 忽略mode:'', // 忽略root:'C' //调名}
拍号:
语法:M: 3/8字段:meter{type: 'specified', //可忽略value: [{num:'3',den:'8'}]}
速度:
语法:Q: 1/4=120 "Slowly"字段:metaText.tempo{bpm: 120,duration:[0.25],postString: 'Slowly'}
上面表示 一分钟 120 个 1/4 拍。
字段:staffs[i].voices[i]:{chord: [{name: "C/E", //和弦名称,查询和弦表position: ''// 忽略}],duration: 0.0625, //音长el_type: 'note',pitches: [{fret:1, //品数,或者'x'string: 5, //第几弦:{a:1, b:2, c:3, d:4, e:5, f:6}pitch: 2 //简谱用到accidental: 'sharp' //升半音:sharp, 降半音:flat}], //多个的时候表示和声,需要在同一线上绘制,可能是扫弦。decoration: ['staccato','downstrum']//装饰音gracenotes: {},//倚音rest: {//休止符type: rest/multimeasure},startTie: {//延长音开始//{'S':'shift slide', 'H':'hammer on', 'P':'pull off'}effect: "shift slide" //滑音等一下效果音会有这个字段,}endTie: //延长音结束startSlur: //连音开始endSlur: //连音结束startTriplet: 3 // n连音开始标识位,表示 3 连音endTriplet: // n连音结束标识位tripletMultiplier: //连音音长lyric:[{ //歌词, 可能有多行歌词divider:'',syllable:'',}],end_beam:true //符干分组}
四/六线谱
{fret:1, //品数,或者'x'string: 5, //第几弦:{a:1, b:2, c:3, d:4, e:5, f:6}}
简谱
在 muse 中,中央 C 代表 1, 小 c 代表高八度的 1,C' 则表示小八度的 1,C'' 则必C'更小,c' 则是比 c 高八度。
如下按音从低到高,其顺序和五线谱的表示法是一致的:
C'', C', C, c, c', c''
对应在pitch字段中的值是:
{A: 5, B: 6, C: 0, D: 1, E: 2, F: 3, G: 4, a: 12, b: 13, c: 7, d: 8, e: 9, f: 10, g: 11}C' = C(0) - 7 = -7c' = c(7) + 7 = 14依此类推...
变音记号
例子:
^b1
| 语法记号 | 字段名 | 含义 |
|---|---|---|
^ |
sharp | 表示升半音 |
= |
natural | 表示还原音 |
_ |
flat | 降半音 |
^^ |
double sharp | 升全音(暂不考虑) |
默认音长:L: 1/4
语法:
/、/2 默认音长一半0.5// 默认音长 1/4(0.25)2 默认音长 2 倍> 前付点 3/2 倍,后减音长 1/2 < 后付点,前减音长
弹唱谱例子:c1/, c1/2, cx//, a2*2简谱例子:A/, C// ,c1
弹唱谱需要表示把位,所以需要用/表示倍减,*表示倍增。
音长计算的值 = 默认音长 * 音长的倍数,
所有和弦包括默认的和弦在和弦表字段gchords当中,如果不存在在和弦表中,则绘制和弦名称即可。
语法:
语法:<和弦名称>=<起始品数>;<第n弦品位>(手指),<第n-1弦品位>(手指),...<第1弦品位>(手指)例子: %%gchord C=1;X,3,2,0,1,0
其中手指是可选的。X代表和弦外音。
数据结构:
{name: "C", //和弦名chord: [[1, 0],[2, 1], [3, 0], [4, 2], [5,3], [6, "X"]], //[<第几品>:<手指>],数组的长度是弦的数量,数组下标按弦从上往下(从粗到细), x 代表和弦外音position: 3 //开始品数}
position 没有声明不需要绘制。
用法:在音符前添加。
例子:u[b1*2-e3/]
下面是可能出现的装饰音:
| 语法符号 | 对应字段 | 意思 |
|---|---|---|
| . | staccato | 断音、切音 |
| V | upstrum | 上扫弦 |
| U | downstrum | 下扫弦 |
| A | uparpeggio | 上琶音 |
| B | downarpeggio | 下琶音 |
| ' | accent | 加重 |
| T | trill | 颤音 |
| H | fermata | 延长音 |
| S | segno | 反复记号 |
| P | pralltriller | 延长 |
吉他谱比较少见,可不考虑,简谱有经常看到,需要考虑。
用法:在音符前添加。
例子:{a1b1}[c2//d2//]
数据结构:和音符是一样的
{accidental:'sharp',duration: 0.5,el_type:'note',pitch: 12,fret:1,string:1}
语法:
(n简单连音例子:(2aC1(p:q:r复杂连音例子:(3:2:4G2A2B1
对应数据:
startTriplet: 开始标识位endTriplet: 结束标识位tripletMultiplier: 每个音音长 绘制不需要关心这个?
表示符号:z 和 Z,音长方面表示和音符是一样的。
语法:
tie :
ex-ex 、[^b1*2-e3/]-S-[b2*5/2e4*5/2]
slur: 可以嵌套
((a3b2d2)b1)
数据结构:
{el_type:'bar',type: 'bar_thin' //bar类型startEnding: '' //重复段落数字和开始标志endEnding: '' //重复结束标志barNumber: '' //忽略}
| 类型 | 语法 | 含义 |
|---|---|---|
| bar_thin | | | 小节线 |
| bar_left_repeat | :| | 重复左侧 |
| bar_right_repeat | |: | 重复右侧 |
| bar_dbl_repeat | :: | 两边重复 |
| bar_thick_thin | [| | 左粗右细 |
| bar_thin_thick | |[ | 左细右粗 |
| bar_thin_thin | || | 两条细线 |
| bar_invisible | [:] | 虚小节线 |
英文歌词以空格断字,中文单字断字。
| 语法 | 数据表示 | 含义 |
|---|---|---|
| - | 英文单词断开 | |
| * | 跳过一个音符 | |
| ~ | 链接连个字,对齐同个音符 |
如何知道是付点音符?
如何判断一组音符?比如相加为一拍的音符为一组~
(1)N连音的音符为一组;
(2)如果音符音长 >= 0.25 的,则自己为一组;
(3)如果小于 0.25 的,则继续和后面的音符为一组,直到音符音长和大于0.25。