shredpub's blog

GSoC weekly update : August 15th to August 21st

3 years ago • 6 comments

Hello,
This was my final week working on the Annotation support project as part of GSoC 2016.
I'm happy to announce that we have a tool for Annotations in place!
This is what a score with multiple annotations looks like :
[inline:inspector.png=test]

As you can see, you can add text annotations and/or range annotations. For the range annotation, you can set the properties like top, bottom, left, right margins, color and border width from the inspector as shown in the

Read more

GSoC weekly update : August 8th to August 14th

3 years ago • 2 comments

Hello everyone,
This week I worked on extending the support for range annotations. The previous implementation did not include the support for highlighting a range selection which includes multiple staves. This week I primarily worked on implementing the same.

There were a few challenges I faced during the implementation. One of them being - calculating the exact co-ordinates of the staves which are in consideration, in order to draw the highlighting correctly. This was tricky because I was trying to

Read more

GSoC weekly update : August 1st to August 7th

3 years ago • 0 comments

Hello,
As mentioned in the last post, this week I worked on fixing some issues with the existing implementation for range annotations. The initial implementation didn't work for empty measures, but only for a range consisting of a start chordrest and an end chordrest. However, we figured out that using start segment and end segment of the selection instead of the start chordrest and end chordrest would be a better way, and would take care of all the cases of

Read more

GSoC weekly update : July 25th to July 31st

3 years ago • 0 comments

Hello,
As mentioned in the last post, last week I worked on and completed the implementation for the layout and draw functionality of the range annotation as a spanner. You can find the code for the same here :
https://github.com/musescore/MuseScore/pull/2762
For the layout I used two different functions - layoutSystem and layoutSegment. LayoutSystem gets called in Score::collectSystem when it loops over all the spanner elements and calls layout for them, which returns a spanner segment after creation and layout. LayoutSegment

Read more

GSoC weekly update

3 years ago • 0 comments

Hello,
This week I began the coding for the implementation of range annotation as a spanner. However, I caught a viral fever earlier this week, which stalled the work for a few days. I am feeling better now, and can resume working on the same.
I created a new branch for the implementation. This can be found here :
https://github.com/shredpub/MuseScore/tree/RangeAnnotation2

I looked into the flow of spanner creation, spanner segment creation, and layout in more detail and still have a

Read more

GSoC : Week 8

3 years ago • 0 comments

Hello,
Last week I tried to understand the implementation of spanners more clearly. I specifically concentrated on hairpin.cpp and hairpin.h at first, by playing around with the hairpin, and seeing how the data structures are reflected.
I also spent time on seeing how the parent classes are implemented (TextLineSegment and SLine, in that order of hierarchy)
I also looked at slur.cpp and slur.h, which inherit from the base class SlurTie . I looked at the implementation of spanners wrt slur.

Read more

GSoC : Week 7

3 years ago • 0 comments

Hello,
This week I was working on implementing read and write for the current implementation of Range Annotation.
The code for the same can be found in this branch : https://github.com/shredpub/MuseScore/blob/RangeAnnotationtmp
It is writing successfully, but it cannot find the measure during read. Anyhow, it makes more sense to take care of it after we port the implementation to be spanner based, since we would want to be able to select the range annotation and set various properties. The range

Read more

GSoC : Week 6

3 years ago • 0 comments

Hello,
As mentioned in the last post, this week I worked on implementing the range annotation box, and also added an option to highlight the range annotation. I also looked around at Spanners, and got a feel of how they are being implemented. For the range annotation, I started with implementing a hard coded rectangle around some measures (different from selection, because this persists, whereas selection doesn't). I then extended the implementation to support multiple range annotations, which key off

Read more

GSoC : Week 5

3 years ago • 0 comments

Hello,
As mentioned in the last post, I've finished the implementation for the text annotation and begun with the other types this week. Inheriting from Element class was leading to the Text annotation not ending up being drawn, hence we decided to try another approach, with the TextAnnotation class deriving from Text. This solved the problem of the annotation not being drawn. You can find the implementation in this PR : http://github.com/musescore/MuseScore/pull/2687 :

I also enabled layer support for the

Read more

GSoC : Week 4

3 years ago • 1 comment

Hello,
This week I made a PR with the implementation of the basic text annotation. Here is the link :
https://github.com/musescore/MuseScore/pull/2666
There are a few commits within the PR which correspond to different "versions" of the implementation.
The first version creates a staff text and just uses a different style for an annotation to distinguish it from a staff text. However, the goal was to have a new element for annotation.
This is done in the latest commit.
There were

Read more