From bd658412dd4c70ede379535e37959c19823bd4a0 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Thu, 15 Jul 2010 19:13:44 +0200 Subject: [PATCH] Support for real multi-measure rests (with correct length explicitly specified in XML) --- pae2xml.pl | 16 ++++++++++++---- sample_files/Rests-multimeasure.pae | 7 +++++++ 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 sample_files/Rests-multimeasure.pae diff --git a/pae2xml.pl b/pae2xml.pl index c0ed699..060d1ab 100755 --- a/pae2xml.pl +++ b/pae2xml.pl @@ -193,8 +193,6 @@ 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)/$1/gs; # replace multibar rests #n with just n - while ($notes ne "") { if ($notes =~ /^(\'+|\,+)(.*)$/) { # Octave marks ($oct, $notes) = ($1, $2); @@ -205,13 +203,23 @@ sub parse_notes { } elsif ($notes =~ /^r(.*)$/) { # End grace $notes = $1; $qq = 0; - } elsif ($notes =~ /^(\d+|\=)(\/.*)$/) { # normal and multi-measure rests + } elsif ($notes =~ /^\=(\d*)(\/.*)$/) { # multi-measure rests $measrest = $1; $notes = $2; - if ($measrest eq '=') { + if ($measrest eq '') { $measrest = 1; } $toprint .= "$measrest measures of rest.\n"; + if ($measrest > 0) { + # Create a real multi-bar rest + print OUT ' + + '.$measrest.' + + +'; + } + # Now create the measures for $n (1..$measrest) { print OUT ' diff --git a/sample_files/Rests-multimeasure.pae b/sample_files/Rests-multimeasure.pae new file mode 100644 index 0000000..f0c01ad --- /dev/null +++ b/sample_files/Rests-multimeasure.pae @@ -0,0 +1,7 @@ +Test Composer +Test case for multi-measure rests +1.1.1: S Multi-measure rests +plain&easy: %C-1@c$bBü '=/2AB/=3/=/2AB/=15/2AB/ + +Test Library +00000000 \ No newline at end of file -- 2.11.4.GIT