score.ops

Score operation functions for translating, scaling, repeating, and merging
serial and parallel parts. Also for calculating durations. Assumption about
score note format are described in each function's documentation.

sco-dur

(sco-dur sco)
Calculates score block duration. Assumes 2nd and 3rd items in each Note 
represent start time and duration.

|*|

(|*| sco num-repeat dur)(|*| sco num-repeat dur start)
Repeat score for num-repeat times every duration in time.

|+|

(|+| sco start)
Adjust start times for score. Assumes 2nd item in each Note represents
start time.

|p|

(|p| & sco-blocks)
Flattens list of score blocks into a single list in parallel. (Simply 
concatenates blocks.)

|scale-to|

(|scale-to| sco dur)

|scale|

(|scale| sco multiplier)

|s|

(|s| & sco-blocks)
Flattens list of score blocks into single list in series, adjusting 
start times for each event in score block to follow previous score block.
If an item within the sco-blocks is a number, it will advance the start time
by that number (useful to put in space between score blocks).