lewdlime / abcm2ps

abcm2ps is a command line program which converts ABC to music sheet in PostScript or SVG format. It is an extension of abc2ps which may handle many voices per staff. abcm2ps is Copyright © 2014-2016 Jean-Francois Moine.
http://moinejf.free.fr/
GNU General Public License v3.0
80 stars 31 forks source link

Problem when a long decoration acrosses more than two rows #107

Open thuhuwei opened 2 years ago

thuhuwei commented 2 years ago

For example, the 8va line cannot be seen in the 2-nd row. I found the same problem for long !trill(! lines too.

What's wrong?

the abc example:

X:1 Z:? L:1/4 Q:1/4=145 M:4/4 I:linebreak $ K:C V:1 treble V:1 (!8va(!e/d/ e/g/ | !2!d/e/4g/4 e/4d/4!1!c/ !3!A/G/ A/c/ | G) z!mf! (!3!e/d/ e/g/ | $ !2!d/e/4g/4 e/4d/4!1!c/ !3!A/G/ A/c/ | G) z/ z/4!f! (.a/4 .g/.c'/ .a/.g/ | .e/.a/ g/)!p!(e/ .g/.c'/ .a/.g/ | .e/.a/ g/)!f!(e/ g/4a/4g/4e/4 d/4e/4g/ | $ a/4g/4e/4d/4 c/e/ d/4e/4d/4c/4 A/c/!8va)! | 2021-11-25 13-41-35 的屏幕截图

hkiel commented 2 years ago

Ottava is only defined as a single symbol that stretches from !8va(! to line end or !8va)!, whichever comes first, and from line start or !8va(!, whichever comes last, to !8va)!. It is not handled like a beam, only the notes in between opening and closing tags are shifted by an octave.

moinejf commented 2 years ago

Sorry for this bug asks for too much development. It has been fixed in abc2svg (https://chiselapp.com/user/moinejf/repository/abc2svg).