App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/jianpu-1.js view on Meta::CPAN
s.ymx = 20 * s.nhd + 22
if (s.notes[s.nhd].jo > 2) {
s.ymx += 3
if (s.notes[s.nhd].jo > 3)
s.ymx += 2
}
s.ymn = 0 // bottom of line
break
}
}
}, // set_pitch()
set_vp: function(of, a) {
var i,
p_v = this.get_curvoice()
for (i = 0; i < a.length; i++) {
if (a[i] == "jianpu=") {
p_v.jianpu = this.get_bool(a[++i])
if (p_v.jianpu)
this.set_vp([
"staffsep=", "20",
"sysstaffsep=", "14",
"stafflines=", "...",
"tuplets=", "0 1 0 1"
// [auto, slur, number, above]
])
break
}
}
of(a)
}, // set_vp()
// set the width of some symbols
set_width: function(of, s) {
of(s)
if (!s.p_v // (if voice_tb[v].clef/key/meter)
|| !s.p_v.jianpu)
return
var w, m, note,
C = abc2svg.C
switch (s.type) {
case C.CLEF:
case C.KEY:
// case C.METER:
s.wl = s.wr = .1 // (must not be null)
break
case C.NOTE:
for (m = 0; m <= s.nhd; m++) {
note = s.notes[m]
if (note.acc && s.wl < 14) // room for the accidental
s.wl = 14
}
break
}
}, // set_width()
set_hooks: function(abc) {
abc.calculate_beam = abc2svg.jianpu.calc_beam.bind(abc, abc.calculate_beam)
abc.draw_symbols = abc2svg.jianpu.draw_symbols.bind(abc, abc.draw_symbols)
abc.output_music = abc2svg.jianpu.output_music.bind(abc, abc.output_music)
abc.set_format = abc2svg.jianpu.set_fmt.bind(abc, abc.set_format)
abc.set_pitch = abc2svg.jianpu.set_pitch.bind(abc, abc.set_pitch)
abc.set_vp = abc2svg.jianpu.set_vp.bind(abc, abc.set_vp)
abc.set_width = abc2svg.jianpu.set_width.bind(abc, abc.set_width)
// big staccato dot
abc.get_glyphs().gstc = '<circle id="gstc" cx="0" cy="-3" r="2"/>'
abc.get_decos().gstc = "0 gstc 5 1 1"
abc.add_style("\n.fj{font:15px sans-serif}")
} // set_hooks()
} // jianpu
if (!abc2svg.mhooks)
abc2svg.mhooks = {}
abc2svg.mhooks.jianpu = abc2svg.jianpu.set_hooks
( run in 0.896 second using v1.01-cache-2.11-cpan-2398b32b56e )