Hillsboro XML Recording Archive
[ releases | features | utilities | dtd | xml | example | who ]

Hillsboro XML files are used to archive a live show that is being distributed by the Internet, mail or any other medium in formats such as shorten. The files store each track of the live show, along with attributes of that track, MD5 signature, track length, and notes on the track among other things.

Releases:

Features:

Utilities:

All of the following Perl utilities were written and tested on a Debian GNU/Linux system. They should run on other platforms, but I haven't tested them on any other platform. Send bugfixes to topeka@catchen.org. They are all pretty simple to run, type

utility.pl -h

for the details of each program, and "utility" is one of the programs that follow.

DTD:

The following DTD definition defines the HBX file format. Most XML parsing libraries will validate the contents of an HBX file with this DTD. It defines what XML tokens are allowed to appear in a file and what data they can hold.

<!ELEMENT recording_archive (format, performer, venue, location, 
                             date, source, recorder, tracks, noteref*, notes)>

<!ELEMENT format (#PCDATA)>
<!ELEMENT performer (#PCDATA)>
<!ELEMENT date (day, month, year)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT month (#PCDATA)>
<!ELEMENT day (#PCDATA)>

<!ELEMENT noteref EMPTY>
<!ATTLIST noteref id ID #IMPLIED>

<!ELEMENT venue (#PCDATA)>
<!ELEMENT location (#PCDATA)>
<!ELEMENT recorder (#PCDATA)>
<!ELEMENT source (#PCDATA)>
<!ELEMENT tracks (track)+>
<!ELEMENT track (title, filename?, md5?, time?, noteref?, segue?)>
<!ATTLIST track set    CDATA #REQUIRED
                disc   CDATA #REQUIRED
                number CDATA #REQUIRED>

<!ELEMENT title (#PCDATA)>
<!ELEMENT filename (#PCDATA)>
<!ELEMENT md5 (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT segue (#PCDATA)>

<!ELEMENT notes (note)*>
<!ELEMENT note (#PCDATA)>
<!ATTLIST note id IDREF #IMPLIED>

XML Example:

The following XML code is a partial sample of what an HBX file looks like. Below it there are links to complete examples.

<?xml version="1.0"?>
<!DOCTYPE recording_archive SYSTEM "http://catchen.org/hillsboro/hbx.dtd">
<recording_archive>
  <format>shn</format>
  <performer>Phish</performer>
  <venue>Thomas & Mack Center</venue>
  <location>Las Vegas, Nevada</location>
  <date>
    <day>31</day>
    <month>10</month>
    <year>1998</year>
  </date>
  <source>Schoeps CMc6/MK41 -> Sonosax SX-M2</source>
  <recorder>John Doe</recorder>
  <tracks>
    <track set="1" disc="1" number="1" id="N.111">
      <title>Axilla I</title>
      <filename>ph98-10-31d1t1.shn</filename>
      <md5>asdf</md5>
      <time>350</time>
      <segue>false</segue>
    </track>
    <track set="1" disc="1" number="2" id="N.112">
      <title>Punch You In the Eye</title>
      <filename>ph98-10-31d1t2.shn</filename>
      <md5>d347183871d3e3795e20b13fbc0cbbb2</md5>
      <time>350</time>
      <segue>false</segue>
    </track>
    <track set="1" disc="1" number="3" id="N.113">
      <title>Punch You In the Eye</title>
      <filename>ph98-10-31d1t2.shn</filename>
      <md5>d80e02158649bd7aa4e0863e03144ea6</md5>
      <time>350</time>
      <segue>false</segue>
      <noteref id="1" />
    </track>
  </tracks>
  <noteref id="2" />
  <notes>
    <note id="1">With Guest on Guitar.</note>
    <note id="2">Set II was the "musical costume", the album "Loaded" by 
          The Velvet Underground</note>
  </notes>
</recording_archive>

Here are three examples of full shows that were created with shn2hbx.pl and are stored in HBX format:

A Complete Example

  1. Create the HBX file:

    $ ./shn2hbx.pl -a ./ph00-07-07.shnf

  2. Generate an HTML file from the HBX file:

    $ ./hbx2html.pl -i Phish-07-07-2000.xml

  3. Generate the Plain Text file:

    $ ./hbx2txt.pl -i Phish-07-07-2000.xml

  4. Generate PostScript CD covers:

    $ ./hbx2ps.pl -i Phish-07-07-2000.xml -f ./worcester.eps -b ./phishlogo.eps -s 1-3 -dt

Here are the finished documents:
HBX XML File Phish-07-07-2000.xml
HTML File Phish-07-07-2000.html
Text File Phish-07-07-2000.txt
PostScript File (Converted to PDF for display on the web) Phish-07-07-2000.pdf

Who:

The HBX format and utilities used to interoperate with it were created by Julian Catchen.

Julian M Catchen
Last modified: Sun Sep 29 21:05:07 PDT 2002