:recycle: Updated beat duration to be based on whole notes (i.e. 1 = 4 quarter notes, regardless of meter) instead of being relative to a measure (which broke down for meters such as 5|8)
:warning: Breaking change with 0.3.0-SNAPSHOT
:rocket: Optimized get-lowest-beat (and thus normalize-measures) to find the lowest common beat that aligns with the meter
:art: Added support for floating-point numbers
:microscope: Added a ton of much-needed tests
:bug: Fixed a ton of bugs around measure normalization
:bug: Fixed issues with EBNF grammar for mathematical expressions (needs more testing, though)
:scroll: Minor improvements to documentation
:sparkles: Added cljfmt and enforced linting rules throughout
Future
:recycle: Rename get-lowest-beat to get-base-beat and related bindings/usages throughout
Current name hinders readability, since in practice it's really greatest common beat, but can also be looked at as the lowest common aligned beat (confusing, hence rename to base-beat)
Changes
5|8
)0.3.0-SNAPSHOT
get-lowest-beat
(and thusnormalize-measures
) to find the lowest common beat that aligns with the metercljfmt
and enforced linting rules throughoutFuture
get-lowest-beat
toget-base-beat
and related bindings/usages throughoutbase-beat
)Tickets