Some details of the DTD
XML is becoming the leading technology for the WWW. XML is also suitable for structured data representation and data exchange among different systems and/or platforms. Due to the complexity of the WEDEL object structure, the formalization has been divided in several DTDs, among them:
  • Header: modeling the WEDEL object structure as depicted and managed by the WEDEL Editor, including identification, classification, protection, printing, and references to the other DTDs.
  • SWF: modeling symbolic music notation (main score and parts) and the related cataloguing information for music score.
  • IWF: modeling a score section that include a collection of images of music scores and the related cataloguing information; both main score and parts.
  • AWF: modeling each instance of the audio section that are audio files and related cataloguing information.

Due to the limited space available in this paper, only some segments of the whole set of DTDs and/or related examples can be presented. Since the most interesting aspects are related to cataloguing (identification, classification) and music notation modeling; then, the following examples are concentrated on these aspects.

Cataloguing: identification and classification

In the following, an example of the identification section is reported. An identification section can be associated with the whole WEDEL object as well as to each component, such a part, the set of images of the main score, the video, the lyric in Italian language, a document in a specific language, etc. The following example reports only the main fields of the identification section. Please note the presence of the WDFID (identification of the whole WEDEL object), and of the Local Distributor ID.

<Identification>
<WDFID;>wdfid; of the document</WDFID>
<ISxx; TYPE="ISBN" CODE="412-3432-141"/>
<ISxx; TYPE="ISMN" CODE="546246256256546"/>
<Publisher; PUBLISHING_STATUS="PUBLISHED">
PUBLISHING_LOCATION="Florence" P. Nesi</Publisher>
<Preparation;_date> MAJOR_VER="0" MINOR_VER="1">
20000601</Preparation_date>
<Music;_Geographic_Area>Italy;</Music_Geographic_Area>
<Catalog;_ID>Z4567;</Catalog_ID>
<Second;_publisher>PubXFT;</Second_publisher>
<LocalDistributor;>
<LD;_ID>10g540;</LD_ID> 
<LD;_NAME>Universita; di Firenze</LD_NAME>
</LocalDistributor>
<URI;>http;://www.wedelmusic.org</URI>
<Responsible;_Name>K.; Lemon</Responsible_Name>
<Quality;_Level>36;</Quality_Level>
</Identification>

The next example reports a classification section. A classification can be associated with the whole WEDEL object as well as to each component -- such as: a part, the set of images of the main score, the video, the lyric in Italian language, a document in a specific language, etc. The classification can be present in more than one language. The following example reports only the main fields of a classification section.

<Classification xml:lang="ITA">
<Criticalreview REVIEWER="P. Bellini" DATE="20003105">
<Review_Description> Rev.1 Bocchi Piero>
</Review_Description>
</Criticalreview>
<Textual_description> La mia opera prima</Textual_description>
<Instrument> TONALITY="A Major"Violino</Instrument>
<Piece_tonalityB> Minor</Piece_tonality>
<Author>Nicola; Mitolo</Author>
<Unique_Short_Name>Trio;</Unique_Short_Name>
<Title>Trio; per archi</Title>
<Act> Primo</Act>
<Movement> Secondo</Movement>
<Genre> Hip Hop</Genre>
<Style> new Hip</Style>
<Purpose> demo</Purpose>
<Extracted_from> Album X534</Extracted_from>
<Sequence_Number> 18638363</Sequence_Number>
<Alphanumeric_number> 7hdy47erhgfdj</Alphanumeric_number>
<Original_language> Italiano</Original_language>
<Duration> 12307</Duration>
<Composition_date> 2000421</Composition_date>
<Epoque>
<Start_year> 1980</Start_year>
<End_year> 2000</End_year>
</Epoque>
<Composition_location> Firenze</Composition_location>
<Nationality> Italiana</Nationality>
<Dedicated_to> none</Dedicated_to>
<Commitment> none</Commitment>
<First_execution> ieri</First_execution>
</Classificatio>

Structure of the Symbolic: Music Notation Section

The main idea of WEDELMUSIC format for modeling music notation is to keep separate the single parts and to produce the main score composing the descriptions of single parts. This approach is similar to what has been used in MUSE, MOODS and in other formats [2], [16]. To this end, the XML formalization of music notation is divided in two groups.

The first includes the header and the information for the main score. This part includes (i) the specific identification and classification aspects for the main score, (ii) the information to reconstruct the bracketing among parts on the main score, and (iii) independent textual annotations for the main score.

The second group is the set of files, one for each part, containing the header and the description of symbolic music notation for the part.

In WEDELMUSIC format, a music part is seen as comprised of one or more staffs (simple, piano, organ, and harp parts).

The annotations of the main score are assigned to the music score elements after that the music parts are used to built the main score. This is possible thanks to the adoption of the Symbolic Addressing of music notation symbols that will be shown in the following for horizontal symbols.

Part Music Notation Section

A part is seen as a sequence of measures with their signature. Each measure has one or more layers/voices distributed on one or more staffs. This means that in order to represent non-measured music invisible barlines have been used. Each voice/layer may pass from one staff to the others of the same part. In this way, symbols of the same layer may across different staffs of the same part (for example, beams and slurs). This means that each figure (note, rests, beam, chord, etc.) knows its position in terms of staff number. Each figure may have several minor symbols associated with it: alterations, accents, expressions, ornaments, augmenting dots, etc. After the description of each measure with its layers and figures the list of horizontal symbols is reported.

Horizontal symbols are slurs, crescendo, decrescendo, octave, bends, tuples, etc. Tuples are a special case of horizontal symbols. They are associated with notes, rests or hidden anchorages for their starting and ending points. Anchorages are used for defining intermediate positions in which some symbols have to be anchored. The modeling of anchorage is an abstraction to avoid the needs of associating graphics coordinates with the position of symbols. For example, a note may present a crescendo for 2/3 of its duration and then a decrescendo until its conclusion. In this case, it is needed to have a intermediate point in which the end of the crescendo and the start of the decrescendo have to be referred. An anchorage states the distance ration between the duration of the previous note and its insertion position, and can be visible only under request.

In WEDELMUSIC format, the main music notation elements such as notes, rests, anchorages, changing clefs, changes of key signature, etc., are univocally identified according to a set of numbers assigned at their insertion: part, measure, layer, beam or chord and symbol number. Each symbol is univocally identified by a sequence of numbers that is called Symbolic Address.

For these reasons, the only numerical details which are present in a WEDELMUSIC description of a symbolic part are those related to (i) the symbolic addressing of each music notation symbols, and (ii) the justification parameters to format the music.

Justification parameters can be different for (i) main score on computer screen, (ii) part on computer screen, (iii) printing music main score, (iv) printing music part. To this reason, 4 different justification parameters are present for each measure. The justification can be linear of logarithmic and a number identifies the scale. Each figure also includes positive and negative microspaces. When the formatting engine has produced non satisfactory results, the user can add microspaces at the music notation symbols (notes, rests, changes of key signature, changes of clef, etc.) to reach a very high quality format for the music score. This is performed independently on the graphics aspects since microspaces are relative spacing associated to previous symbols.

The music formatting (at level of main score and for single parts) is completely demanded to MILLA engine and thus other graphic details inside the XML formalization of symbolic music are not needed to formatting music. According to the classical music notation rules [14], [10], [18], several symbols associated with notes, rests and anchorages may be placed above or below the staff according to the context and to the publisher style. MILLA formatting engine is capable to take decisions in any context when the loaded symbol has the attribute AUTO for the automatic positioning of the symbol (for example when symbolic music is imported). When the relative position of the symbol with respect to the staff has been fixed an UP or DOWN constraints is present. In MILLA can be also specified the symbol category that do not have to be visualized when the symbolic data is used to produce the main score.

In the XML formalization the description of fretboards, harp pedals, piano pedals, etc., are described by using simple strings coding the position of pedals -- e.g., HHLH|LHH for harp.

  • Some Examples of WEDELMUSIC
  • The following example has been chosen to show the formalization of chords, beams, beam with chords, expressions, clef change, alterations, and slurs (see Figure). In the specification, the direction of the stems has been imposed during insertion.

    The following XML-WEDELMUSIC specification refers to the music included in the box of the previous figure

    <measure; PROGRESSIVE="1" ID="1">
    <justification; MAINTYPE="LOG" MAINJUST="2.00"/>
    <header;>
    <clef; TYPE="TENOR" SIZE="NORMAL"/>
    <keysignature; TYPE="DOM"/>
    </header>
    <timesignature; TYPE="FRACTION" NUMERATOR="4" DENOMINATOR="4"/>
    <layer; NUMBER="1">
        <beam; ID="18" STEMS="UP">
            <note; ID="1" DURATION="D1_16" HEIGHT="-2"/>
            <note; ID="2" DURATION="D1_16" HEIGHT="-3"/>
            <note; ID="4" DURATION="D1_16" HEIGHT="0"/>
            <note; ID="3" DURATION="D1_16" HEIGHT="0"/>
        </beam>
        <beam; ID="19" STEMS="UP">
            <chord; ID="5" DURATION="D1_8">
                <chordnote; ID="17" HEIGHT="-5"> 
                    <accidental; TYPE="SHARP"/>
                </chordnote>
                <chordnote; ID="5" HEIGHT="-1"/>
            </chord>
            <note; ID="6" DURATION="D1_8" HEIGHT="1"/>
        </beam>
        <changeclef; ID="7" TYPE="TREBLE" SIZE="SMALL"/>
        <beam; ID="20" STEMS="DOWN">
            <note; ID="8" DURATION="D1_8" HEIGHT="1">
                <marker; TYPE="SFORZATO" UPDOWN="UP"/> 
            </note>
            <note; ID="9" DURATION="D1_8" HEIGHT="2">
                <marker; TYPE="MARTDOLCE" UPDOWN="UP"/> 
            </note>
        </beam>
        <beam; ID="21" STEMS="UP">
            <note; ID="10" DURATION="D1_8" HEIGHT="-2"/>
            <note; ID="11" DURATION="D1_8" HEIGHT="-7"/>
        </beam>
    </layer>
    <barline; TYPE="END"/>
    </measure>
    <horizontal; ID="1" TYPE="SLUR" UPDOWN="DOWN">
    <address; MEASURE="1" LAYER="1" FIGURE="19"  CHORD.OR.BEAM="5" CHORD.IN.BEAM="0"/>
    <address; MEASURE="1" LAYER="1" FIGURE="21">
    CHORD.OR.BEAM="11" CHORD.IN.BEAM="0"/>
    </horizontal>
     
    

    After the formalization of the music piece, the specification of the horizontal symbol is reported. In that case, a slur is present, and the symbolic addressing is used to identify the starting point (a specific note in a chord of a layer of a measure) and the ending note (a note in a beam). Please note that the horizontal symbols could be defined between symbols that are placed even on different layers. In the XML examples of this paper, two arrows highlight the relationships defined by using the symbolic addressing between the slur definition (on the bottom) and the notes used for starting and ending the slur.

    In the example of previous Figure, it is show how is possible to produce music piece in which two layers are present. In one of the two layers the measure duration is inconsistent, in the sense that some rests are missing since they are implicitly intended. This can be produced in WEDELMUSIC format by using the concept of invisible rests. This means that the user has to insert in the second layer rests and notes in order to make the measure time consistent, thus the measure can be justified considering simultaneities among layers/parts. On the other hand, if the musicians prefer to hide/see the rests they can be made invisible/visible.

    <measure; PROGRESSIVE="1" ID="1">
    <justification; MAINTYPE="LOG" MAINJUST="2.00"/>
    <header;>
    <clef; TYPE="TREBLE" SIZE="NORMAL"/>
    <keysignature; TYPE="DOM"/>
    </header>
    <timesignature; TYPE="FRACTION" NUMERATOR="4"  DENOMINATOR="4"/>
    <layer; NUMBER="1">
        <beam; ID="12" STEMS="UP">
            <note; ID="1"DURATION="D1_16" HEIGHT="12"/>
            <note; ID="2" DURATION="D1_16" HEIGHT="7"/>
            <note; ID="3" DURATION="D1_16" HEIGHT="5"/>
        </beam>
         <note; ID="4" DURATION="D1_4" STEM="UP"  HEIGHT="6"> 
            <augmentation; DOTS="1"/>
        </note>
        <beam; ID="13" STEMS="UP">
            <note; ID="5" DURATION="D1_8" HEIGHT="4"/>
            <note; ID="6" DURATION="D1_8" HEIGHT="6"/>
        </beam>
        <note; ID="11" DURATION="D1_4" STEM="UP"  HEIGHT="4"/>
    </layer>
    <layer; NUMBER="2">
        <rest; ID="2" DURATION="D1_2" HEIGHT="-4"  STATUS="HIDDEN"/>
        <beam; ID="9" STEMS="DOWN">
            <note; ID="3" DURATION="D1_8" HEIGHT="-4"/>
            <note; ID="4" DURATION="D1_8" HEIGHT="-5"/>
        </beam>
        <rest; ID="8" DURATION="D1_4" HEIGHT="-7" STATUS="HIDDEN"/>
    </layer>
    <barline; TYPE="END"/>
    </measure>
    <horizontal; ID="4" TYPE="TUPLE" UPDOWN="UP" TUPLENUMBER="3" TUPLELINE="FALSE">
    <address; MEASURE="1" LAYER="1" FIGURE="12" CHORD.OR.BEAM="1" CHORD.IN.BEAM="0"/> 
    <address; MEASURE="1" LAYER="1" FIGURE="12" CHORD.OR.BEAM="3" CHORD.IN.BEAM="0"/>
    </horizontal>
    

    In the first part of the example, a tuple has been included. The tuples are managed in WEDELMUSIC as a special case of horizontal symbols. For this reason the specification of the tuple is at the end of the part description.




    swf_main.dtd
    swf_part.dtd
    These DTD files are the version related to the WEDELMUSIC editor version 6.2. They only correspond to the Symbolic representation of Music. Classification, structure of the WEDELobjects and all related DTDs are avaialable under a special agreement.