I'VE GLIMPSED THE FUTURE AND IT'S XML
by Jason Warren

 

 

 

Ed. Comment: In my writings and seminars I made my position on XML clear. Recently I came across an exchange on the subject that expresses wonderfully one of XML’s major flaws, one that should be obvious to anybody with a brain, but which apparently either escapes the industry (draw your own conclusion about the brains in it), or is due to what I call “denial-inducing hype”. I am publishing the message with permission of the author.

 

 

<salutation> Hi </salutation>

 

I’ve changed my name. Please note: I am henceforth to be known and addressed as: JasonWarrenXML.

 

I have glimpsed the future, and it’s XML.

 

You see, Shirley is neck-deep into composing a 3-movement piece for orchestra and chorus. Finale is the weapon of choice. Shirley’s been using various versions for several years. Finale is a monster. It is the Photoshop of its domain and has grown (swollen, actually) over the years as it tries to encompass every single aspect of creating music – notation, engraving, MIDI sequencing etc.

 

We just bought the upgrade to the latest version because of previous trouble with populating scores with lyrics. The buzz about version 2004 was the improvements/fixes in this very area. Shirley’s experience to date does not seem to bear this out, however. So, I’m trying to help. I’m the Programmer who talks to Tech Support and tries to translate back & forth between Shirley’s Finale use and the software failures… At one point last week, all the lyrics in a large score simply vanished. Shirley’s never too sure just what she was doing when things fail, because often they’re not coupled. She only noticed that the lyrics were AWOL after she’d been doing serious note editing – nothing to do with lyrics at all.

 

It seems that Level 1 support is somewhere Offshore in a place where English is not the first language. Those folks simply waste our time. With sufficient persistence, we occasionally break through to Level 2, which is in the Good Old USofA. Trouble is, those guys seem to be too few in number or are chasing too many bugs to give us much time, so concise info is of paramount importance. (Having worked on various WYSIWYG editors for text and graphical material, I have some appreciation of how enormously complex such apps can be and some insight about how they can go wrong. This helps when I talk to Support.) It is obvious to all by now that corrupted data structures are The Problem. (And we’ve helped them find a real bug already – a buffer overflow - shades of Necrosoft!) This is where my XML epiphany comes in.

 

There are 3rd-party plug-ins that ship with Finale to import/export scores. They consume/produce XML files. Cool. Thinking that exporting the buggy score might produce something useful, I tried it. Finale apparently went into an infinite loop. I had to kill it with Task Manager. I then tried the same thing on the same file from the week before and it worked perfectly. Well, perfectly in one sense: it ran from start to finish. I took a gander at the .txt file it produced. Here’s a sample:

 

 <note>

 <pitch>

  <step>B</step>

  <octave>4</octave>

 </pitch>

 <duration>3</duration>

 <tie type="start"/>

  <voice>1</voice>

  <type>eighth</type>

  <stem>down</stem>

  <notations><tied type="start"/></notations>

  <lyric number="1">

   <syllabic>begin</syllabic>

   <text>Do</text>

   <extend/>

  </lyric>

</note>

 

I think that this is simply a wonder to behold. The score in question contains 2,900 notes so far. [Ed. Note: The above is the XML representation of one note!).

 

The Finale native file is around 120kB; the XML representation is more than an order of magnitude larger. It doesn’t get any better than this if you’re in the disk/RAM/bandwidth business! I hadn’t appreciated just what a breakthrough XML represented until now. I’m smitten.

 

<signoff>

 <amateur_radio>

  <numeric_abbreviations>

   <digit>

    <decimal>7</decimal>

   </digit>

   <digit>

    <decimal>3</decimal>

   </digit>

  </numeric_abbreviations>

 </amateur_radio>

</signoff>

 

 

Posted 10/17/03

 

 

 

[ABOUT] [QUOTES] [LINKS]