Mercurial > dottes
diff abc2xml/Changes.txt @ 484:4fab69a1027d build-default-207
Add MusicXML conversion to tune pages.
Might help someone.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Tue, 17 Jun 2014 09:11:38 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/abc2xml/Changes.txt Tue Jun 17 09:11:38 2014 +0100 @@ -0,0 +1,261 @@ +Version 58 +- grammer for I:score instruction replaces ad hoc parsing. +- voice merging, part grouping and grand staffs are derived by transformation of the parse tree of I:score. +- also move clef redefinitions after [I:staff +/-n]. +- avoid a false beam break when [I:staff +/-n] is used within a beamed note group. +- absolute ABC staff numbers in [I:staff n] are mapped to MusicXML grand staff numbers (when possible). +- added translation of the [+-^_]15 octave clefs. +- no default channel/panning/volume in <midi-instrument> elements. + +Version 57 +- grand staff implemented. +- in an [I:score] instruction recognize a braced voice group as a grand staff when the opening brace is followed by an asterix ('{*' no space allowed). +- also recognize a normal braced voice group as a grand staff when precisely one of the braced voices has a name. +- the name of a staff or part is taken from the first of its voices (in ABC source order) for which a name is defined. +- within a grand staff notes and directions preceded by [I:staff +/-n] are moved n staffs upwards or downwards. +- accept voice ids with a leading asterix in I:score instructions (for the time being the asterix is discarded, however) + +Version 56 +- the <grace/> element should come before the <chord/> element in a note. (previously caused syntax warning with FinaleNotepad) +- translates the _8, ^8 variants of the clefs in addition to the +8, -8. Also translates octave= argument of V: and K: +- part names are left empty when not explicitly given using V:id name="<part name>" (previously id was used in that case) +- transpose= was only honoured when a typed clef= definition was present, now is works in any V: or K: field. +- a tempo definition in the ABC header (Q:) is treated as an inline tempo ([Q:]) for the first voice. +- repeated occurrences of [I:MIDI] in a voice are translated into a MusicXML instrument changes for that voice. + Neither Finale nor Musescore recognize the relevant MusicXML elements (<sound/midi-instrument> and <note/instrument> yet. +- new cue=on/off attribute for K: and V: definitions, to mark sections of cue notes in a voice. + Neither Finale nor Musescore handle cue size for directions, yet (<level size="cue">). +- normally whole measure rests are discarded when merging staffs. Use option -r to keep these rests in the merged results. + +Version 55 +- replaced info message text: "leeg" with "empty voice", when skipping an empty voice. +- avoided exception when ABC voice has only one measure containing only a volta number +- do not output an xml-backup element when it has zero duration + +Version 54 +- allow gracenotes within chords +- discard unbalanced chord brackets (caused a syntax error previously) +- chords containing only rests caused an exception +- ABC-code like: B2 1 caused an exception, now interpreted as: B2/1 + +Version 53 +- tie to a chord with a single note caused an exception. +- a first line with a single measure and only a left bar line caused a syntax error. +- a first line with a single measure with only chords and no bar lines caused a syntax error. +- option -z or --mxl writes an additional compressed xml file with extention .mxl +- better treatment of barlines with spaces interspersed. +- dot after note right before barline caused syntax error (now only warning and skip) + +Version 52 +- accept and translate chords in a grace sequence (caused an exception previously) +- corrected bug when parsing %%score without space between voice number and left bracket, like %%staves 1(2 3) + +Version 51 +- treat abc file without any X: as a single tune and prepend X:1 +- recognize alto4 as alternative notation for tenor clef + +Version 50 +- corrected translation of the clef octave change notation (i.e. +8, -8 suffix) + +Version 49 +- ties between different pitches are converted to slurs (previously the tie in 'A-B A' would extend +to the second A, now there will be a slur between A and B). +- do not add accidentals to tied notes even when present in ABC code. +- use consistent voice numbering in XML when merging ABC-voices with overlays. + +Version 48 +- M: field with more than one slash caused an exception. +- limit shortest note durations to 1/64 +- skip redundant closing slurs (caused exception previously) +- check instrument id when generating MIDI elements (caused exception when errors in %%score) +- issue warning message when illegal user defined characters are used (X,Y,Z,x,y,z) +- use correct xml-syntax for credit elements (was wrong in version 47) +- translate explicit alterations for non traditional keys +(non traditional key signatures not supported by MuseScore, but note alterations are correct) +- skip more illegal symbols in stead of issuing parse error + +Version 47 +- translate middle=<pitch> in clefs +- translate transpose=<semitones> in clefs (also %%MIDI transpose is recognised) +- translate subname= in V: fields (name= was already translated) +- translate "%%MIDI program" and "%%MIDI channel" (multiple instruments per staff supported) +- an abc file with multiple tunes can be converted to a set of musicxml files. +- new command line option "-m SKIP NUM" to set the range of tunes to be converted for large abc files. +- leading dot was skipped when parsing a float in page format settings (.5in -> 5in) +- accept [r:] syntax for remarks (caused syntax error previously) +- relax syntax for user defined symbols (allowed character set was needlessly restricted) +- all abc meta-info fields are translated to credit tags (with type) + +Version 46 +- warn when unit length is a single integer and assume L:1/8 (caused exception previously) +- translate tune with only header fields (caused exception previously) +- translate tunes where first voice definition appears in the middle of the body (caused exception previously) +- skip illegal characters in chords and issue warning (caused syntax error previously) +- skip illegal U: field in body and issue warning (caused syntax error previously) +- more illegal characters between elements are skipped but with less specific warnings. +- line endings with only <cr> were not handled properly +- add check for text without any abc code in it (caused exception previously) +- conversion of pObj to string caused exception when it contained non latin-1 characters (e.g. in warning messages) + +Version 45 +- ignore old style continuation when next line is w: +- replace illegal durations by the nearest smaller legal one (caused exception previously) +- when multiple stave mappings keep only first one and issue warning +- accept start of next tune (X:) when not preceeded by an empty line (caused syntax error previously) +- warn when unit length is no fraction of integers and assume L:1/8 (caused exception previously) +- raise meaningful exception when the tune is empty (e.g. empty line after K:) +- broken rhythm involving a rest was not translated + +Version 44 +- translate volta brackets with quoted text (in addition to numbers and number ranges) +- when error in M: field assume 4/4. (caused exception previously) +- allow voice names with underscore +- bug in parsing %%score when no space between two stave groups, like: (v1 v2)(v3 v4) +- corrected merging of voices of unequal length (caused exception previously) +- user defined symbols with '()<>.' chars were not accepted +- when p was a user defined symbol also !p! was erroneously seen as used defined +- skip random text before tune starts (caused syntax error previously) + +Version 43 +- more non standard bar lines recognized (e.g. :]) +- accept X: fields when the tune number is followed by non-numeric chars. +- allow complex meter (M:2+2+3/8) +- warn for illegal L: fields (like L:1/6) and use 1/8 instead +- accept and skip E: field +- wedge close was not recognized when written with old '+' notation (bug was in fixSlurs) +- remove * and ** at end of line (probably old notation for right adjustment) +- accept and ignore a Q:-field with only text +- replace "Expected end of text at .." message from parser by "Syntax error at .." + +Version 42 +- translate tempo from Q: field +- translate -8 in key or voice field (temporary fix) +- accept empty text annotations +- in addition to !<(! also accept !crescendo(! and the same for diminuendo +- ignore line continuation after information field +- in lyrics treat isolated tildes as note skips +- encode parse error message in utf-8 and when that fails in latin-1 +- limit length of misplaced symbol message to 80 chars +- put text between K: and first V: into the header (was skipped previously) +- bug in %%score when no spaces around '|'-character +- added "o" as alternative for dim ("Edim7" = "Eo7") +- in chord symbols "+" and "-" were not always translated correctly +- tuple abbreviation (n:: and (n::m were not translated correctly +- dotted barlines translated (: .|) + +Version 41 +- translate (multi-)measure rests: Z, X +- discard misplaced broken symbols (no more exceptions) +- discard misplaced octave suffices (warning, no parse error) +- discard misplaced header fields (warning, no parse error after K:) +- show location of misplaced symbols +- only parse header if it is not empty (-> better error messages) +- accept score/stave-directives and page formatting also in body + +Version 40 +- when reading a file with multiple tunes only translate the first one +- command line option added for scale, page size and margins +- all %% directives are changed into I: fields +- translate scale, page size and margins from ABC directives, but command line overrides + +Version 39 +- accept and discard rests in chords +- accept and discard accidentals before rests +- spacer is treated as a normal note but discarded +- accept chords with only one note +- invisible rests (x) are translated as invisible in xml too. + +Version 38 +- also recognise ma and mi in chord symbols (e.g. Cma7, Cmi7) +- replace tildes in lyrics by spaces +- accept syllabi starting with a tilde +- accept space after V: 1 + +Version 37 +- accidental elements are written whenever an explicit accidentals are present in ABC (for finale, mscore does not need them) +- tuplet notation elements are written to mark begin and end of tuplet (for finale, mscore doet not need them) +- normal-type elements are written when tuplets are irregular +- issue understandable message when metre is not recognized +- take (compound) metre into account when translating tuplet shorthands (as described in ABC 2.1) +- do not add beaming-elements into rest-elements (still break beam when long rest in beamgroup). + +Version 36 +- volta-stop elements were somtimes (recognised at and) put into a left-bar element, which +is not valid MusicXML. These elements are now put into the right-bar of the previous measure. +- accept volta's without barline: "abc [1 def" is read as: "abc |[1 def" +- accept volta's after redundant left barline: "abc |\n|[1 def" is read as "abc |\n[1 def" +- changed document order of repeat and ending elements (MusicXML order requirement) +- xml output to stdout is also encoded in utf-8 (was erroneously done in latin-1) +- prevent finale detecting the string "xml" in the <software>-tag (finale quirk) +- only issue a <supports>-tag when abc code really uses explicit linebreaks + +Version 35 +- recognise and translate (nested) braces and brackets in both %%staves and %%score +- translate more keys (maj, min, mix, dor, phr, lyd, loc and none) +- recognise and skip [I:...] in body +- invisible bar lines translated +- silently skip slur end when there is no corresponding slur begin +- also accept user defined symbols delimited by + +- limit length of syntax error message (in a way compatible with pyparsing internal administration) +- add <identification/encoding/supports> tag, because Finale seems to expect it. + +Version 34 +- removed copy() from 2 parse expressions because it did not appear to work on Linux +- recognize, warn and skip misplaced accidentals and ties +- bug in old style continuation when there was nothing left to continue with. +- limit syntax error output to 80 chars, with error in the middle. + +Version 33 +- added !coda!, !segno!, !fine!, !dacoda!, !dalsegno! etc. +- move coda and segno when just before a barline to next measure +- added several ornaments and articulations. +- recognize (and skip) '<' and '>' position markers for text expressions +- fall back to text expression for unrecognized chord symbols. +- recognize (and skip) alternative chord symbols between brackets +- interpret expressions like "ABC" as text expression and not as misspelled chord symbol. +- beam detection improved (grammar) + +Version 32 +- grammar for both linebreaks ! and $ without ambiguities! +- remove commandline option for linebreak (also I:linebreak not needed anymore) +- accept both + and ! for deco's +- accept (and skip) empty fields +- accept ']' in all header fields +- strip leading and trailing spaces from header fields (T: title -> T:title) +- also translate inline fields before a left barline +- recognise volta after forward repeat +- translate dashes to comma's in volta ([1-3 -> [1,3) +- recognise slurs after broken rhythm symbols i.e. replace (ab>>)c -> (ab)>>c +- skip P: fields +- allow lines with a single measure without barline +- combine ~-syllabi (multiple syllabi under one note) +- skip W: lyrics because no musicXML equivalent +- translate longa and breve + +Version 31 +- bug in treatment of double-repeat when it is at the end of a voice-lyrics block +- added <DOCTYPE> declaration because Finale seems to need it. +- added identification/encoding element so people can see what software made the file + +Version 30 +- voice overlays +- merging voices rewritten: lyrics renumbering, measurewise merging +- linebreak after left-bar is output directly (i.e. not postponed to the next measure) + +Version 29 +- implementation of beaming +- insert line breaks at start of next measure +- keep only one line break per measure when mapping multiple voices +- renumber slurs when clash occurs during voice mapping +- syntax error message is encoded in latin-1 +- bug in recognition of presence of open tie + +Version 28 +- all chord symbols were erroneously recognized as text annotations (wrong syntax priority) +- Recognize (and skip) redundant left side bars +- don't stumble on a double repeat (::) when it occurs at the and of a voice/lyrics block +- better error message when header fields appear after the first K: +- output of non latin-1 strings on stderr uses repr() + +Version 27 +- Initial release