Rippling Measures

Preliminary note 1: these macros will ripple measures from one system to another system for single staves only (for instrumental parts, this would almost always be sufficient). If you wish to ripple measures from multiple staves at once, you’d have to invoke the standard SCORE commands for that. Of course, ultimately, it is hoped that on ScorBox.com we’ll be able to post additional macros (mere variations on those available on this page) to address that need. You are invited to submit such macros for posting and download.

Preliminary note 2: please note that all of these macros attempt, as part of their SCORE command syntax, to modify measure numbers as required. This will work only if measure numbers have been assigned as code 10 elements, and if their p3 values fall between -3 and +3 (look inside the macros for specifics). If that is not the case in your files, then measure numbers will not be modified. And in the case of instrumental parts, block rests on the source and target staves may require additional measure number modifications.

Four macros are included in the download file on this page:

  • Ripple measure(s) down  (Activation: Ctrl+-)
  • Ripple measure(s) to next page . . .  (Activation: Ctrl+f)
  • Ripple measure(s) to previous page . . .  (Activation: Ctrl+r)
  • Ripple measure(s) up  (Activation: Ctrl+=)

These macros execute simple SCORE commands, but do so more quickly and efficiently than executing the commands manually would be. For instance, if you wanted to ripple one measure from the end of staff 3 to the beginning of staff 2, SCORE’s command structure would compel you to type the following command sequence:

rip
1
3
2
1

in response to various prompts, like this:

Now, instead of typing all these prompts, you can simply invoke macro “Ripple measure(s) down” (for instance, by invoking it with hotkey Ctrl+-), and you’ll be presented with the following prompt:

Here, simply indicate the source staff. Once you’ve done this, the following prompt appears:

Here, simply indicate how many measures to ripple, and you’re done. Four prompts have been reduced to two prompts. At the end of the operation, the following prompt appears:

If the results are unacceptable, or you made an error, click “Undo,” and the file as it was before the operation is instantly restored.

Rippling measures upward to the preceding system functions similarly. Invoke macro “Ripple measure(s) up” (for instance, by invoking hotkey Ctrl+=) and simply follow the two prompts.

The issue of rippling measures between files, e.g. from the bottom of one file to the top of the next file is a  lot more cumbersome. It always requires saving the content of file 1 to some intermediary file (a “swap file”), then manipulating that intermediary file appropriately, and importing the manipulated intermediary file into file 2. For instance, moving the last measure of staff 2 (staff 1 perhaps being an invisible staff with footer content) of file AAAA.MUS onto staff 9 as the top staff of file AAAB.MUS will require a command sequence such as the following (assuming file AAAA.MUS is currently open):

sa
swapfile
de
1 -30
ms
2 33
1
de
2 -30 0 0 33
st1 8
[delete]
sm
g aaab
ms
10 33
11
st9 8
2 10
c
gm swapfile
10
rip
1
10
9
1
de
10 -30
ms
11 30
10
a
9 -5 5 10
500 -1
sm
g aaaa
ms
2 33
3
c
3 -20
2
rip
1
3
2
1
de
2 -30
ms
3 33
2
sm

Not exactly convenient! This entire process can now be easily executed by invoking macro “Ripple measure(s) to next page . . .” (for instance, by invoking it with hotkey Ctrl+f) and following the prompts:

This first prompt indicates to you between which files the measure(s) would be rippled. It is assumed that you would wish to ripple measures from a currently open file to the adjacent file (in this case, the subsequent file). Thus, you don’t need to memorize, or note, which two files you need to edit, as the macro keeps track of that for you. If the files indicated by the macro, for some reason, are not the files between which you wish to ripple measures, you can choose the files manually (as indicated by the prompt), or perhaps abort the macro, load the source file, and then invoke the macro again.

The next prompt that appears is as follows:

Simply indicate how many measures you wish to move. Next, the following prompt appears:

Simply indicate the source staff. Next, the following prompt appears:

Here, simply indicate the target staff. Note that, as part of this macro, the target file has been called up, and the display moved to the top of the page so as to make it as easy as possible to identify the target staff number for this prompt.

For safety, the next prompt that appears is as follows:

Here, you have another chance to review your input.

Once you click OK, sit back and enjoy the show… as the macro performs all required commands for you automatically. Thus, the entire command string given above has now been reduced to three simple indications. At the end of the operation, the following prompt appears:

Here, you have the opportunity to review the results of the process. Move back and forth between the two files as often as you wish (keeping the prompt open). If you are satisfied with the result, click “Accept,” and the macro terminates. Otherwise, click “Undo,” and the original files are instantly restored.

Within Macro Express, position these four macros into “SCORE commands”:

You may wish to assign these four macros to your menu structure. Here is how I have done this:

Enter the “Edit . . .” menu:

Next, choose “Ripple measures . . .”:

Finally, choose the applicable module:

Rather than trying to envision all these macros from the descriptions on this page, it might be helpful to see these macros in action within ScorBox. Here is a video that demonstrates each of these macros:

Posted by Jürgen Selk

initial posting:  7 July 2011

Download file:

Rippling measures.zip

The download file contains the following:

Macro Express modules:

  • Ripple measure(s) down
    (Ctrl- -) [SC]
  • Ripple measure(s) to next page . . . (Ctrl-f) [SC]
  • Ripple measure(s) to previous page . . . (Ctrl-r)
  • Ripple measure(s) up (Ctrl-=) [SC]