TimeLineAnnotator / desktop

A GUI for graphical analysis and annotation of video and audio files.
https://tilia-app.com
Creative Commons Attribution Share Alike 4.0 International
12 stars 3 forks source link

A timeline for displaying music scores #219

Open FelipeDefensor opened 2 hours ago

FelipeDefensor commented 2 hours ago

It is time to address the elephant in the room, which is displaying musical notation.

Conventional scores and TiLiA use space differently in a fundamental way: horizontal space is always to-scale in relation to time in TiLiA, while in conventional scores that relation is frequently relaxed in order to avoid overlaps or packing symbols too close together. There are no similar constraints in the use of vertical space, on the other hand.

With that in mind, I think that a good solution is to go with a mix between a piano roll and a conventional score, using a to-scale horizontal axis and a staff-based vertical axis. If I didn't believe a picture speaks a thousand words, I wouldn't have made TiLiA, so here's what I mean. This:

example-score

Would be displayed in the score timeline as:

Q8q03TO8hD1Xnaau

Ideally, the data structures will be set up in a way that will also allow for a piano roll and conventional UIs to be easily implemented on top of them, later.

There are some things to be sorted out if we choose to go with this representations, for instance:

We definitely want to be able to import from conventional formats like MusicXML, which will require writing some kind of parser to our internal format. I have not yet researched about it, but I imagine there is already some available Python tooling. In the worst case, we can wrangle the format ourselves.

Another option is to go straight into conventional notation using tools like Verovio. That is something I am not sure I am ready to tackle, due to the issues that probably will arise with the differences in dealing with horizontal space.

FelipeDefensor commented 2 hours ago

This was originally a feature that I intended to work on sometime in 2025, but that I decided to implement right now due to the needs of my PhD, of the Sinergia project and of the Anlysis-a-Thon taking place early 2025.

FelipeDefensor commented 2 hours ago

@azfoo I don't know if you have given this feature some thought already. Please let me know you opinion. Also, @MarkGotham, you probably will have something to say about this.

FelipeDefensor commented 1 hour ago

This issue #218 mentions some features that we want to have in place before releasing the score timeline.