Annotations feature for MuseScore 2.1

• Mar 6, 2016 - 17:00

The idea is to have a feature to enable adding of annotations within a score in MuseScore. This is in reference to Marc's post which can be found here :

This is something I have wanted to see in MuseScore as well, and I'd be quite interested to work on it. Apparently, it is a frequently requested feature to have some basis in place for annotations to take effect in MuseScore, following are some links related to the same : (?)

I have been reading up on it and playing around with the experimental facility of Layers in MuseScore 2.
I think it can be helpful for the implementation of Annotations feature, especially to make collaborative composition/transcription easier.
(It would be nice to extend the implementation and have a full-fledged working Layers tool with different marking capabilities)
I've used Xournal quite a few times for highlighting particular passages in music and a little bit of annotation here and there, but I would rather have that done in MuseScore itself, making it dynamically modifiable, are more coherent musically.
As pointed out by Marc, education would be the primary use case, albeit this would also be a very helpful feature for practice/performance.
I propose to work on it, and would be grateful to anyone who has insights on specific requirements about the annotation features and/or possible approaches for the same.

I think a good start would be with a simple UI for basic annotation with primitive elements, like text (Rehearsal mark is already in place and we could perhaps make use of that) , highlighting of a region, and then move on to more specific features, like different shapes, suggested measures within the annotations with an option to accept/reject, and so on.
Any comments related to this are welcome :)


About layers, see
In my opinion, this feature is too complicated or doesn't use the right terms. We have "Layers" and "Tags". A "Layer" is in fact a score variant and we can associate tags with it. Then we can tag some elements (like fingerings) using the contextual menu Layer (!) which in fact list tags... Any element tagged with a tag which is part of a layer will be displayed if the layer is selected in the layer selector at the bottom right of the window. That sounds quite complex no? Do we really need this complexity? Maybe the concept of tags and the ability to select a list of visible tags would be enough and we don't need a way to save list of tags (aka layers) ? Or maybe we need this but we just need a better UI and better names for this feature?

About annotations
* What the difference between a text annotation and a staff text?
* Highlighting a region: For me, this is a good candidate to think through. We have the concept of horizontal spanner that could be reused for this. We don't really have anything for vertical (except maybe brackets?). But when I see ... I really wonder what is the expected UI for such a feature...

In reply to by [DELETED] 5

We definitely need a better UI for layers, according to me. It is working fine, but it is a bit complicated to use as of now, like you said, maybe just the list of tags would suffice and we could call that layer, maybe that can be handled as part of the implementation of annotations. About the difference b/w text annotation and staff texts, maybe we would not want the text annotations to be attached to the tick position, for eg. transposing a note would move the annotated text too, ideally. About highlighting, I wonder the same too, maybe we can try something simple, not as fancy as xournal, to begin with.

In reply to by [DELETED] 5

I agree the existing layers functionality is overly complicated and could probably be streamlined and still be effective.

Staff text versus text annotation: in my view, a text annotation would be similar but have it's own text style and be automatically hidden along with other annotations via a "View/Hide Annotations" menu item. Otherwise similar. I could imagine "Annotation" being a new class that either derives from both Text and something else graphical if we're OK with multiple inheritance, or else contains a Text member (that might be empty).

I don't see the need to allow for highlighting anything quite as fancy as what is shown above. I would expect the "highlight range" type of annotation to just draw a rectangle simply have a parameter or two to control vertical height, probably with defaults set in Style / Genera; but with overrides via the Inspector. I could also imagine wanting a "highlight element" type of annotation that would probably just color the bbox of the selected element (eg, to put yellow highlighting behind a coda sign). Again, perhaps with stylr / Inspector settings to control the actual size. For text elements, of course, you can already set background color, but then that's permanent, and very likely you don't want this to print - you might just want it for reading on-screen. BTW, a simple automatic "highlight all repeats" feature would be pretty cool to have in the mobile app, and it could leverage the same system. Check a box and all repeat barlines and repeat texts would get a "highlight element" annotation.

I'd also expect a Shapes type of annotation, where you could for example circle a given note. Ideally it would be implemented in such a way that the annotation transposed along with the note. Of course, I could also imagine a Shapes palette being useful for creating custom score elements that are *not* annotations but "real", so that is definitely worth thinking through.

In reply to by Marc Sabatella

Well laid out comment, I think this pretty much answers quite a few questions about the design. Multiple inheritance from a text and a graphical class might be fine, ( I don't see function overriding happening, so that shouldn't be a problem, but perhaps memory layout might not be as hassle-free with M.I. ) but we can look into this later too I guess. I agree with having the "highlight all repeats" feature, would be cool to have it, and not very tricky to implement either.
Regarding the shapes tool, do you reckon having a pencil drawing option as in the comment I posted below (the one in Sibelius) would be a good idea? It's definitely trickier, but would make it more versatile in scope. Also, could you give an example of the custom score elements you're talking about?

Hi, I'm relatively new with MuseScore (been using Sibelius for some time), and I use it for notating my own compositions. Something like this would be very helpful for me, since I can use my sheet as a rough draft and make changes as and when necessary (maybe whilst having the chance to have multiple revisions of a score?) @shredpub : About specific requirements, I would love to have something which allows me to circle around some passages of music which need some work etc. Apart from that, something like a post-it as mentioned by Tommotide would also be a nice thing to have, to mark some comments about possible improvements/rendering style/etc.

In reply to by orkaa

Hi orkaa,
Thanks for your comment. I will look into the option of having multiple revisions of the score. @Marc: Any insight on this? (Maybe we can use layers?)
Also, I've not used Sibelius much but doing a quick search, I found this :

Do you mean something like this? It looks quite fancy, but I'm sure we can implement a basic shape tool which achieves something similar. About the post-it, I'm pretty sure that is well within the scope of the annotation feature as well, and we can provide a text annotation option for the same.

In reply to by shredpub

Multiple revisions of the score itself shouldn't be necessary if layers do what they are intended to. One score can suit several different purposes, that's kind of the point. Unless one means literally different score content as well - like a rough draft versus a finished score. That's way outside the scope of annotations, though.

In reply to by Marc Sabatella

I think orkaa meant the latter case ("since I can use my sheet as a rough draft and make changes as and when necessary"), which is indeed outside the scope of annotations. Would not be a bad idea, though, to be able to look at slightly different versions of a score and compare them etc. But I agree that one score can suit different purposes with the help of layers, as far as annotations are concerned.

Well, here's what I'm envisioning in my support for annotations. Is any of this outside of what you were planning?

1. Embellishments, such as turns, trills, and combinations thereof, can be quite complicated or non-universal, and can prove to be a pain when trying to explain to a performer what you want done. An Annotation will show a popup staff (like a cutaway) to indicate how the embellishment should be played. This staff can be a graphic which is inserted into the Annotation box. Ideally a performer can hover the mouse over the note in question, and temporarily see the graphic showing how the embellishment should be played. This would help keep the score clean, esp. if there were a lot of these embellishments that needed clarification.
2. While many times, I prefer to let a string player determine how he wants the fingering to be done thru a certain cadence, the composer may already know the best way and want to elucidate how the fingering and bowing should be done in a measure or two. An Annotation can be shown, either as a toggled layer, hovering the mouse, or temporary popup during playback, that clarifies the play instructions. Of course, I would have to prepare the graphic myself, and then insert it into the Annotation window.
3. During playback, playing style can be suggested by popup Annotations for the performer. When the play cursor scrolls thru the measure, a text note might show that says "play choppily but serenely" or something similar. This would help the performer understand how to approach the passage, but help the composer/conductor keep the score clean. If the score is converted to PDF or printed out, an option will allow the Annotation (maybe each individually?) to be printed at its place.

Annotations should always be editable (unless locked) when visible, and be easily deletable or addable.

In reply to by harbinger

This is a good illustration of the difference in requirements between an annotation feature geared for *performance* versus one geared for *education*. Ideally we'll handle both, but pretty much nothing on this list would be high on a list of requirements for education - they are all very clearly on the "performance" side of things. The good news is, making it possible to add a graphic as an annotation is the basic requirement here, and that's certainl something that could benefit both sides, so even if the automatic "pop up during playback" aspects don't get implemented right away, we'd have the framework in place for it.

In reply to by Marc Sabatella

The idea as mentioned by harbinger is also an alluring one, being a composer myself, I would like to have something that pops up during playback and gives certain information to the performer. However, I agree with Marc, the primary use case for the feature is education (as also mentioned by shredpub), which does make sense, and something like this (maybe possibility of multiple revisions too?) could maybe be an extension to the initial implementation. I'd be quite happy if we have at least a basic tool to add certain amount of annotations to the score.

In reply to by Marc Sabatella

A third type of annotation that would be useful for collaborative score editing. I'm thinking along the line of "comments" that can be added to Google Drive and MS Office documents. It might be good to make a distinction between "comments" vs "annotations" within the UI and documentation, though the underlying implementation would basically be the same, except comments would use a different style and could have an "author" attribute.

Only *performance* annotations should be visible in the printed score.

Hello, I am a user (not a developer) but I can let you know that this is exactly what I am looking for when I try to make notes on the score. For that matter, a text box feature that is not attached to any note would also be very helpful.

I currently export that to a pdf file and use the pdf editor to add notes. However, this means I have to redo it every time I update the score.

Hope this helps.

In reply to by bone

FWIW< there already is a text box featureew - it's on the frames & measures palette. Although depending on what the purpose of your text is, attaching it to a note *usually* makes more sense, as then it is guaranteed to remain in the correct place if the score is later formatted.

Thanks. I am aware of that but I have to add a lot of notes throughout the piece and a frame is not really suitable. Also, a highlight function with different color options is required. That is why I resorted to the pdf option.

In reply to by shredpub

Thanks a lot, this is good news. Actually just the feature of highlighting alone is already going to be of great help.

I see in some paper scores that there is a top bracket (something that looks like a slur) on top of certain fingering (e.g., on top of "45"). I wonder if it is possible to add this symbol to Musescore also.

One last thing - the current version lost the ability to hide a rest (make it invisible). I wonder if it will be back in future versions.

This is a great tool indeed, thanks for everyone's contribution.

Thanks for your proposal.

I think this will be a welcome addition to MuseScore.

Maybe an implementation of functions similar to Adobe Acrobat can be implemented: a panel with buttons to annotate (see screenshot for Acrobat X).

To be specific, one e can think of functions like:

  1. Add a sticky note (text balloon inside score)
  2. Highlight notes (drawing a box around selection) and ability to choose a highlight color.
  3. Ability to add freehand scribbles using a "marker" pen with ability to choose a marker color.
  4. Add file attachment
  5. Add text at cursor
  6. Add text at note position (similar to Crtl-T)
  7. Add comment inside score, next comment, previous comment; with a comments overview in panel.



Attachment Size
Acrobat X annotations.PNG 12.93 KB

In reply to by davepmiddleton

Thanks for your comment. I can see how it would be a welcome addition, it is something I'd like to see myself as well (for practice purposes). I reckon it would be nice to have all the things you mentioned, but what we are shooting for (at least initially) is a basic implementation (mainly for the educational use case) which enables adding text annotations, drawing of some primitive shapes and highlighting notes/phrases. The other things (for eg: points 3, 4, 7) in your comment will be looked at *after* we have a basic native support down. There are some other requests as well, like popup the annotations during playback etc., which also fall in the same category. Hopefully we'll have the framework for all this in place by the end of the summer :) Stay tuned!

Do you still have an unanswered question? Please log in first to post your question.