Fomus
alphabetical listing of midi options
:arpatt
- a real number from
0
to1
specifying the amount of attenuation to apply to arpeggios to make them sound more natural (a crescendo is also added). The number is subtracted from the velocities of the events. :breath-dur
- a real number greater than
0
specifying the duration in beats of a breath mark. :cm-args
- this is a list of arguments that are sent to common
music's
events
orrts
function, whichever is used. Fomus overrides the:tempo
and:play
keyword arguments to these functions. :delay
- a real number greater than or equal to
0
specifying a delay time in seconds to be inserted at the beginning of the midi file or output (useful if the score takes several seconds to appear on the screen). :events-fun
this options provides a way of overriding fomus's default interpretation of marks into midi events. It is a function of the form
(lambda (ev mark arg1 arg2) ...)
, whereev
is either a single common musicmidi
object or a list of such objects,mark
is a keyword symbol specifying what modifications should occur, andarg1
andarg2
are input arguments specific to each mark. The function may either modify themidi
event objects or create new ones using common music functions (or return a mixture of both). The return value is either a singlemidi
object, a list ofmidi
objects,nil
or'(nil)
. Returningnil
indicates that fomus should use its default function to interpret the mark.'(nil)
indicates that the return value actually is an empty list of events (and that the default function should not be called)–they will then be deleted from the output.the user should not worry about how multiple marks will affect either other. For example, a note with both
:tremolo
and:accent
marks will be passed to the user function first with the:tremolo
keyword. next (assuming the user returned multiplemidi
events) only the first note of the tremolo is passed to this function with the:accent
keyword. The user function should then only deal directly with what it is given and allow fomus to handle the sorting out of these details and applying them to the correct notes. Also, the dynamic markings:pppppp
through:ffffff
are translated before any other dynamics-related markings, so user code should set the amplitudes ofmidi
objects to some initial value in these cases. subsequent handling of other dynamics-related marks can then alter midi amplitude values in whatever ways are appropriate.marks that are sent via the
mark
argument are listed here (witharg1
andarg2
if appropriate). Marks beginning with:span-
accompany a list of events to modify and correspond to what are called "spanner" marks in Marks.:ffffff
,:fffff
,:ffff
,:fff
,:ff
,:f
,:mf
,:mp
,:p
,:pp
,:ppp
,:pppp
,:ppppp
,:pppppp
,:rfz
,:sfz
,:spp
,:sp
,:sff
,:sf
,:fp
,:staccato
,:staccatissimo
,:portato
,:tenuto
,:marcato
,:accent
,:span-slur (arg1 is the slur level)
,:fermata (arg1 is either :short, :long or :verylong)
,:breath
,:tremolo
(arg1
is the number of tremolo subdivisions,arg2
is 1/8 for eighth-note subdivions, 1/16 for sixteenths, etc.),:span-tremfirst
(arg1
andarg2
are the same as with:tremolo
),:span-tremsecond
(arg1
andarg2
are the same as with:tremolo
),:trill
(arg1
is the additional trill pitch),:longtrill
(arg1
is the additional trill pitch),:prall
(arg1
is the additional prall pitch),:mordent
(arg1
is the additional mordent pitch),:span-arp
(arg1
is either:up
,:down
ornil
,arg2
is the offset of the previous note),:span-port
,:span-gliss
,:span-wedge<
(arg1
is the destination amplitude or velocity,arg2
is the offset of the event following the last event of the wedge),:span-wedge>
(arg1
andarg2
are the same as with:span-wedge<
),:harmonic
(arg1
is either:sounding
or:touched
,arg2
is the sounding pitch in either case),:arco
,:pizz
,:stopped
,:open
,:flageolet
:fermata-mults
- this is a list of three real numbers greater than
0
, specifying how much to increase (by multiplying) the durations of notes that have fermatas over them. The three values each correspond to short, long and very long fermatas. :filename
- this is a string representing the output filename. It
overrides the
filename
setting if used. :grace-dur-secs
- a real number greater than
0
specifying the default midi grace note duration in seconds. :harmatt
- a real number from
0
to1
specifying the amount of attenuation to apply to harmonics to make them sound closer to what is expected. The number is subtracted from the velocities of the events. :instr-per-ch
- when set to an integer value greater than or equal
to
1
, specifies how many parts with similar instruments (ie. With equivalent midi program change values) are stuffed into one midi channel or track. A value ofnil
indicates that all parts with the same program change indicated in theirinstr
objects are to be put into a single channel. :midi-filename
- this is a part option (see the
part
class). It is a string representing a filename for a separate output file–fomus fills this with midi data only for the part that it is specified in. these strings are "merged" withfilename
using lisp'smerge-pathnames
function so that if a full path isn't specified it appears in the same directory as . Parts with the samemidi-filename
are grouped together so that all of their output is written to one file. :min-amp
- a real number from
0
to1
specifying a minimum velocity value for all midi events. :mindur-secs
- this real number specifies an absolute minimum duration in seconds for all midi events.
:nports
- if realtime playback is specified using the
play
option, this integer value specifies the number of ports to use. The default is1
. If output is to a midi file, then this value will be1
regardless of what is specified. :pbend-width
- this is equivalent to the
:pitch-bend-width
option used when opening midi streams in common music. It is a real number greater than0
, specifying the maximum pitch bend range in semitones used to calculate pitch bend values for quartertone playback. The default is2
. :play
- if set to
nil
ort
, specifies that output is to a midi file.t
indicates that the output should be played automatically (equivalent to sending:play t
to common music'sevents
function). if set to a common music midi stream, indicates that therts
function should be used and the midi events scheduled for realtime playback. :portato-mult
- a real number greater than
0
indicating the amount to increase (by multiplying) the duration of midi events with portato markings. :slur-adddur
- a real number greater than or equal to
0
indicating the amount of beats to add to the duration of slurred events (causing them to overlap slightly). :staccatissimo-mult
- a real number greater than
0
indicating the amount to increase (by multiplying) the duration of midi events with staccatissimo markings. :staccato-mult
- a real number greater than
0
indicating the amount to increase (by multiplying) the duration of midi events with staccato markings. :tempo
- a real number greater than or equal to
0
specifying the midi playback tempo. :tenuto-adddur
- a real number greater than or equal to
0
indicating the amount of beats to add to the duration of midi events with tenuto markings. :tramp
- a real number from
0
to1
specifying the amount of amplification to apply to midi events that are a part of a trill or tremolo. The number is added to the velocities of the events. :trdur-secs
- a real number greater than
0
indicating the duration in seconds of an individual midi event in a trill or tremolo. (for tremolos it is the minimum duration of an individual midi event.) :trovlp-adddur
- a real number greater than or equal to
0
indicating the amount of beats to add to the duration of midi events that are a part of a trill or tremolo.