diff --git a/pae2xml.pl b/pae2xml.pl index 8957a84c46b15ec86bdbaf5b41bfe53d4c8e7f60..1e2d2800d979081bc178477beab9d213491c66ad 100755 --- a/pae2xml.pl +++ b/pae2xml.pl @@ -256,6 +256,7 @@ sub parse_notes { $notes =~ s/(\.|\d|\,|\')qq/qq$1/gs; # pull beginning mark of group of grace notes in front of corresponding notes $notes =~ s/(xx|x|bb|b|n)qq/qq$1/gs; # qq first, then parts of notes $notes =~ s/([\.\d,'xbn])+(q|g)/$2$1/gs; # q and g first, then parts of notes + $notes =~ s/(\{)(\d\.*(\d\.*)+)/$2$1/gs; # pull beaming inside a rhythmic model # Beam starts/endings are handled by the first/last note of the beam, since # we need to know for the first note the <beam>begin</beam> and for the @@ -424,8 +425,7 @@ sub parse_notes { } elsif ($notes =~ s/(\d+\.*)\(({?(g|q)?(\,|\')*(x|xx|b|bb|n)?\d*\.*(\-|A|B|C|D|E|F|G)t?\+?}?)\)/\($1$2\)/gs) { # pull duration into fermata parentheses # print "after replacement: $notes\n"; exit; - } - elsif ($notes =~ /^ +(.*)$/) { + } elsif ($notes =~ /^ +(.*)$/) { $notes = $1; print("Invalid space encountered in notes before $notes\n"); } diff --git a/sample_files/4-11d-Shortcuts-rhythmic-model-beaming.pae b/sample_files/4-11d-Shortcuts-rhythmic-model-beaming.pae new file mode 100644 index 0000000000000000000000000000000000000000..9322e0eb47bcc4032538a00f80516eb0287dc3e4 --- /dev/null +++ b/sample_files/4-11d-Shortcuts-rhythmic-model-beaming.pae @@ -0,0 +1,8 @@ +Test Composer +Test case for a rhythmic model with enclosing beaming +1.1.1: S rhythmic model with enclosing beaming +plain&easy: %G-2@c$xFC� {8.6''FADD}{DFEG}/{FA}{DD} + +pae2xml Test Suite 4-11d-Shortcuts-rhythmic-model-beaming +4-11d-Shortcuts-rhythmic-model-beaming +