alda-lang / alda

A music programming language for musicians. :notes:
https://alda.io
Eclipse Public License 2.0
5.59k stars 286 forks source link

MusicXML Importer Comprehensive Refactor and Added Handling for Various Tags #355

Closed Scowluga closed 3 years ago

Scowluga commented 3 years ago

This PR refactors the entire importer as set up in the first PR. The diff is virtually meaningless due to so many refactors. But the majority of the code is new anyways. All changes are open to discussion and improvement. The number of line changes looks scary, but most of it is just exported MusicXML files from MuseScore for testing.

Overall Importer Changes

File Organization

Importer State

Nested Index

Post Processing

New Handled Tags

Barlines

Chords

Ties

Voices

Slurs

Dotted notes

Parts

Scowluga commented 3 years ago

Great. There's definitely a lot of rough edges. Edge cases, logging, testing. But I think with this PR most of the functionality itself will be "working". Then we can iron out details. One step at a time!

Will merge and aim to make future PRs smaller.