App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/roman-1.js view on Meta::CPAN
if (ty == 2 && p[o2] == 'm') {
n = n.toLowerCase()
o2++
}
csa[i] = p.slice(0, o)
+ n
+ p.slice(o2)
}
return csa.join('/')
} // set_nm()
if (ty && s.a_gch) {
for (ix = 0; ix < s.a_gch.length; ix++) {
gch = s.a_gch[ix]
t = gch.text
if (gch.type == 'g' && t && t[0] != 'N') {
t = set_nm(t)
if (t)
gch.text = t
}
}
}
of(s)
}, // gch_build()
// hook before the generation
o_mus: function(of) {
var tsfirst = this.get_tsfirst()
if (this.cfmt().roman) {
abc2svg.roman.tr = (tsfirst.p_v.key.k_sf + 12) * 5
// transposition to "C"
if (tsfirst.p_v.key.k_mode) {
abc2svg.roman.tr += 3 // minor
abc2svg.roman.nm = abc2svg.roman.nm_m
} else {
abc2svg.roman.nm = abc2svg.roman.nm_M
}
}
of()
}, // o_mus()
set_fmt: function(of, cmd, parm) {
var ty,
cfmt = this.cfmt()
if (cmd == "roman") {
if (!parm)
parm = "1"
ty = Number(parm)
if (isNaN(ty))
this.syntax(1, this.errs.bad_val, "%%roman")
else
cfmt.roman = ty
return
}
of(cmd, parm)
}, // set_fmt()
set_hooks: function(abc) {
abc.gch_build = abc2svg.roman.gch_build.bind(abc, abc.gch_build)
abc.output_music = abc2svg.roman.o_mus.bind(abc, abc.output_music)
abc.set_format = abc2svg.roman.set_fmt.bind(abc, abc.set_format)
} // set_hooks()
} // roman
if (!abc2svg.mhooks)
abc2svg.mhooks = {}
abc2svg.mhooks.roman = abc2svg.roman.set_hooks
( run in 0.713 second using v1.01-cache-2.11-cpan-2398b32b56e )