App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/strtab-1.js view on Meta::CPAN
case "diafret":
p_v.diafret = true
break
case "minfret=":
minfret(a[++i])
break
case "nodot":
p_v.nodot = 1 //true
break
}
}
// define the elements of the tablature
if (ok) {
if (!strs && parse.tab) { // if a global definition
strs = parse.tab
if (strs.indexOf("diafret") >= 0) {
p_v.diafret = true
strs = strs.replace(/\s*diafret\s*/, "")
}
if (strs.indexOf("nodot") >= 0) {
p_v.nodot = 1 //true
strs = strs.replace(/\s*nodot\s*/, "")
}
}
if (strs) {
e = strs.slice(-1)
if (e >= '1' && e <= '9')
tab = str2tab(strs.split(',')) // W.V.'s syntax
else
tab = abc2tab(strs) // ABC syntax
if (!tab) {
this.syntax(1, "Bad strings in tablature")
ok = false
}
} else if (!p_v.tab) {
tab = p_v.diafret ?
[17, 14, 10] : // dulcimer
[40, 45, 50, 55, 59, 64] // guitar strings
} else {
tab = p_v.tab
}
}
if (ok) {
if (p_v.capo) {
p_v.tab = []
for (i = 0; i < tab.length; i++)
p_v.tab.push(tab[i] + p_v.capo)
} else {
p_v.tab = tab
}
a.push("clef=") // set the clef
g = this.get_glyphs()
if (tab.length == 3) {
a.push('"tab3"')
if (!g.tab3)
// SMuFL: -none-
g.tab3 = '<text id="tab3"\
x="-2,-2,-2" y="-4,3,10"\
style="font:bold 8px sans-serif">TAB</text>'
} else if (tab.length == 4) {
a.push('"tab4"')
if (!g.tab4)
// SMuFL: \ue06e
g.tab4 = '<text id="tab4"\
x="-3,-3,-3" y="-8,1,10"\
style="font:bold 12px sans-serif">TAB</text>'
} else if (tab.length == 5) {
a.push('"tab5"')
if (!g.tab5)
// SMuFL: -none-
g.tab5 = '<text id="tab5"\
x="-4,-4,-4" y="-11,-2,7"\
style="font:bold 12px sans-serif">TAB</text>'
} else {
a.push('"tab6"')
if (!g.tab6)
// SMuFL: \ue06d
g.tab6 = '<text id="tab6"\
x="-4,-4,-4" y="-14.5,-4,5.5"\
style="font:bold 13px sans-serif">TAB</text>'
}
a.push("stafflines=")
a.push("|||||||||".slice(0, tab.length))
p_v.staffscale = 1.6
// p_v.scale = .6
// p_v.straightflags = true
}
of(a)
}, // set_vp()
set_hooks: function(abc) {
abc.draw_symbols = abc2svg.strtab.draw_symbols.bind(abc, abc.draw_symbols)
abc.gch_build = abc2svg.strtab.csan_bld.bind(abc, abc.gch_build)
abc.set_format = abc2svg.strtab.set_fmt.bind(abc, abc.set_format);
abc.set_stems = abc2svg.strtab.set_stems.bind(abc, abc.set_stems)
abc.set_sym_glue = abc2svg.strtab.set_glue.bind(abc, abc.set_sym_glue)
abc.set_vp = abc2svg.strtab.set_vp.bind(abc, abc.set_vp)
// define specific decorations used to force the string number
var decos = abc.get_decos()
decos["1s"] = "3 nil 0 0 0"
decos["2s"] = "3 nil 0 0 0"
decos["3s"] = "3 nil 0 0 0"
decos["4s"] = "3 nil 0 0 0"
decos["5s"] = "3 nil 0 0 0"
decos["6s"] = "3 nil 0 0 0"
abc.param_set_font("tabfont", "sans-serifBold 7")
} // set_hooks()
} // strtab
if (!abc2svg.mhooks)
abc2svg.mhooks = {}
abc2svg.mhooks.strtab = abc2svg.strtab.set_hooks
( run in 0.555 second using v1.01-cache-2.11-cpan-5a3173703d6 )