This chapter describes the ‘performance’ module, which can be used for organizing audio and video files of performances of a musical work. The elements provided allow the encoder to group different recordings of the same performance, identify temporal segments within the recordings, and encode simple alignments with a music text.
The following elements are available to encode information about a recorded performance:
The performance element begins a subtree of the music element and appears alongside with, or instead of, body (described in Music Element and facsimile (described in Facsimiles). A performance element represents one recorded performance event. As a performance may be recorded in multiple formats or by different personnel or or using different equipment, the performance element may group one or more recordings of the event.
The @decls attribute can be used to point to performance medium metadata for the performed work. See Performance Medium for more details.
The recording element identifies a single recording event taking place within an absolute temporal space. The class att.mediabounds contains attributes that can be used to define this space:
The avFile element identifies an external file associated with a recording act. In the simplest case, the recording element will contain one avFile element identifying a file that represents it. The @target attribute contains the URI of the digital media file. Use of the @mimetype attribute is recommended for the avFile element. Its value should be a valid MIME media type defined by the Internet Engineering Task Force in RFC 2046. It is also recommended that all avFile elements have a recording or clip parent which bears the @begin, @end, and @betype attributes.
Sometimes, multiple digital files are created in order to provide greater flexibility in redistribution and playback capabilities. In this case, multiple avFile elements may occur, each with a different mimetype. Keep in mind, however, that each file still represents the complete temporal extent of the recording act in spite of the change of file format:
The clip element identifies a temporal segment of a recording act. In the following example, the clip begins two minutes into the timeframe of the recording and ends 20 seconds later:
Beyond these relatively simple uses, complex situations may occur that require equally complex markup. For example, a single performance may be represented by multiple digital media files. Because they have differing durations, the media files must be the result of separate recording acts, even if these recording acts took place at the same time:
A single performance may also be represented by multiple, sequential digital files, as when a complete work is recorded in several so-called ‘takes’. In this case, the files may be considered to be parts of a single recording act, the extent of which is the combined extent of the individual clips. For example, a series of clip elements may be used to identify each movement of a piece and give start and end times for the movements in relation to the overall temporal space of the complete work:
Similar markup is also applicable when a single file representing the entirety of a recording act is broken into segments later, as is often done for practical storage and distribution reasons. The file from which the clips are derived is indicated using an avFile element:
A clip may be used to define any region of interest, such as a cadenza or a modulation, a song verse, etc. The following example shows the use of clip and its attributes to identify significant sections of a recording:
The preceding example also demonstrates that media files are not required in order to define the temporal space of a recording act or clip. This makes it possible to set the boundaries of these features, then use the content of the performance element as a rudimentary “edit decision list” to create the matching digital files.
If an encoding of the notated text with which the media files are associated is included in the MEI file, the @startid attribute can be used to indicate the first element in the sequence of events to which the recording corresponds:
Clips can also be aligned with components of the musical text encoded in the body. The @startid attribute can be used to specify the starting element in the sequence of events to which the clip corresponds. The following example shows the use of of clip elements to identify the exposition of the first movement from Beethoven’s piano sonata Op. 14, no. 2 and its concluding ‘codetta’.
Please note that the begin and end times of clips may overlap. In the preceding example, the extent of the codetta is contained within that of the exposition. Overlapping beginning and ending points may also be used to provide additional performance context for a segment or because there is uncertainty with regard to precise values for these points.
A bibliographic description of a recording or metadata explaining how clip boundaries were determined may be associated with the recording and clip elements via the @decls attribute:
Associations between a feature of the encoding, such as a note, dynamic mark, or annotation, and a time point, may be created using when elements and @when attributes.
The when element identifies a particular point in time during the playback of a media file, such as an audio recording.
Time points may be identified in absolute terms as above; that is, in hours, minutes, and seconds since the beginning of the recording, or in relative terms using the @interval, @inttype, and @since attributes. In the following example, the time point of interest happens 48 frames after the occurrence of the point labelled as “t1”.
Having identified a point of interest, another feature of the encoding may be associated with this point using its @when attribute:
One use of the association created between the annotation and the time point is to display the text of the annotation as the recording or clip is played.
The @when attributes allows only a single value, so only one-to-one relationships can be created using this mechanism. However, one-to-many relationships are accommodated in the opposite direction; that is, from a time point to other features of the markup. For example,
indicates that the entities identified in @data all occur at the same instant.