Eco-Structuralism

<Eco-Structural XML Schema>

By Tim Opie. Valid as of 01/07/2009

This document defines the Eco-Structural XML Schema used in eco-structuralism. There is also an associated file called ecoStructure.dtd which is used to validate this schema.

To see valid Eco-Structural XML files, go to the Library.


The overall XML structure is:

<ecoStructure>

<head></head>

<body></body>

<tail></tail>

</ecoStructure>

ecoStructure is the root element signifying the entire eco-structural data file.

The head contains the majority of parameters and information regarding the audio file and the data to be generated or processed. These include settings, descriptions, filenames, etc.

The body contains the indexed data.

The tail contains information that could not be gathered until after the analysis was completed, this includes maximums, averages, number of samples made, etc.


Lets now take a look at the other elements within the Eco-Structural XML Schema.



The <head> Elements:


<version></version>

This is the version of the software used to generate the XML file. This is important to note because there are many small components that make up the eco-structural software, and whilst they should all be the same version, they may not be. It should be noted however that all versions from 2.0 onwards should be fully compatible.

Example:

<version>ExtractAmpXML.java Eco-structuralism Version:2.1 By Timothy Opie</version>


<date></date>

The date the Eco-Structural XML file was created (not the date the audio was recorded).

Example:

<date>Wed Jul 01 14:27:28 EST 2009</date>


<audioFilename></audioFilename>

The name of the audio file used for analysis.

Example:

<audioFilename>flow1.au</audioFilename>


<recorddate></recorddate>

The date the audio was recorded. This should also include time.

Example:

<recorddate>Saturday 21 February 2009 at 11AM</recorddate>


<description></description>

A description of the audio event that is about to be analysed. This might include geographical information about the recording, affecting weather conditions, microphones and hardware, notes the composer needs to make, and a spectromorphological description of the sound.

Example:

<description>This audio event was recorded by the waterfall near The Basin. The Basin waterfall is almost dried up due to the ongoing drought in Australia. Filmed two weeks after Black Saturday. There had been some ash falling in the area a few nights previously, but today has been quite a good, and substantially cooler day, having had a tiny amount of rain the night before, just enough to produce flow. There is an almost white noise tone to the piece, due to the speed the water is traveling, but there is a much louder trickle sound, which is fluctuating in frequency</description>


<location></location>

The location in which the recording was made

Example:

<location>Waterfall in the Dandenong Ranges National Park, near The Basin</location>


<geographical></geographical>

The latitudinal and Longitudinal location of the recording. This should be in DMS format. This information can be used for finding exact locations again in forests and other unmarked areas. It is also used for geotagging.

Example:

<geographical>37d 51 58.80 S 145d 19 49.00 E</geographical>


<audioSampleRate></audioSampleRate>

The sample rate of the recording in Hz

Example:

<audioSampleRate>44100</audioSampleRate>


<audioSampleDepth></audioSampleDepth>

The bit depth of the recording

Example:

<audioSampleDepth>16</audioSampleDepth>


<channels></channels>

The number of audio channels in the recording

Example:

<channels>1</channels>


<audioLength></audioLength>

The length of the audio in seconds

Example:

<audioLength>9.1</audioLength>


<dataFilename></dataFilename>

The name of the Eco-Structural XML file. It has proven to be useful to keep this information within the file itself.

Example:

<dataFilename>flow1-amp.xml</dataFilename>


<dataLength></dataLength>

The length of the audio to be analysed. You may only want to analyze the first 2 minutes of a 28 minute recording.

Example:

<dataLength>9.1</dataLength>


<attribute></attribute>

The attribute to be analysed in the recording.

The current attribute studies include:

Example:

<attribute>Amplitude</attribute>


<window></window>

The size of the analysis window used, expressed in audio samples.

Example:

<window>128</window>


<cycles></cycles>

The number of audio cycles to use when analyzing frequency

Example:

<cycles>16</cycles>


<scale></scale>

The scale of the data, if it has had a scaling factor applied

Example:

<scale>2.0</scale>


<extra1></extra1>

Other information or factors a composer may decide to include

Example:

<extra1>None</extra1>


<extra2></extra2>

Other information or factors a composer may decide to include

Example:

<extra2>None</extra2>


<extra3></extra3>

Other information or factors a composer may decide to include

Example:

<extra3></extra3>



The <body> Element:


<data></data>

Only the data element is allowed in the body. All other information should be contained in the head or tail. There is an unlimited number of data elements allowed in the body.

Data contains two attributes:

index

value

The index is incremented by 1 for every data value. It makes search location much simpler, as there could be thousands or even millions of data values.

Example:

<data index="310" value="0.0954008623957634"/>

<data index="311" value="0.3184301257133484"/>

<data index="312" value="0.24835963547229767"/>

<data index="313" value="0.11749625951051712"/>



The <tail> Elements:


<samples></samples>

The number of analysis samples made during the process

Example:

<samples>3392</samples>


<primitive></primitive>

The primitive declaration used to define the data value. This could be double, float or integer.

Example:

<primitive>double</primitive>


<minimum></minimum>

The minimum data value collected

Example:

<minimum>0.03720206394791603</minimum>


<maximum></maximum>

The maximum data value collected

Example:

<maximum>0.7555162310600281</maximum>


<average></average>

The average of all the data values collected

Example:

<average>0.11493379572727103</average>


<counter></counter>

The number of audio samples read during the analysis process.

Example:

<counter>434176</counter>


<form></form>

Form is used to classify the data that has just been collected. Currently there is no automatic way of assigning a classification. That will be the major addition in version 3 of the software. In the current version (2.1) the classification is made solely by the composer using a simple graphical comparison test. It is hoped this method will become more useful in the future, as the potential of useful classification will undoubtedly enhance the composers experience with eco-structuralism significantly.

Form that are currently used include:

For more information on form, including illustrations and definitions , please go to the classification page.

Example:

<form>Combination Unstable Sinusoidal with Fluctuating Sharp Impulse</form>


<extra4></extra4>

Other information or factors a composer may decide to include

Example:

<extra4></extra4>


<extra5></extra5>

Other information or factors a composer may decide to include

Example:

<extra5></extra5>


<extra6></extra6>

Other information or factors a composer may decide to include

Example:

<extra6></extra6>


</Eco-Structural XML Schema>