Fomus
Interface 2
FOMUS also provides several functions that are wrappers to the first method described above. They create and store the objects internally so the user doesn't have to maintain lists of objects and data. The functions are:
(fomus-init &key setting value ...) (fomus-newpart partid &key slot value ...) (fomus-newtimesig partids &key slot value ...) (fomus-newnote partid &key slot value ...) (fomus-newrest partid &key slot value ...) (fomus-newmark partid &key slot value ...) (fomus-exec &key setting value ...)
The user first calls fomus-init
, which initializes settings and
insures that FOMUS is ready to accept new data. Setting values may be
passed to this function in exactly the same way as the fomus
function
above, though it isn't necessary in this case to include global
,
parts
or events
. the functions fomus-newpart
, fomus-newtimesig
,
fomus-newnote
, fomus-newrest
and fomus-newmark
are then used to
create and store all of the objects that are normally included in the
global
, parts
and events
settings. The required partid
or
partids
arguments correspond directly to the slots of the
corresponding objects (see the documentation for each of these in
Objects for more information). The partid argument to
fomus-newpartm
must be unique or objects that use them to refer to
parts will refer to more than one. The slot
keywords can be any of the
constructor slot keywords in the corresponding object, and the value
argument is the appropriate value for that slot. Internally, FOMUS
stores all TIMESIG
objects in the GLOBAL
setting list, all PART
objects in the PARTS
list and all other objects (NOTE
, REST
and
MARK
) in the EVENTS
list. This means that the user may specify NIL
or a list of part IDs in the PARTID/PARTIDS slots of TIMESIG
and
MARK
objects. When the user is finished calling the FOMUS-NEW
functions, the last thing to do is call FOMUS-EXEC
. This again accepts
setting keywords and values (overriding any previous setting values) and
passes all information to the fomus
function which does the rest of
the processing. After FOMUS-EXEC
is called, all internal data is
reinitialized as if FOMUS-INIT
were called with no arguments.
Following are the interface 2 equivalents to some of the examples above:
(To be completed.)
(To be completed.)