MusicXML Library


----------------------------------------------------------------------------------------------------
Version 3.22
- fix install settings

----------------------------------------------------------------------------------------------------
Version 3.21
- xml2guido v.3.2: 
	- Support for Pedal, non-wavy trills tags
	- Major improvements to Octava, Xml Directions, Fingerings, Wedge, Slurs, Beaming and other 
	  articulation parsing especially for multi-voice scores
	- Improvements to horizontal positioning of elements following MusicXML TimePositions
	- Support for Partial generation of Guido Scores from MusicXML
	- Updates for latest GuidoLib Release
    Note: iOS Builds now use frameworks as it has (re)become industry standard via XCFramework since 2021.


----------------------------------------------------------------------------------------------------
Version 3.20
- xml2guido v.3.1: 
	- Fix Accolade and barformat inference
	- Removes default staffFormat distance inference as MusicXML is not consistent
	- Adds Font-size and Sound element conditions to infer Tempo Markup
	- Improves staff-Distance parsing
	- Fixed Octava Parsing for Guido
	- Adds support for Staccatissimo and SnapPizzicato
	- Fixed y-pos inference from XML for Fermata and other articulations (Fingering etc.)
	- Adds Guido Fingering Support on Chords
	- Evade Slur generation for multi-voice slurs in XML
	- Improved grouping detection for Guido Beaming (especially nested beams)
	- Fixed ordering of grace notte tag creation
	- Ability tto parse nested Ties with correct sequencing in Guido


----------------------------------------------------------------------------------------------------
Version 3.19
- fix parsing bug with comments after DOCTYPE

----------------------------------------------------------------------------------------------------
Version 3.18
- fix a crash bug with lilypond conversion

----------------------------------------------------------------------------------------------------
Version 3.17
- synchronize npm version and lib version
- asmjs support dropped (only available as wasm library)
- improved version of the guido converter (version 3.0)
- improved version of the lilypond converter (version 0.92)

----------------------------------------------------------------------------------------------------
Version 3.14
- intended to fix release downgrade only
  (version 3.13 was actually 3.12 the correction was a downgrade to 3.12)

----------------------------------------------------------------------------------------------------
Version 3.12
- fix bugs in guido printer
- includes improved xml2guido converter
- update to MusicXML 3.1
- xml2guido version 2.3
- xml2ly 0.9

----------------------------------------------------------------------------------------------------
Version 3.11
- specific MacoS version, compiled using C++11
- xml2guido enhancement: visitors for lyrics, staves, articulation on chord, rehearsal markup  (with enclosure) and XML attributes. We now use Attributes to generate Clef, Key and Meter to avoid GuidoGR multiple clef generation error in presence of multiple voices.

----------------------------------------------------------------------------------------------------
Version 3.10
- transpose operation corrected and improved:
	remove accidental elements
	removes stem information
	generate support elements for stems and accidentals
- new export to IRCAM antescofo format
- xml2guido generates positions by default (version 2.10)

Version 3.00
- update to MusicXML version 3

----------------------------------------------------------------------------------------------------
Version 2.10
- new xmlfactory interface
- correct a bug in xml parser (element content = '=')

Version 2.00
- new version supporting MusicXML version 2, completely redesigned,
  NOT compatible with the previous versions

----------------------------------------------------------------------------------------------------
Version 1.10
- correct a bug in musicxml to guido export: \empty generated for empty measures (multiple voices)
- correct a bug in transposevisitor: repeated keys were generating diatonic shifts
- lexer change to correctly handle " and ' as quotes

Version 1.09
- correct bug in wavy-line parsing  

Version 1.08 
- bug in offsets management (<direction> elements) corrected
- XML2Guido visitor modified to generate positions (default)
  controled via generatePositions (bool state)

Version 1.07 
- Bug in TUnrolledVisitor fixed (no section to add when "repeat" on the first bar)
- crescendo and dimunuendo tags exported to guido
- \clef \key \meter \repeatBegin tags order enforced by the XML2Guido visitor

Version 1.061
- parser memory leak correction

Version 1.06
- parser modified to accept PI (processing instructions)

Version 1.05
- bug in musicxml to guido conversion corrected (introduced by v1.04): crash 
  with single measure scores.

Version 1.04
- bug in musicxml to guido conversion corrected: occured when the last last 
  duration of a voice (or part) was equal to the first duration of the next 
  voice, provided that this duration was not the guido default 1/4 duration. In 
  this case first next voice duration was incorrectly set to the default 1/4 
  duration.

Version 1.03
- transposing diatonic interval forced when null in transpose element and |steps| > 1

Version 1.02
- new TTransposeVisitor for dynamic score transposition
- add a getDuration method in TMidiContextVisitor
- correct TUnrolledVisitor in GetEndingNum and GetRepeatTimes 
- modification of musicxml to guido conversion: 
	incomplete measures are not any more filled with "empty"
	barlines generation corrected (inhibited before a repeat begin)

Version 1.01
- correct TUnrolledVisitor for repeat end ending bar detection (IsRepeat and IsEnding methods)

Version 1.00
- expat parser replaced by custom yacc and lex parser
- missing 1.0 elements support
- implement fine element in TUnrolledVisitor
- crash bug corrected in TMusicXMLVisitor::visite ( SScoreTimewise& elt )
- correct Lyric and print element export, add elision management
- correct parser for elements with type attribute

Version 0.96
- Add an empty constructor in TMidiContextVisitor: when there is no "tpq" value, the value in 
the XML file will be used.  
- MusicXML elements implementation: grouping, features 
- Parsing of rehearsal, pedal, damp, damp-all, eyeglasses, other-direction, print, glissando,
slide, arpeggiate, non-arpeggiate, other-articulation, lyric.
- sound element supports version 1 attributes 
- MusicXML version changed to 1.0 in MusicXML header

Version 0.94
- Guido export: support of daCapo, dalSegno, fine, etc...
- bug corrected in TUnrolledVisitor when a repeat sign occurs at the last measure
- bug corrected in TUnrolledVisitor when computing sections for mapping
- trill-start, trill-step and two-notes-turn supported via conversion objects TrillStart and TrillStep
- MusicXML elements implementation (to be completed): staff-details, measure-style, rehearsal, pedal, 
  damp, damp-all, eyeglasses, other-direction, print, glissando, slide, technical,arpeggiate, 
  non-arpeggiate, other-notation, other-articulation, lyric, figured-bass

Version 0.93
- visitors are not any more smartable
- TRolledVisitor and TUnrolledVisitor exported (for Windows Visual C++)
- TMidiContextVisitor added
- constructor and destructors moved from inline to library - this is intended
  to catch the runtime library problem on windows.
- correct the TMeasure::getNumber method that was incorrectly resturning -1 when "implicit" attribute was set to yes.
Since measure number is required, TMeasure::getNumber now returns the measure number in any case.

Version 0.92
- TRational class: new set(long, long) method.
- breath mark correction: was exported in MusicXML as breath_mark instead breath-mark.
- breathMark guido tag generated (but not handled in guido engine)
- MusicXML header corrected to reflect the supported version 0.8

Version 0.91
- In TPitch class, correct MIDIPitch method : the returned pitch was one octave below the correct value.
- bimap objects provide a size() method
- TSlurs and TTie objects now accept visitors: only the base class TTieSlur was previously implementing accept.
- getDuration method for partwise measures <TPWMeasure> accept a voice selector.
- serial2note class is included in the library

Version 0.90
- Initial public release
