FOMUS can "splice" together the outputs of two or more runs of the FOMUS
command. This allows sections or parts to be produced separately and put together into a complete score. Each section or part
(referred to here as a "chunk") can then be produced with different arguments.
Support for this is considered unstable at the moment. Bugs (there are probably at least a few) will be squashed and more enhancements will be added shortly.
FOMUS outputs a chunk object automatically on each successful run.
If no outputs are specified, then :CHUNK
or :NONE
must be specified to prevent FOMUS
from complaining that there are no outputs.
A chunk is actually all of the measures in the processed output that contain anything other than measure rests.
Chunks can only be merged together if there are no such overlapping measures. (At the moment, chunks can't be "relocated" or given an offset--this
obvious features will be added soon.) FOMUS considers parts with matching
PARTID
values to be the same and will match them accordingly. Chunks may contain
parts that aren't in other chunks--FOMUS assembles all unique parts into one score and reorders them again after merging.
There are several ways to tell FOMUS to merge chunks. Some examples are given here in both Lisp and command-line syntax:
Example 3.14. FOMUS Usage 13
(fomus (list (fomus ...arguments_for_chunk1...) (fomus ...arguments_for_chunk2...)) :filename "path_to/myoutputfile" :output :musicxml-finale)
Example 3.15. FOMUS Usage 14
(fomus (list (fomus ...arguments_for_chunk1...) "path_to/myfomusfile_chunk2.fms") :filename "path_to/myoutputfile" :output :cmn)
Example 3.16. FOMUS Usage 15
fomus -lw path_to/myfomusfile_chunk1.fms path_to/myfomusfile_chunk2.fms path_to/myfomusfile_chunk3.fms
In each case, two or three chunks are either each created from another FOMUS
command or read in from an input file. The chunks are combined together and output as one file.