A scorefile can have a MKScore info
statement that consists of the keyword info followed by one or more parameters:
info parameter[ , parameter ] ... ; |
The Score info statement represents a
MKScore object's info
MKNote; it can contain any amount and type of
information. Typically, the MKScore info
statement contains one or more of the following parameters:
Table 7-1. MKScore info parameters
| Parameter | Meaning |
|---|---|
| tempo | The tempo that should be used when performing the Score |
| samplingRate | The performance sampling rate |
| headroom | The MKOrchestra's headroom setting; a value between -1.0 and 1.0 |
A scorefile can have more than one
MKScore info statement; if a parameter
conflicts with a parameter set in a previous info statement, the subsequent setting takes
precedence. Parameters are similarly merged if a scorefile is read
into a MKScore object that already has an info
MKNote (a MKScore object
can have only one info MKNote). Parameter
syntax is described in the Section called Note Statements, below.
The parameters in the info
statement aren't explicitly used when the scorefile is read by a
MKScore or
MKScorefilePerformer. It's left to the
application designer to provide an implementation that acts on the
info statement's parameters.
The names of all the MKPart objects that
are represented in a scorefile must be declared in a part statement in the header:
part partName [ , partName ] ... ; |
partName is an identifier that must not have been previously
declared. A scorefile can contain more than one part statement. When the scorefile is read by
an application, a MKPart object is created and
named for each partName in the file's part statements. If a name conflict results
from reading a scorefile into a MKScore, the
MKPart represented in the scorefile is merged
into the similarly named MKPart in the
MKScore.
Each MKPart represented in the scorefile
can have a MKPart info statement that consists
of the MKPart's partNameas it appears in the part
statement followed by one or more parameters:
partName parameter [ , parameter ] ... ; |
The MKPart info statement represents a
MKPart object's info
MKNote; it can contain any amount and type of
information. The following parameters are typically used in a part
info statement:
Table 7-2. MKScore info parameters
| Parameter | Meaning |
|---|---|
| synthPatch | The name of the MKSynthPatch class used to realize the MKPart |
| synthPatchCount | The number of manually allocated MKSynthPatch objects |
| midiChan | The MIDI channel on which the MKPart appears |
Each MKPart represented in a scorefile
can have only one MKPart info statement. Like
the scorefile's info statement,
interpretation and use of a MKPart info's
parameters is left to the application designer.
The noteTagRange statement declares the range of noteTags used in the body of the scorefile:
noteTagRange anInteger to aHigherInteger ; |
This is an optional statement that optimizes the noteTag
renumbering that occurs when you mix two or more scorefiles together
or when you merge a scorefile into an existing
MKScore object.
It isn't an error to use a tag that's outside the range specified by a noteTagRange statement, but the renumbering optimization applies only to tags that are within the declared range. A scorefile can have more than one noteTagRange statement although each subsequent statement cancels the previous one.