Version 71: - implementation of stemless notes and accidentals with parentheses (ABC: !stemless! and !courtesy!) - translation of tabulature (to ABC notation supported by abc2xml) 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.