-
Notifications
You must be signed in to change notification settings - Fork 172
Song format
thijs edited this page Jan 23, 2014
·
2 revisions
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. :-)
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.