Alphabetical Listing of Settings

:ACC-CAUT-ACC-DIST

This number represents the maximum distance a cautionary accidental may be from the note that causes it.

:ACC-THROUGHOUT-MEAS

If set to T, accidentals carry to the end of the measure. If set to NIL, accidentals affect only the note they precede.

:AUTO-ACCIDENTALS

If set to T, FOMUS automatically determines note spellings. If set to NIL, a generic set of note spellings is used (all notes receive flats except for F sharp). The user may supply note spellings to override FOMUS's spellings.

:AUTO-ACCS-MODULE

Designates which module is to be used for determining note spellings. FOMUS's built-in values are T, :ACC1, T represents the default module and is equivalent to :ACC1.

:AUTO-BEAM-MODULE

Designates which module is to be used for beaming. FOMUS's built-in values are T and :BEAMS1. T represents the default module and is equivalent to :BEAMS1.

:AUTO-BEAMS

If set to T, FOMUS determines beaming based on time signature information and decisions it makes regarding irregular measure divisions. If set to NIL, beaming decisions are made by the backend notation program.

:AUTO-CAUTIONARY-ACCS

If set to T, FOMUS inserts several different kinds of cautionary accidentals. The user can supply her own cautionary accidentals with the :CAUTACC mark.

:AUTO-DISTR-RESTS-MODULE

Designates which module is to be used for determining how rests are distributed among staves. FOMUS's built-in values are T and :RESTS1. T represents the default module and is equivalent to :RESTS1.

:AUTO-DYN-NODUP

If set to T, indicates that FOMUS should eliminate all redundant dynamic markings.

:AUTO-GRACE-SLURS

If set to T, FOMUS automatically puts slurs over all grace notes. If set to NIL, the user must supply all grace note slurs with :STARTGRACESLUR-, :GRACESLUR- and :ENDGRACESLUR- marks.

:AUTO-MULTIVOICE-COMB-MODULE

Designates which module is to be used for determining how simultaneous notes from different voices are combined into chords on the same staff. FOMUS's built-in values are T and :COMB1. T represents the default module and is equivalent to :COMB1.

:AUTO-MULTIVOICE-NOTES

If set to T, FOMUS combines simultaneous notes from different voices into chords.

:AUTO-MULTIVOICE-RESTS

If set to T, FOMUS combines equivalent simultaneous rests from different voices into single rests.

:AUTO-OTTAVAS

If set to T, FOMUS automatically determines where to place ottava brackets. If set to NIL, the user must supply all ottava brackets with :8UP, :8DOWN and related spanner marks.

:AUTO-OTTAVAS-MODULE

Designates which module is to be used for determining where ottava brackets occur. FOMUS's built-in values are T and :OTTAVAS1. T represents the default module and is equivalent to :OTTAVAS1.

:AUTO-OVERRIDE-TIMESIGS

If set to T, FOMUS extends or contracts measures within certain bounds, adding new time signatures as necessary to fit measures into the user-supplied time signatures given in the GLOBAL or PARTS settings. If set to NIL, FOMUS simply cuts the last measure (also inserting a new time signature) before a new time signature change, resulting in measures of arbitrary sizes depending on where the cut occurs.

:AUTO-PERCUSSION-DURS

If set to T, FOMUS determines the durations of all percussion instruments that have their AUTODUR slot set to T. Percussion instruments that don't need to be notated precisely with respect to duration are then notated with durations that are simpler to read (without tying together groups of notes).

:AUTO-PIZZ/ARCO

If set to T, indicates that FOMUS should convert each consecutive group of :PIZZ marks it finds to a single pair of :PIZZ and :ARCO marks. This makes it easier to notate pizz. and arco changes by simply attaching :PIZZ marks where they belong.

:AUTO-TIMESIG-COMP

If set to T, FOMUS automatically interprets time signatures such as 6/8, 9/4, etc. as compound meters. If set to NIL, the user must indicate that a meter is compound by setting the COMP slot in the appropriate TIMESIG object.

:AUTO-QUANTIZE

If set to T, FOMUS quantizes offsets and durations so that everything fits into the closest fitting tuplets and beat divisions possible. If set to NIL, all offset and duration values must be precise ratios or integers-- floating point numbers are treated with the RATIONALIZE function in this case (this isn't recommended). If no quantizing is done and offsets and durations of events don't fit into anything that is "notatable" then FOMUS will complain with an error.

:AUTO-QUANTIZE-MODULE

Designates which module is to be used for quantizing. FOMUS's built-in values are T, :QUANTIZE1-RMSE and :QUANTIZE1-AVE. :QUANTIZE1-MSE finds the closest fit to notation by minimizing the root mean squared error between the user's values and possible notational values. :QUANTIZE1-AVE finds the closets fit by minimizing average error. T represents the default module and is equivalent to :QUANTIZE1-RMSE.

:AUTO-STAFF/CLEF-CHANGES

If set to T, FOMUS automatically determines staff and clef changes for voices. If set to NIL, the user must supply all staff and clef changes with :STAFF, :CLEF and related marks.

:AUTO-STAFF/CLEFS-MODULE

Designates which module is to be used to determine automatic staff and clef changes. FOMUS's built-in values are T and :STAVES/CLEFS1. T represents the default module and is equivalent to :STAVES/CLEFS1.

:AUTO-VOICES-MODULE

Designates which module is to be used for determining how notes are distributed into separate voices. FOMUS's built-in values are T and :VOICES1. T represents the default module and is equivalent to :VOICES1.

:AUTO-VOICING

If set to T, FOMUS automatically decides how to distribute notes among multiple voices, given the choices specified in the NOTE, REST and MARK objects. If set to NIL, the user must specify explicitly which voice an event belongs to.

:BEAT-DIVISION

The value of this setting is used by the quantizing algorithm to determine how to round offsets and durations. If only an integer is given, it represents the number of divisions per beat in a non-compound meter-- the compound meter value is then calculated by multiplying the first number by 3/2. If specified as a list of two integers, the first integer represents the number of divisions per beat in a non-compound meter while the second represents the number of divisions in a compound meter. The first number must be a power of 2 while the second number 3/2 or 3/4 times a power of 2.

A BEAT-DIVISION of 2, for example, tells FOMUS to quantize to eighth-note values (if the current beat is a quarter-note). In a compound 12/4 meter, this setting also tells FOMUS to quantize to an eighth-note value (2 multiplied by 3/2 is 3, and there are 3 eighth-notes per beat). In the same compound 12/4 meter, a setting of '(4 6) would cause durations to be quantized to sixteenth notes (there are 6 sixteenth notes per beat).

BEAT-DIVISION specifies only approximately how durations are quantized inside tuplets. It is completely predictable only when the MAX-TUPLET setting is set to NIL or the notation contains nothing that would generate any kind of tuplet. When tuplets are allowed and FOMUS tries to create them, it divides them into units that are as close as possible in duration to the non-tuplet divisional units. For example, if BEAT-DIVISION is set to 16 and it's allowable for FOMUS to try to divide one beat into a septuplet, then it's possible for notes to be quantized to either 16 or 14 divisions per beat (since a septuplet divides evenly into 14 units and 1/14 is the closest septuplet divisional duration to 1/16).

:CAUT-ACC-NEXT-MEAS

When set to NIL, indicates that cautionary accidentals may occur only in the same measure as the note that causes them. When set to 1, specifies that cautionary accidentals may occur only if they are in the measure immediately after the note that causes them. When set to T or 2, specifies that cautionary accidentals may occur in any measure after the note that causes them.

:CAUT-ACC-OCTAVES

When set to T, the cautionary accidental algorithm places cautionary accidentals at all octave transpositions from the note that causes them. When set to the integer 1 or greater, specifies the maximum number of octaves a cautionary accidental can be from the note that causes it.

:CAUT-ACC-OTTAVAS

When set to T, the cautionary accidental algorithm considers the presence of ottava brackets, placing cautionary accidentals where apparent octave transpositions might cause confusion.

:CHECK-RANGES

When set to T, activates a check that prints warnings if it finds notes out of range for their instruments. The MINP and MAXP slots in the appropriate INSTR object must be set for this to have any effect.

:CM-SCALE

If set to T, indicates that the value of CM-SCALE will be used to parse note symbols (as the value of the :IN keyword argument) if CM is present and being used.

:CMN-VIEW-EXE

This is a string specifying the path and filename to the executable for the Common Music Notation viewer application. The full pathname may or may not need to be specified depending on the Lisp implementation. The default application depends on what is installed on the user's machine, and should be an application appropriate for viewing PostScript or EPS files.

:CMN-VIEW-OPTS

This is a list of strings representing options to be passed to the CMN viewer application executable.

:COMP-LONG-EIGHTH-BEAM-COUNT

This is set to an integer greater than 0, specifying the number of eighth notes that need to be present to be beamed as groups of 6 in compound meters. This setting is only effective if LONG-EIGHTH-BEAMS is set to T.

:COMPOSER

This is an optional string value containing the composer's name.

:DEBUG-FILENAME

If set to a string, represents the name of a file to which debug information is dumped each time the FOMUS function is called. If you wish to report a bug, please send the contents of this file.

:DEFAULT-BEAT

Specifies a default value for the BEAT slot of TIMESIG objects that are not compound time signatures. This setting is 1/4 by default, specifying that for non-compound meters a quarternote is equivalent to 1 beat. In compound time signatures the beat is always infered from the denominator (for example, in a 12/8 meter the beat is 3/8).

:DEFAULT-GRACE-DUR

If FOMUS needs to convert a note into a grace note, this value is used as the grace note's duration.

:DEFAULT-GRACE-NUM

If FOMUS needs to convert a note into a grace note, this value is used as the grace note's default position number. This value together with the grace note's context determines the actual position (when necessary, FOMUS will increment or decrement this value to determine the actual position number). See the DUR slot in class NOTE for more information.

:DEFAULT-INSTR

This is a default INSTR object to be used in cases when another instrument isn't specified.

:DEFAULT-MEAS-DIVS

This list is a table containing possible ways of dividing measures into smaller segments or divisions. These segments affect how notes are split, tied and beamed. Entries in this list replace entries in FOMUS's own default table if they exist. Each member of this list is itself a list, containing an integer or ratio lookup value as the first element followed by one or more lists of integers/ratios that each add up to the first number.

Example 5.1. DEFAULT-MEAS-DIVS Setting


:default-meas-divs
  '((3 (2 1) (1 2))
    (4 (2 2))
    (5 (3 2) (2 3))
    (6 (4 2) (2 4))
    (7 (4 3) (3 4)))
              


The numbers in these lists correspond to the number of beats in a measure, multiplied or divided by 2 if necessary. In most cases, only specify integers should be necessary, though ratios may also be used. For example, if a 7/8 measure with a quarter-note beat is processed, FOMUS first tries to lookup a set of divisions using the index number 7/2, then 7, 14, etc.. This way the lookup value 7 is sufficient for any meter with a numerator of 7, though it's possible to supply more specific entries such as 7/2 (for measures that contain 3 + 1/2 beats).

:DEFAULT-TIMESIG

If no time signature is specified in the GLOBAL or PARTS lists, this default one is used.

:DEFAULT-TUPLET-DIVS

This list is a table containing possible ways of dividing tuplets into smaller segments or divisions. These segments affect how notes are split, tied and beamed. Entries in this replace entries in FOMUS's own default table if they exist. Each member of this list is itself a list, containing an integer lookup value as the first element followed by one or more lists of integers that each add up to the first number.

Example 5.2. DEFAULT-TUPLET-DIVS Setting


:default-meas-divs
  '((3 (2 1) (1 2))
    (4 (2 2))
    (5 (3 2) (2 3) (4 1) (1 4))
    (6 (4 2) (2 4))
    (7 (4 3) (3 4)))
              


The numbers in this list correspond to numerators of tuplet ratios (or multiples or divisions of two). When FOMUS needs to find possible divisions for a triplet, for example, it uses the entries in the list corresponding to lookup value 3. If it needs to lookup divisions for a sextuplet, it will first try to lookup the number 6 and then use 3 if an entry for 6 doesn't exist.

:DEFAULT-TUPLETS

This list is a lookup table indicating what ratios FOMUS should use when deciding how to notate tuplets. Each list element is itself a list of two integers specifying a tuplet ratio, or how many durational units should be used in place of another. '(7 4) thus specifies that septuplet eighth notes are to be used in place of 4 eighth notes. FOMUS searches this table by finding a match for number of tuplet divisions (the first integer in each pair) and checking the second integer to see if it's appropriate for the context it is in (a power of 2 of the actual number of durational units). Thus, several entries for septuplets might exist: '(7 4) for the majority of cases and '(7 5) for cases where, for example, 7 eighth notes might span an entire 5/8 measure or a section of a larger tuplet.

Example 5.3. DEFAULT-TUPLETS Setting


:default-meas-divs '((3 2) (6 5) (5 4) (7 4) (7 5) (13 8) (13 10))
              


The default value is NIL. If FOMUS doesn't find an entry for a tuplet division here, it determines its own depending on the value of TUPLET-FUNCTION.

:DOTTED-NOTE-LEVEL

Indicates how dotted notes are allowed to appear. Possible values are T, :ALL, :TOP and :SIG. :ALL specifies that they can appear anywhere, :TOP specifies that they can appear only if they occupy an entire measure, and :SIG specifies that they can appear if they occupy durations larger than a beat. T is equivalent to :ALL.

:DOUBLE-DOTTED-NOTES

If set to T, indicates that double-dotted notes are allowed.

:EFFECTIVE-GRACE-DUR-MUL

If FOMUS needs to determine the effective duration of a grace note (for scoring or comparison purposes), it multiplies the value of this setting with the duration given in the grace note's DUR slot.

:ENSEMBLE-TYPE

This setting determines how parts are both ordered and grouped together with brackets and barlines in the score. Setting this to a symbol specifies a lookup value for a ordering/grouping table entry specified in the INSTR-GROUPS setting or FOMUS's own default table. It may also be set to an ordering/grouping data structure, in which case this specified ordering/grouping is used instead. An ordering/grouping data structure is a list of symbols or nested lists of symbols that specify both the groups and the layout order of parts. A symbol specifies an instrument while a list contains a group type (a symbol designating what type of bracket is to appear on the left-hand margin of the score and how barlines are to appear) followed by more instrument symbols or lists (see the example below). A group type is one of the symbols :GROUP, :GRANDSTAFF or :CHOIRGROUP.

A look at the following examples might make this clearer:

Example 5.4. ENSEMBLE-TYPE Setting 1


:ensemble-type :orchestra
              


Example 5.5. ENSEMBLE-TYPE Setting 2


:ensemble-type
  '((:my-orchestra
     (:group (:group :piccolo :flute) (:group :oboe :english-horn)
             (:group :bf-clarinet :a-clarinet :bass-clarinet)
             (:group :bassoon :contra-bassoon))
     (:group (:group :horn) (:group :c-trumpet :bf-trumpet)
             (:group :alto-trombone :tenor-trombone :bass-trombone)
             (:group :tuba))
      :timpani :percussion
     (:grandstaff :piano) 
     (:group (:group :violin) (:group :viola) (:group :violoncello)
             (:group :contrabass))))
              


:EVENTS

This is a global list of events to be processed by FOMUS. An event can be a NOTE, REST or MARK object. A NOTE or REST object must have a symbol or number in its PARTID slot specifying which part it belongs to. A MARK object may have a default PARTID value of NIL to specify all parts or a symbol/number or list of symbols/numbers to specify only those parts. (Note that specifying part ID information isn't necessary when event objects are listed in the EVENTS slot of a PART object. Including these objects in the events list provides an alternative to listing them inside PART objects.) See Objects for more detailed descriptions of these objects and their uses.

:FILENAME

This string represents the path and filename to which FOMUS adds an appropriate extension when it saves output in various formats. This setting in combination with the OUTPUT setting determines the actual output filenames.

Example 5.6. FILENAME Setting


:filename "path_to_output_directory/myoutput"
              


:GLOBAL

This is a list of objects that have "global" influence over other events in the PARTS and EVENTS settings. Only objects of type TIMESIG and KEYSIG are allowed here (KEYSIG isn't implemented yet). When a global object's PARTIDS slot is set to the default value of NIL the object affects all parts that don't already have a TIMESIG or KEYSIG attached to them at that point. When its PARTIDS slot is set to symbol or list of symbols the object affects those parts only. This enables the specification of multiple simultaneous time signatures and polymeters (not implemented yet).

:GRANDSTAFF-HIDE-RESTS

When set to T or :SOME, indicates that FOMUS hides some rests when combining multiple voices in a grand staff. This makes the notation easier to read for multi-staff instruments by eliminating rests that aren't necessary. When set to :ALL indicates that all rests in all parts are hidden (this could be more useful in the future when proportional notation is supported). When set to NIL indicates that no rests are hidden.

:INPUT-BEAT-VALUE

When set to some real number greater than 0, indicates that this durational value is to be interpreted as one beat. FOMUS scales all input objects by dividing offsets and durations by this value before doing any other processing. A value of NIL is the default and is equivalent to 1.

:INPUT-OFFSET

When set to some real number, indicates that this durational value is to be interpreted as one beat. FOMUS shifts all input objects by adding this value to all offsets before doing any other processing. A value of NIL is the default and is equivalent to 0.

:INSTR-GROUPS

The value of this setting is a table in the form of a list that provides a way of adding instrument orderings and groupings to FOMUS's own default table. These tables map symbol lookup values to ordering/grouping data structures which specify how parts are both ordered and grouped together with brackets and barlines in the score. The user may choose one of these groupings by setting ENSEMBLE-TYPE to a symbol lookup value. The user-supplied list is searched first so user-supplied orderings/groupings can override FOMUS's default orderings/groupings.

The setting is a list of lists, the first element in each inner list containing a symbol specifying a unique lookup name. These are followed by grouping/ordering definitions: symbols or nested lists of symbols that specify both the groups and the layout order of parts. In this data structure a symbol specifies an instrument while a list contains a group type (a symbol designating what type of bracket is to appear on the left-hand margin of the score and how barlines are to appear) followed by more instrument symbols or lists (see the example below). A group type is one of the symbols :GROUP, :GRANDSTAFF or :CHOIRGROUP.

A look at the following example might make this clearer:

Example 5.7. INSTR-GROUPS Setting


:instr-groups
  '((:orchestra
     (:group (:group :piccolo :flute) (:group :oboe :english-horn)
             (:group :bf-clarinet :a-clarinet :bass-clarinet)
             (:group :bassoon :contra-bassoon))
     (:group (:group :horn) (:group :c-trumpet :bf-trumpet)
             (:group :alto-trombone :tenor-trombone :bass-trombone)
             (:group :tuba))
      :timpani :percussion
     (:grandstaff :piano) 
     (:group (:group :violin) (:group :viola) (:group :violoncello)
             (:group :contrabass)))
    (:ensemble
     :piccolo :flute :oboe :english-horn :bf-clarinet :a-clarinet :bassoon
     :contra-bassoon (:grandstaff :piano)))
              


:INSTRUMENTS

The user can use this setting to specify additional INSTR objects that are added to the default instrument list. FOMUS searches this list before its own default list when resolving symbols to instrument definitions, so they may be replacements or modifications of existing instruments. The contents are either instrument objects created with MAKE-INSTR or lists specifying modifications to FOMUS's default instruments (or a combination of both). If a list is specified, it contains a symbol specifying a default instrument followed by keyword/argument pairs indicating slot values that replace existing default values (see the INSTR slot in the PART object and


'(:piano :staves 3 :simultlim 6)
                
for an example of this).

Example 5.8. INSTRUMENT Setting


:instrument
  (list (make-instr :recorder :clefs :treble)
        '(:piano :staves 3 :simultlim 6))
              


:LILYPOND-EXE

This is a string specifying the path and filename to the LilyPond executable. The full pathname may or may not need to be specified depending on the Lisp implementation.

:LILYPOND-FILEHEAD

This is a string or list of strings representing text to be inserted directly into a LilyPond output file. Each string in the list is followed by a carriage return. The text is inserted near the top of the file at a point before any score or part data appears.

:LILYPOND-OPTS

This is a list of strings representing options to be passed to the LilyPond executable. The default is currently '("--ps") for Linux or '("--pdf") for OS X/Windows, specifying that LilyPond should generate either a PostScript or PDF format file.

:LILYPOND-OUT-EXT

This is a string specifying the extension for the output filename that is created when LilyPond is run. The default is "ps" for Linux and "pdf" for OS X/Windows.

:LILYPOND-SCOREHEAD

This is a string or list of strings representing text to be inserted directly into a LilyPond output file at the beginning of a score block. Each string in the list is followed by a carriage return.

:LILYPOND-TEXT-MARKUP

This is a "wrapper" string specifying LilyPond markup instructions to be used when printing text above or below the staff. The string must have an ~A or similar substring to indicate where to place the actual text (as if in a call to FORMAT). The default value is "\markup{\italic{~A}}".

:LILYPOND-TEXTACC-MARKUP

This is a "wrapper" string specifying LilyPond markup instructions to be used when engraving accidentals as text. The string must have an ~A or similar substring to indicate where to place the actual text (as if in a call to FORMAT). The default value is "\\markup{\\tiny{~A}}".

:LILYPOND-TEXTDYN-MARKUP

This is a "wrapper" string specifying LilyPond markup instructions to be used when printing text in a dynamic-type font. The string must have an ~A or similar substring to indicate where to place the actual text (as if in a call to FORMAT). The default value is "\markup{\dynamic{\italic{\bold{~A}}}}".

:LILYPOND-TEXTNOTE-MARKUP

This is a "wrapper" string specifying LilyPond markup instructions to be used when printing text above single notes. The string must have an ~A or similar substring to indicate where to place the actual text (as if in a call to FORMAT). The default value is "\markup{\italic{~A}}".

:LILYPOND-TEXTTEMPO-MARKUP

This is a "wrapper" string specifying LilyPond markup instructions to be used when printing text in a heavy "tempo" font. The string must have an ~A or similar substring to indicate where to place the actual text (as if in a call to FORMAT). The default value is "\markup{\bold{\huge{~A}}}".

:LILYPOND-VERSION

If set to a string (for example, "2.8"), forces FOMUS to output LilyPond files for that version.

:LILYPOND-VIEW-EXE

This is a string specifying the path and filename to the executable for the LilyPond viewer application. The full pathname may or may not need to be specified depending on the Lisp implementation. The default application depends on what is installed on the user's machine, and should be one appropriate for viewing PostScript files.

:LILYPOND-VIEW-OPTS

This is a list of strings representing options to be passed to the LilyPond viewer application executable.

:LONG-EIGHTH-BEAM-COUNT

This is set to an integer greater than 0, specifying the number of eighth notes that need to be present to be beamed as a group of 4. This setting is only effective if LONG-EIGHTH-BEAMS is set to T.

:LONG-EIGHTH-BEAMS

If set to T, specifies that the beaming algorithm should beam eighth notes into groups of up to 4 under certain conditions (if enough of them are present). If set to :ALWAYS, specifies that eighth notes are always beamed in groups of 4. If set to NIL, specifies that eighth notes are never beamed in groups of 4.

:MAX-OTTAVA-REST-DIST

This is a real number greater than 0, specifying the maximum distance an ottava bracket will span over a group of contiguous rests.

:MAX-TUPLET

If set to an integer, represents the largest tuplet allowed. If set to a list of integers, represents the largest tuplets allowed for each nested tuplet level (and also specifies how many levels of tuplet nesting are allowed by the length of the list). A value of '(7 3), for example, specifies two levels of tuplet nesting with septuplets being the maximum allowed in the outer level and triplets being the maximum in the inner level. A value of NIL specifies that no tuplets are to be used.

:MAX-TUPLET-DUR

This is the largest duration in beats that a tuplet can span.

:MIN-AUTO-TIMESIG-DUR

if AUTO-OVERRIDE-TIMESIGS is set to T, FOMUS automatically generates new time signatures as necessary to fit measures into the time signatures specified in the GLOBAL and PARTS list. The value of this setting represents the smallest duration (in beats) of any such time signature that is generated. See TIMESIG and TIMESIG-REPL for more information.

:MIN-GRANDSTAFF-HIDE-RESTS-DUR

This is a real number greater than 0, specifying the minimum duration that a group of simultaneous rests must occupy in order for some of them to be hidden. This is applicable only when there are multiple voices on a staff, in cases where several simultaneous rests can be shown as one rest. AUTO-MULTIVOICE-RESTS must also be set to T for this to have any effect.

:MIN-MULTIVOICE-CHORDS-DUR

This is a real number greater than 0, specifying the minimum duration a group of simultaneous notes in separate voices must span to be combined into chords. This is applicable only when there are multiple voices on a staff, and if AUTO-MULTIVOICE-NOTES is set to T.

:MIN-SPLIT-ALL-PARTS-DUR

This is the smallest duration that FOMUS will consider when deciding whether or not to "split" or divide all parts together or separately. (Splitting means splitting and tying notes as necessary to properly notate a given rhythm in a given measure.) A unit of music must be larger than this value to be considered--units equal to or smaller than this duration are not considered. FOMUS splits measures in all parts together up to a certain point to insure that the notation is consistently divided in all parts. A 5/8 measure, for example, will be consistently divided as either 3 + 2 to 2 + 3 in all parts together (as long as the value of this setting is smaller than the duration of a 5/8 measure).

:MIN-TUPLET-DUR

This is the smallest duration in beats that a tuplet can span.

:PARTS

This is a list of PART objects, each representing a stave or grand staff in the score. At least one part must be specified.

:OUTPUT

This is either a list or a list of lists specifying one or more output files with optional keyword/argument pairs for tweaking their contents. FOMUS's built-in output symbols are :DATA or :FOMUS, :RAW, :MUSICXML, :MUSICXML-SIBELIUS, :MUSICXML-FINALE, :CMN, :LILYPOND and :MIDI. More information on these is given in Outputs. The following are examples of valid output specifications:

Example 5.9. OUTPUT Setting 1


:output '(:data (:lilypond :view t))
              


Example 5.10. OUTPUT Setting 2


:output '(:lilypond :filename "myfile.ly" :view nil)
              


Example 5.11. OUTPUT Setting 3


:output :cmn
              


:PERCUSSION

This is a list of PERCUSSION objects serving as a lookup table for information pertaining to percussion notation. PERCUSSION objects are listed in INSTR objects to define collections of percussion instruments that are notated together on a single staff. FOMUS searches this user setting list before its own default list when resolving symbols to percussion instrument definitions, so they may be replacements or modifications of FOMUS's predefined percussion instruments. The contents are either percussion objects created with MAKE-PERC or lists specifying modifications to FOMUS's default percussion objects (or a combination of both). If a list is specified, it contains a symbol specifying a default percussion instrument followed by keyword/argument pairs indicating slot values that replace existing default values (see the PERCS slot in the INSTR object for an example of this).

Example 5.12. PERCUSSION Setting


:instrument
  (list (make-perc :anvil :note -3 :voice 2 :midinote-ex 79)
        '(:triangle :note 0 :voice 1))
              


See the documentation for PERCUSSION objects for more information.

:QUALITY

This is a real number indicating how much FOMUS should trade speed of computation for "quality" of output. Setting it lower increases speed while setting it higher gives better results. The default is 1, which is reasonable for relatively uncomplicated scores with a small number of parts. The most effective values are between approximately -3 and 3, though complex scores might show a little improvement (better guesses within a larger context) with values of 5 or more. After a certain point increasing this value only makes the program run slower with no noticeable improvement in output.

:QUARTERTONES

If set to T, FOMUS rounds pitches to quartertone values and uses quartertone notation in the score. This only works if the algorithm specified by the AUTO-ACCS-MODULE setting supports it. FOMUS's default module :NOKEY1 supports quartertones.

:SHORTLONGSHORT-NOTES-LEVEL

Indicates how "short-long-short" note patterns are allowed to appear. An example of such a pattern is an eighth note followed by a quarter note then an eighth note, and is treated as an exception to insure that the middle note isn't split in the middle and tied. Possible values are T, :ALL, :TOP and :SIG. :ALL specifies that this pattern can appear anywhere, :TOP specifies that it can appear only if it occupies an entire measure, and :SIG specifies that it can appear if it occupies a duration larger than a beat. T is equivalent to :ALL.

:SPLIT-MODULE

Designates which module is to be used for splitting and tying notes. FOMUS's built-in values are T and :SPLIT1. T represents the default module and is equivalent to :SPLIT1.

:SUBTITLE

This is an optional string value containing the subtitle of the composition.

:SYNCOPATED-NOTES-LEVEL

When set to T, indicates that a certain syncopated note pattern, a short note followed by any number of long notes then a short note, may appear. An example of such a pattern is an eighth note followed by several quarter notes then an eighth note. This can only occur if the pattern occupies the duration of an entire measure.

:TIMESIG-STYLE

This indicates how time signature are printed. It can be set to :FRACTION or :COMMON, specifying that either fractional or common time signatures are to be used in the backend (given the choice). The default value of NIL is equivalent to specifying :FRACTION.

:TITLE

This is an optional string value containing the title of the composition.

:TRANSPOSE

When set to T, activates a transposition function that automatically transposes note values. The TPOSE slot of the appropriate INSTR objects must be set for this to have any effect.

:TUPLET-DOTTED-RESTS

If set to T, specifies whether or not dotted rests are allowed inside tuplets of irregular (ie. not a power of 2) divisions. For example, a quintuplet might be divided into a dotted eight rest followed by an eighth note if TUPLET-DOTTED-RESTS is true.

:TUPLET-FUNCTION

Designates which function is to be used for determining tuplet ratios. FOMUS's built-in values are T, :POW2 and :DUR. T represents the default function and is equivalent to :POW2. :POW2 determines tuplet ratios based on the rule that the number of tuplet divisions replace (in most cases) the number of durational units equaling the next lowest power of two. FOMUS thus notates 7 in the time of 4 and 13 in the time of 8. :DUR determines ratios by finding the closest number of durational units to the number of tuplet divisions. FOMUS then notates 7 in the time of 8 and 13 in the time of 16.

:TUPLET-STYLE

Specifies how tuplets are to be printed. The possible values are :RATIO or :SINGLE. The default value of NIL is equivalent to :SINGLE.

:USE-CM

If set to T, indicates that FOMUS should use Common Music functions if present. Note symbols are then parsed by CM using the value of CM-SCALE as if it were passed as the :IN argument to CM's KEYNUM function. Also, durations specified as symbols indicate notational durations and are interpreted as such using CM's RHYTHM function. Numbers are still interpreted by FOMUS in terms of beats.

:USE-DOUBLE-ACCS

If set to T, the note spelling algorithm considers double sharps and double flats in addition to single sharps and flats.

:VERBOSE

This must be set to a value from 0 to 2, indicating the amount of printed output. A value of 0 represents minimal output while a value of 2 represents maximal output.