Version 77:
- bug: no key in percussion staff (K:none)
- bug: scale xml midi volume 0..100 -> abc midi volume 0..127
- bug: ABC code for a tab staff (with option -t) compatible with default %%propagate-accidentals
  settings of abc2midi
- generate SVG code with full closing tags (), i.e. no short endings ()
  (needed when embedding %%beginsvg ... %%endsvg into HTML)

Version 76:
- improved translation of tab staff allowing the same note played on max. four different strings
  (for each voice and even at the same time, as chord, if it were playable).

Version 75:
- step height bug with a tab staff of 3 lines
- new tab staff attribute "diafret" translates diatonic fretting (with option -t)

Version 74:
- keep string, courtesy and finger deco's adjacent to the ABC note, also in chords.
- move other deco's of chord notes outside, before the chord. [C.E!stemless!G] -> .!stemless![CEG]
- bug when normal staff without clef after tab staff (caused error messages, but ABC code was correct)

Version 73:
- option -t also translates a tab staff to equivalent %%map and %%voicemap (with restrictions, see readme)
- for a tablature, option -s shifts note heads slightly to the left (for different stem alignment).
- translation of MusicXML measure-repeat to [I:repeat x y] (code contributed by Larry Myerscough)

Version 72:
- option -t replaces I:percmap by equivalent %%map and %%voicemap. This allows percussion voices to
  be rendered by abc2svg.

Version 71:
- implementation of stemless notes and accidentals with parentheses (ABC: !stemless! and !courtesy!)
- translation of tablature (to ABC notation supported by abc2xml)
- an empty "rights" element can no longer generate an empty Z: field.

Version 70:
- missing decorations added: !snap!,!thumb!,!^!,!slide!,!pppp! and !ffff!
- dual note/chord tremolo's added: !/-!, !//-!, !///-! and !////-!
- Translation of glissando !~(!, !~)! and slide !-(!, !-)! added
- Translation of sound elements with jump attribute added (dalsegno, dacapo, dacoda, fine, capo, segno).
  These sound elements now take priority over text annotations with the same meaning.
- bug in translation of trill-line (stop after last note -> stop before last note)
- bug in translation of single tremolo's (number of bars was incorrect)

Version 69:
- A bar line element without location attribute now defaults to location=right.

Version 68:
- An xml file where the last part happened to be empty procuced no output at all, even when the other
  parts did contain music.

Version 67:
- removed voice reordering for ottava annotations, because abc2svg is now capable of rendering ottava's
  in any voice.

Version 66:
- translate pedal directions and ottava directions (8va, 8vb)
- improved allocation of staff directions to ABC voices (wedges, ottava etc.). They are now put
  into the voice of the next note (if any) on the staff.
- option --v1 to enable the old allocation method (all directions to first voice of staff)
- option --noped to disable translation of pedal directions
- recognize both tie variants in MusciXML ( and ) and translate to ABC tie.

Version 65:
- improved the translation of durations in MusicXML where the rational approximation needs a denominator > 64

Version 64:
- take the duration of invisible notes into account, as subsequent backup elements seem to expect this. Previously
  invisible notes followed by a backup would cause a negative time value and crash.
- three ad-hoc note heads replaced by unicode symbols (in perc2map) because their svg definitions were removed from abc2svg.

Version 63:
- do not skip voices without notes when they do contain certain directions (words, coda, dynamics, chords)
- rehearsal directions are translated to ABC text annotations (requested by Donovan Simmons)

Version 62:
- bug in translation of xml 'default-y' argument for text directions (reported and corrected by Janus Meuris)
- xml 'rights' elements (copyright statements) are translated to Z: information fields (reported and corrected by Janus Meuris)
- trim white space from xml 'work-title' and 'movement-title' and replace each newline by newline + T:
- bug in translation of accidentals (reported by Janus Meuris). Can only occur with xml files where altered notes (i.e.
  the pitch/alter-element is present) do not have a corresponding accidental-element. Neither Finale nor Musescore produces such
  files. But it seems Sibelius does ....
- honour the print-object attribute in a rest, i.e. make it invisible (x) when print-object == no. (reported by Janus Meuris)

Version 61:
- maintenance update, no functional changes.
- replaced object iteration by array iteration where possible.
- code wrapped in annonymous function application to avoid global name space pollution.
- volta option -v did not work correctly

Version 60:
- output percmap when display step is different from abc note (for legacy abc percussion code)
- bug in matching percussion clef when writing file header (only occurred with multiple parameters in V: K: field)

Version 59:
- improved and debugged translation of clef suffixes +/-8 and +/-15
- translation of the "filled" attribute for note heads.
- added -t option which makes staff step values depend on the clef (percmap)
- in I:percmap transposition 4 diatonic steps for stafflines=1 (xml: E -> abc: B)
- the value zero was not handled correctly in the pageformat options

Version 58:
- staff step value in I:percmap always computed relative to treble clef (independent of actual clef).
- all notehead names translate to I:percmap (spaces replaced by hyphen). Previously only cirle-x and x were translated.

Version 57:
- translation of instrument/channel changes (as implemented in Finale) into equivalent [I:MIDI=] commands
  (use option "-m 1" or "-m 2" to allow these commands to appear in the resulting output)
- change "perc=on" voice parameter into "map=perc"
- translate staff-lines attribute
- program more resilient against buggy Sibelius xml (voice and lyric numbers)

Version 56:
- translation of drum parts using a percussion map. Both %%drummap and I:percmap instructions are issued.
  Some notehead symbols are mapped to notation that abcm2ps supports (^ and _). The voice definition
  of a percussion instrument (V:) gets an extra perc=true parameter when it has a normal (bass) clef.
  (This generates an error in abcm2ps, and it outputs a percussion clef ... )
- changed -m option, -m 0 (default): no %%MIDI output, -m 1: only %%MIDI program, -m 2: all %%MIDI
- A percussion voice always gets a "%%MIDI channel 10" specification (when option -m > 0)

Version 55
- insert tempo changes at the place where they belong (were previously always moved to the beginning of the mesure).
- program version is in global var xml2abc_VERSION of xml2abc.js

Version 10
- replace global function info by infof with modified parameters and delete function info
- uniform option parameter passing, no more separate variables just one object
- added translation of default xml pageformatting
- added option -p for pageformatting
- added option -x for omitting linebreaks ($) in generated abc code
- "treble-8 m=B" is not supported by abc2svg. Should we change it do treble-8 octave=+1? Same for other +-8 clefs.