Other Interface Functions


Lists all FOMUS settings, their expected types and their default values.


Lists all working FOMUS modules and additional backends that can be selected as replacements or additions to FOMUS's own functionality. An example of a module might be an alternate note-spelling algorithm, a different quantizing algorithm or another backend that extends the number of output formats available. The code for these modules is located in the modules subdirectory. Adding new or replacement functionality to FOMUS is done by dropping files in here. When FOMUS loads it automatically finds all of these files and tries to compile the ones that are out of date. Only the ones that compile successfully are used, and modules are loaded only on demand when they are called.

An API documentation for writing modules will be available sometime in the future.


Lists all FOMUS instruments, merging/replacing FOMUS's own default instruments with the user-specified contents of the INSTRUMENTS setting.


Returns a list of available FOMUS instrument ID symbols.


Lists all FOMUS percussion instruments (the contents of the PERCUSSION setting).


Returns a list of available FOMUS percussion ID symbols.


Lists FOMUS instrument ordering/grouping data, merging/replacing FOMUS's own defaults with the contents of the INSTR-GROUPS setting. If the FORMAT argument is T (the default), FOMUS formats the results by listing the instruments for each grouping in a vertical score-order arrangement surrounded by [], {} and || brackets, denoting whether instruments are grouped by brackets, curly braces or barlines only. If FORMAT is NIL, FOMUS outputs the data as nested lists of symbols (see the INSTR-GROUPS setting for details).


Prints a list of FOMUS clef symbols.


Lists all default measure divisions , merging/replacing FOMUS's own defaults with the contents of the DEFAULT-MEAS-DIVS setting. (See DEFAULT-MEAS-DIVS for more information.)


Lists all default tuplet divisions , merging/replacing FOMUS's own defaults with the contents of the DEFAULT-TUPLET-DIVS setting. (See DEFAULT-TUPLET-DIVS for more information.)


Reloads the .fomus initialization file in the user's home directory.

(GET-MIDI-INSTR program-change &key :DEFAULT default-instr)

Returns an instrument to match the given MIDI program change value. The first INSTR structure with this number in its MIDIPRGCH-IM slot is returned. If no appropriate instrument is found, the value of either the DEFAULT-INSTR setting or (if set) the DEFAULT argument is returned.

(ADDMARK event mark)

(GETMARK event markid)

(GETMARKS event markid)

(RMMARK event markid)

(COMBMARKS event-list)

(ADDPROP object prop)

(GETPROP object propid)

(GETPROPS object propid)

(RMPROP object propid)

(COMBPROPS object-list)

These are utility functions for adding, removing and combining marks and properties in MARKS and PROPS slots. ADDMARK and ADDPROP insert a mark or property (a symbol or list of symbols and arguments values) in the appropriate slot of the object. GETMARK and GETPROP find a mark or property given an identifier. The identifier is a symbol or list specifying the mark/property symbol and any number of the arguments following it. The function returns the first mark that matches the specified symbols/values up to the number of symbols/values given. (For example, '(:STARTSLUR- 2) will return the starting mark for a "level 2" slur.) GETMARKS and GETPROPS return all matching marks/properties. RMMARK and RMPROP remove (as a side-effect) all matching marks/properties from the objects. COMBMARKS and COMBPROPS returns a new mark/property list that is a combination of all marks/properties objects in the supplied list (with duplicates removed).