Amadeus To MusicXML Conversion

About

There exists a professional music typesetting system called Amadeus which produces high-quality output and is used by many publishers. However its input format is somewhat "special" and not easily used outside Amadeus itself. I decided to write a conversion tool that can convert Amadeus musinp data and convert it into MusicXML 1.1.

Amadeus

An example output of Amadeus can be seen here. This is a page typeset by Amadeus, printed and scanned in (the image is scaled in your browser, click on it to see it at full scale).

Amadeus Example

The source code to produce this output (well, the first stave of it) looks like follows:

treble f 6/8
include defs
set C t2 c120n 3.3 2.5 u \f76
vocal
refka'-20l200n'
ka'1.'c150n'
^F,c100n { C8 F G A G F / A' - A' - C F - C - A'~ } |
^Gm { G4. D / A'8 - B' - C G' - A' - B' } |
^C7 { C8 E F  / G'4 D8 } ?|? 
{ G8 A B / C4 E8 } ?| 
^Bb { B4. ^F A zo / D8 - E - F F - E - D } |
^F { C8 F G A G F / A' - A' - C F - C - A'~ } |
^Gm { G4. D / A'8 - B' - C G' - A' - B' } |
^C7 { C8 E F G F E / G'4 D8 C8 - D - E8 } |
set C t2 c140n 3.3 2.5 u \f76
^Bb { F4.  / D8 - C - B'  } ?|? 
{ ^F fm F4.   / A'8 - B' - C } ?|

Amadeus can include other files and you can even define macros with arguments that expand when used (like refka and ka in the above).

MusicXML

The same score converted to MusicXML 1.1 looks like this (again, only shown partially):

  <part id="P1">
    <measure number="1">
      <attributes>
        <divisions>192</divisions>
        <key>
          <fifths>-1</fifths>
          <mode>major</mode>
        </key>
        <time>
          <beats>6</beats>
          <beat-type>8</beat-type>
        </time>
        <clef>
          <sign>G</sign>
          <line>2</line>
        </clef>
      </attributes>
      <direction>
        <direction-type>
          <words justify="left" relative-x="-10" relative-y="140">Refrain (Kanon)</words>
          <words justify="center" relative-x="0" relative-y="115">1.</words>
        </direction-type>
      </direction>
      <harmony>
        <root>
          <root-step>F</root-step>
        </root>
        <kind>major</kind>
      </harmony>
      <note>
        <pitch>
          <step>C</step>
          <octave>4</octave>
        </pitch>
        <duration>96</duration>
        <voice>1</voice>
        <type>eighth</type>
        <stem>up</stem>
      </note>

Looking at this converted score in something like Finale or Sibelius shows that the conversion went quite well (the image is scaled in your browser, click on it to see it at full scale):

MusicXML Example

What works

As Amadeus is a very complex tool, my converter is far from capable of converting every possible Amadeus score. But for the vast majority of scores I have come across, it works very well. The following list shows what is possible at present:

Still on my to-do list are:

Not on my to-do list:

Interested?

If you are interested in the project, just get in touch with me!

Related pages

Recordare

Click here to go back to the index page.


Stefan Bellon (), 19-Jan-2019