Chunks
Prev | Chapter 3. Usage | Next

## Chunks

FOMUS can "splice" together the outputs of two or more runs of the `FOMUS` command. This allows sections or parts ("chunks") to be produced separately and put together later into a complete score. This allows the user to use different arguments and settings values with different sections of the score.

This feature is unstable at the moment. FOMUS outputs a chunk object automatically on each successful run of the `FOMUS` command. If no outputs are specified, then `:CHUNK` or `:NONE` must be given as a backend. A chunk is actually all of the measures in the processed output that contain anything other than a measure rest (ie. all of the measures that contain notation). A chunk can then be either a part, several parts in a range of measures, every odd measure, etc.. Chunks can only be merged together if there are no notational overlaps. (At the moment, chunks can't be "relocated" or given an offset--this 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 matches and adds 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 created from another `FOMUS` command or read in from an input file. The chunks are then combined together and output as one file.

Prev | Up | Next
Command Line Interface | Home | Other Interface Functions