Other Interface Functions
Prev | Chapter 3. Usage | Next

## Other Interface Functions

`(LIST-FOMUS-SETTINGS)`

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

`(LIST-FOMUS-MODULES &rest `type`)`

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.

`(LIST-FOMUS-INSTRUMENTS)`

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

`(GET-INSTR-SYMS)`

Returns a list of available FOMUS instrument ID symbols.

`(LIST-FOMUS-PERCUSSION)`

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

`(GET-PERC-SYMS)`

Returns a list of available FOMUS percussion ID symbols.

`(LIST-FOMUS-INSTRGROUPS &key :FORMAT `format`)`

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).

`(LIST-FOMUS-CLEFS)`

Prints a list of FOMUS clef symbols.

`(LIST-FOMUS-MEAS-DIVS)`

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.)

`(LIST-FOMUS-TUPLET-DIVS)`

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.)

`(LOAD-INIT-FILE)`

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).

Prev | Up | Next
Chunks | Home | Chapter 4. Objects