Version 71:
- implementation of stemless notes and accidentals with parentheses (ABC: !stemless! and !courtesy!)
- translation of tablature (to ABC notation supported by abc2xml)
- does not crash anymore on an empty "rights" element.

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:
- Several small changes for compatibilty with Python3. (integer division, file-encoding, iterator->list etc.)
- 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 (<tie> and <notations/tied>) 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.

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:
- 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:

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 translated from the xml pageformat default element

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).
- changed octave=+1 attribute into octave=1, because abc2svg does not accept the +1 argument.

Version 54:
- added command line option -x: do not output score line breaks ($)
- added command line option -p: specify page layout parameters (see readme)
- translate xml pageformat specifications into abc pseudo commands when option -pf is given
- changed the approximation of durations with denominator > 64 (for compatibility with javascript version of xml2abc)
- added command line option -j: abc output identical with javascript version of xml2abc (mainly ordering issues)
- unified parameter passing of all options for interface with EasyABC

Version 53:
- new option -b results in ABC lines with a fixed number of measures (bars).
  (option -n remains what it was: maximum number of characters on a line, -b is ignored when -n is given).

Version 52:
- program can run with either Python 2.6, 2.7 or Python 3.x. (tested with Python 3.4 and 2.7)
- small code change for compatibility with EasyABC's interface to xml2abc.

Version 51:
- insert [I:staff+/-n] annotations when a voice moves to a different staff.
- chord notes (i.e. notes marked as such in MusicXML) are kept on the staff of the first chord note (in MusicXML order)
  because ABC cannot (yet) express a single chord extending over more than one staff.
- made script executable on Linux
- only base name of input path is joined with the -o directory path. (correction P.Villiger)

Version 50:
- corrected bug that raised an exception when a second line of lyrics appeared in the middle of a tune

Version 49:
- do not stop on an exception when processing a set of *.xml files.
- correct part-list when part-groups are not properly terminated (resist buggy xml-software)
- corrected bug in melisma translation

Version 48:
- volta's are output on all voices (was only on the first voice) for the sake of abc2midi
- option -v adds three different ways to reduce clutter with the typesetting of volta brackets.
- note length ouput limited to an accuracy of 1/64
- replace (3:2:3 -> (3
- ignore <instrument> assignment in notes when no corresponding midi-instrument is defined in the xml-partlist
- translate acciaccatura's

Version 47:
- do not output %%midi commands when no midi-instruments present in the xml file 
- -m option: also output midi channel, volume and -panning commands when these settings are present
in xml, but only output the channel command when the channel number is different from the voice nummer.
- changed repeats from :|] -> :| and [|: -> |: and :|]|: -> ::

Version 46:
- Melisma and elision handled in lyrics.
- spaces, hyphens and underscores are escaped in lyric text.

Version 45:
- merged patch file from Nils Liberg:
  - more ornaments translated
  - default mode is major, default key is none (wrong in previous release)
  - do not output %%staves for a single voice tune
  - much improved setting of T: C: and Z: fields
- added credits filter (see Readme) to remove redundant T: fields
- added -c C options to set the credit filter level. C=0-6, 0=much filtering (default), 6=no filtering.
- translate Coda and Segno directions

Version 44:
- no abc-duration suffix for grace notes with a real duration in xml
- per voice computation of optimal unit length (L:)
- most frequent optimal unit length goes into the header.
- option -d D sets the unit lenght to L:1/D and skips the computation of optimal values
- move chord ties after bracket when all notes inside chord are tied ([c-e-g-] -> [ceg]-)
- changed default key from K:none to K:major
- changed default placement of text annotations from _ to ^
- changed %%MIDI program c p to %%MIDI program p
- added translation of <octave-change> into clef transposition
- warning when a completely empty measure occurs (|cde| |fga|)

Version 43:
- moved note durations in chord outside the brackets. [E2G2] -> [EG]2
- introduce broken rhythm notation. E3/2E/ -> E>E
- corrected unintentional beam break caused by grace notes
- escape double apostrophes in text annotations

Version 42:
- failed to detect natural when xml-file has no natural accidental where there should have been one.
- allow floating points in tempo, midi volume- and panning.

Version 41:
- set keys properly for transposing instruments
- include midi program changes for all instruments
- skip empty parts

Version 40:
- tuplets further improved:
  - nested tuplets
  - single element tuplets
  - recognise standard tuplets when the <tuplet/type> notation is absent.
- removed limitation of 10 voices per part
- voice definitions moved from header to body

Version 39:
- chords, text annotations, dynamics and wedges are inserted in the first voice of the specified staff,
  key changes are inserted in all voices of the specified staff.
- part number and measure number added to most warnings.
- program is more resilient when translating untidy xml-files:
  - allow out of order insertion of elements: order time at the end of a complete measure.
  - try to repair overlapping elements in one voice (shorten, make chord or discard)
  - stretch measure when it is shorter than corresponding measures in other voices (of the same part)
  - warn when a measure is longer than the metre

Version 38:
- I:linebreak $ in header, MusicXML line/pagebreak -> put $ behind barline (or behind barline+volta)
- Command line option [-n xx] now limits the abc line length to xx characters, default = 100
- a <transpose/chromatic> element for a staff is translated into all ABC voices of this staff.
  (e.g, two clarinets notated in one staff -> two transposed ABC voices)

Version 37:
- accidental computation from the <alter> element when no <accidental> element is present
- a message is printed when an accidental is added that was not present as <accidental> element

Version 36:
- text annotations
- fingering, trill-mark wavy-line
- chord symbols (jazz notation, with alterations and bass notes)

Version 35
- translation of the part-list (start/stop-event-based) into proper tree
- translation of partnames + groupnames (and abbreviations) into abc-voice names
- translation of (nested) groups with braces, brackets and barline-continuation
- change to %%score in stead of %%staves
- also look for sound elements as child of a measure

Version 34
- mapping of voices to staves (%%staves) (staff allocation of voices with majority voting)
- clef translation (via staff mapping)
- voice definitions in the abc header with clefs, partnames and -subnames
- braces in staff mapping for multistaff parts
- barnumber in comment field at the end of each line
- abc written to stdout, unless "-o dir" option given

Version 33
- option -n <int> sets the number of bars per line in the ABC output
- the default is 4 bars per line
- explicit line/page breaks in MusicXML take precedence over the default of 4
- suppress redundant key, metre and tempo definitions
- add title (work + movement), composer to header
- read both mxl and xml files
- accept multiple input files and wildcards on the command line.
- make header more ABC compliant
- determine character encoding once on the entire ABC output (latin-1 or utf-8)

Version 32
- multiple lyric lines in all voices (maximum 10 per voice)
- all (non nested) tuplet types supported
- allow slurs to start or end on a grace-note
(however, a slur that starts *and* ends on a grace note is still rejected)
- code clean-up (note-records replaced by note-objects for more flexibility)

Version 30
- added repeats, volta's and barlines
- unfolding of simple repeats is default off and can be turned on with -u on the commandline

Version 28
- code clean-up, tuplet rewrite more efficient

Version 27
- added dynamics
- added cresc/dim wedges (in current voice)
- reject cross stave slurs!
- improved closing of grace sequences
- always insert tempo changes at the start of the current measure in voice 1
- corrected bug when a note both ends and starts a tie.

Version 24
- skip notes that are marked as non printable element
- added global counter object to keep track of all skipped or not properly translated elements
- added ornaments, slurs, grace notes

Version 22
- do not output empty voices (some xml files have non consecutive voice numbering ...)

Version 21
- unpitched note -> just output an E5
- not all sound elements have a tempo definition -> test for tempo
- voice terminates (without forward) in the middle of a measure -> set time again to end of measure
- first latin-1 then utf-8 -> also alow non latin-1 characters
- repeat without begin -> just set begin to the first measure
- better treatment of tuplets

Version 20
- Encode ABC output with the 'latin-1' codec
- Skip note elements without duration (grace notes for the time being)
- Put note elements wihtout voice indication in the top voice of the current part

Version 19
Initial release