- 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)
- 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).
- step height bug with a tab staff of 3 lines
- new tab staff attribute "diafret" translates diatonic fretting (with option -t)
- 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)
- 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)
- option -t replaces I:percmap by equivalent %%map and %%voicemap. This allows percussion voices to
be rendered by abc2svg.
- 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.
- 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)
- A bar line element without location attribute now defaults to location=right.
- An xml file where the last part happened to be empty procuced no output at all, even when the other
parts did contain music.
- removed voice reordering for ottava annotations, because abc2svg is now capable of rendering ottava's
in any voice.
- 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.
- improved the translation of durations in MusicXML where the rational approximation needs a denominator > 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.
- 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)
- 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)
- 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
- 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)
- 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
- 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.
- 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)
- 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)
- 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
- 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.