ChangeLog¶
2022-03-14: quickly-0.7.0
- fix issue #3, allow adding octave to notes in chordmode, but not to the inversion
- fix issue #4, relative to absolute yields incorrect results
- removed the quickly.registry module, included languages are now added to parce’s global registry
- correctly handle skip with music instead of a single duration (Lily>=2.23.6)
- rhythm.transform() now also handles duration in commands like tempo, tuplet, after and partial
- documentation improvements
2022-02-12: quickly-0.6.0
- requires parce-0.31.0
- small registry module changes to adapt to parce
2022-01-23: quickly-0.5.0
- requires parce-0.30.0
- added time module for time computations
- added key module for key signature and tonic computations
- added rhythm module to manipulate durations in music or a part thereof
- added dom.scope module to find nodes from included files
- modified PitchProcessor:
- note names now carry a default octave
- pitch() method now returns a Pitch, old pitch() renamed to process()
- introduced lily.ChordBody and FigureBody, to be able to add Duration at Chord and Figure directly
- added lily.Durable as base type for any stuff that can have a Duration
- notes as argument to relative, key or transpose are now Pitch, not Note
- handle single durations in lyricmode, just like Unpitched
- improvements to duration module, add duration.Transform
- added transform() method to all Music nodes, to calculate durations in child nodes
- added properties() method to Music node type, to store information during processing of descendant music
- added datatypes module for small datatype helper classes, featuring Properties
- documentation improvements
2021-12-31: quickly-0.4.0
- added relative module, with abs2rel and rel2abs functions
- possible to direct generators in Node and Range to not descend in a node
- added node.Range class, to denote a range within a Node tree
- added end parameter to Element.find_descendant(s)
- added Element.find_descendant_right() and -left()
- added dom.edit module to edit a parce document via the DOM node tree
- added pitch.PitchProcessor.find_language and follow_language()
- some methods/functions renamed and API cleanups
- documentation improvements
2021-12-21: quickly-0.3.0
- requires parce-0.28.0
- DOM elegantly handles untransformed parce stuff such as CSS/JS in Html
- Note and positioned Rest now have attrs for octave, accidental and oct_check
- pitch: added Pitch and PitchProcessor to read/write pitch names in all languages, with style preferences for writing pitch names
- added lily.Spanner.find_parallel() to find the other end of a spanner
- added transpose module, transpose music in a node or (part of) parce.Document
2021-12-09: quickly-0.2.0
- requires parce-0.27.0
- added registry module to find and guess languages (like parce)
- added LaTeX language and transform (for lilypond-book)
- added element constructor helper for dom.htm module
- added Element.py_dump() to create tree structures in Python code
- simplified dom.read module and API, now that parce’s Transform finding algorithm is configurable
- small bugfixes, improvements and documentation updates
2021-11-25: quickly-0.1.0
- requires parce-0.26.0
- added html language and transform (for lilypond-book)
- add dom.htm element types (for lilypond-book HTML documents)
- added indent module and support for creating properly indented output
- documentation improvements
2021-11-11: quickly-0.0.9
- requires parce-0.25.0
- Add support for some new LilyPond-2.23 commands
- fixed case where a symbol was interpreted as a pitch eg: tweak color red do
- fixed some cases where incorrect input was not handled neatly
- documentation improvements
2021-08-08: quickly-0.0.8
- requires parce-0.24.0
- fixed instance dict in Element nodes, added empty __slots__to mixins
- added Node.filter() and Node.instances_of()
- added a logo (two eighth rests, looking like “ly”)
- new website at https://quick-ly.info/
- small optimizations and documentation improvements
2021-03-08: quickly-0.0.7
- requires parce-0.23.0
- added quickly.numbering module
- added dom.read module to construct elements/documents from text
- removed some temp methods from dom.util
- Element.copy_with_origin now works properly everywhere
- Node.equals() now works for TextElement, by implementing body_equals()
- improvements to TextElement, optional head value checking
- renamed lily.PropToggle to Toggle
- fixed escape warnings in source files
- added duration.shift_duration()
- moved scm.Int to scm.Number in some forgotten places
2021-02-16: quickly-0.0.6
- required parce version 0.22.0
- lily.Header, lily.Paper and lily.Layout now have easy to use properties to set variables like title, composer, etc.
- lily.Document now has version attribute to read/set LilyPond version
- added markup construction helper in quickly.dom.markup
- Scheme transform handles all Scheme number features, e.g. #xb/f (a fraction in hex) and even complex numbers
2021-02-11: quickly-0.0.5
- Milestone: quickly correctly parses my Mouvement piece! https://github.com/wbsoft/lilymusic/blob/master/berendsen/mouvement.ly
- fixed rest before duration
- fixed dot missing in scheme pair
- add space after markup commands
- fixed dom.element.build_tree, it lost a node after two repeat nodes
- parce removed identifier context; we only create Identifier with Assignment
- smartly support tag and tweak without direction prepended
- fixed documentation build errors.
2021-02-07: quickly-0.0.4
- still pre-alpha but work in progress
- quickly.dom.lily now has much more elements
- correctly parse lists, property paths etc
- added chordmode and chord modifiers, figuremode
- quickly.lang.lilypond now transforms almost a full document
- commands are combined with their arguments, based on signatures
- work started on documentation with a quickly.dom explanation
2021-01-31: quickly-0.0.3
- still pre-alpha
- much more robust already
- dom.element now has the four basic Element node types
- dom.element can be constructed manually or via LilyPondTransform
- writing back to document works
- scheme expressions are fully read/built
- markup expressions are fully read/built
- complex articulations, tweak, tremolo etc. work well
- toplevel and in block assignment is wrapped in Assignment node
- lyricmode and drummode work
- todo: music functions
- some test files were added. todo: more test files
- module documentation in good shape. todo: user documentation