GSoC 2017 - Timeline Navigation - Weekly Report #1
Hey everyone!
This is my first weekly report for my GSoC project. This will include all the work I did preceding the "official" coding time. It includes my key accomplishments up to this point, the tasks that have given me trouble, and my plan for the next week.
Key accomplishments
-Created the base of the timeline
This includes creating the tool that appears at the bottom of the screen, linking the tool to the view menu, and allowing it to be undocked (you can pull it off the window and place it where ever you want it). I also hooked up the timeline to the shortcut "F12"--subject to change.
-Worked on resizing events
When I first created the timeline widget, it was a tiny sliver at the bottom of the screen. Now, it retains a normal, readable size. When the timeline is undocked, it will not increase in size past the length of the timeline, leaving a little bit of space so it looks nice. There is a bug currently in the resizing which I will mention in the next section.
-Visuals of the timeline
The current status of the timeline is a simple grid with coloring for measures with notes in it. The length is the number of measures and the height is the number of visible staves (hidden staves are not included in the timeline).
-Interaction in the timeline
The interaction with the timeline as of now is clicking a box and it moving to the measure that correlates with that box. It also fixes the score view onto the measure selected. Changing between scores also updates the timeline to the new score.
-Interaction with the score
The last thing I worked on was interaction between the score and the timeline. Now, when you select a note(s), measure(s), or rest(s) in the score, it displays in the timeline that it has been selected. It also moves the view of the timeline to that specific box in the grid.
Key tasks that stalled
-Git and Qt issues
I won't dwell on this much, but multiple issues arose while trying to use the software to begin my project. These have all been addressed and making changes is quite simple now.
-Resizing bug
Currently, when resizing the timeline when undocked causes the scrollbar to mess up. I've tried figuring it out, but I think it will just take more time.
Tasks in the upcoming week
-Labels for the grid (finally!)
Reading this timeline is quite difficult when I don't know which instrument is which and which measure I'm on. So, this week I will be adding instrument names and measure numbers.
-Tempo, key signature, and time signature
I will also add rows for these three score features. This will further help navigation on the timeline.
-Adjusting to changes in the score
Currently, any changes made to the score are not reflected in the timeline. After this week, that will no longer be the case.
-Selection boxes
I will add a box around the boxes selected in the timeline. These will be blue with a slight tint over the boxes that are selected.
If I have any more time, I will start work on adding rehearsal numbers or handling the scrollbar how I explained in my previous blog post.
Below, I have a picture of the current timeline view.
Any comments about the current status is appreciated. Once I have moved on to the GUI part of this project, I will ask for more opinions.
Thanks for reading!
Joshua Bonn
GitHub: https://github.com/JoshuaBonn1
(Current branch is https://github.com/JoshuaBonn1/MuseScore/tree/4-timeline-class )
IRC nick: JoshuaBonn1
Comments
nice start ! In which branch do you work? I see several 'timeline' ones
https://github.com/JoshuaBonn1/MuseScore/tree/1-timeline-class
https://github.com/JoshuaBonn1/MuseScore/tree/2-timeline-class
but both have commits a bit all over the place. Make sure to always have your commits "on top" by using rebase. It will make your job easier.
In reply to nice start ! In which branch by [DELETED] 5
My apologies! The correct one is https://github.com/JoshuaBonn1/MuseScore/tree/4-timeline-class
In reply to nice start ! In which branch by [DELETED] 5
lasconic, he was running into some git confusion, so I had told him to be safe to just start a new branch and increment the number before he attempted to type in commands which might screw things up. But his 4-timeline-class is correclty rebased, and I've tried out his branch.