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.