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