Hydrogen Song Format
Hydrogen songs are a well-formed, but non-standard XML file. See below for why they are non-standard. There is currently no style sheet, but the schema is something like this, in pseudo-DTD syntax:
song (version, bpm, volume, metronomeVolume, name, author, notes, license, loopEnabled, mode, humanize_time, humanize_velocity, swing_factor, instrumentList, patternList, patternSequence, ladspa) instrumentList (instrument+) patternList (pattern+) patternSequence (group+) ladspa (fx+) instrument (id, drumkit, name, volume, isMuted, pan_L, pan_R, gain, filterActive, filterCutoff, filterResonance, FX1Level, FX2Level, FX3Level, FX4Level, Attack, Decay, Sustain, Release, randomPitchFactor, muteGroup, layer+) layer (filename, min, max, gain, pitch) pattern (name, category, size, noteList) noteList (note+) note (EMPTY | (position, leadlag, velocity, pan_L, pan_R, pitch key, length, instrument)) group (patternID+) fx (name, filename, enabled, volume) '''Note:''' There are no attributes Documentation on individual elements: TO-DO. :-)
BEFORE YOU START HACKING
Remember that the values read and written have always been done by Hydrogen. There's not a lot of input checking there. If you manually create a file, you could potentially crash Hydrogen.
You have been warned.
Hydrogen, internally, uses TinyXML. In the past, TinyXML did not read and write numeric character references correctly. The current devel. version of Hydrogen (to be 0.9.4) will write them correctly, but read them in a way that is compatible with old versions of Hydrogen.
* 2009-04-11 Gabriel M. Beddingfield (Create page.)