GSoC 2018 - Beginner Mode and Tutorial Creation - Week 6

Posted 3 years ago

This is my weekly update on my Google Summer of Code project. There will be three parts of this blog post: what I did, what had issues, and what is next. Then, I will end it with a question that I need answered for part of the project.

What I did

  • Started a PR

    • I started a PR for my workspace expansion but I am having some trouble passing the travis CI tests. So, I was unable to finish my PR, but once the dust of 2.3 settles, I should be able to get it done.
  • Began planning for the tour

    • As with any new framework, I've spent most of my time planning its structure rather than making obvious progress. We've decided on using just in time teaching (JITT) to assist users as they learn Musescore. This means, the tour of features will happen as the user is about to use those features (e.g. if a user attempts to add an item from the palette with a single click, it may say "To add an element, double click it. Make sure something is selected in the score first!"). As for the current idea for framework, I've tracked down how to catch the user's actions (both mouse presses and shortcuts) and am now figuring out how to best display the tour.

What had issues

  • PR
    • As mentioned above, my PR kept failing the test cases because the tests use preferences.cpp, which use workspace.cpp, which use musescore.cpp which adds a whole host of things. So, I'm stuck on what to do next.

What is next

  • Merging the PR

    • After some code review and passing the tests, I believe my PR will be merged in.
  • Finalizing and building the framework

    • The framework is close to being figured out. I'll make sure to document it to make it obvious and attempt to minimize the developers job when adding tours. Then, I will begin integrating the framework into musescore.

Question for the Week

  • I need some examples of tours to test with. Also, i need to make sure these tests cover a range of functionality from mouse presses to keyboard shortcuts, as well as dialogs and score view. So, what are some ideas for JITT that you think would be useful? (e.g. teaching how to use slurs, walking through the preferences dialog, etc.)


Joshua Bonn
Current Branch: workspace-expansion-4


Regarding the PR, as you probably realize, most developer time is focused on 2.3 right now. So I wouldn't be too surprised if we don't get to focus so much on the issue of how to deal with the test building issue until next week.

Regarding the tour / just in time help:

I would propose first putting together a simple test / demo of the concept where the time any action is performed, a simple dialog appears with the name of the action and an Close button, just so we can get a sense of what this feels like. Maybe also a checkbox to say "don't tell me this again", as these sort of boxes often do.

I've mentioned some of the uses I have thought of, will be interesting to see what other suggestions come up. I'd encourage you to ask this on the forum where more will see - in General Discussion, even (as opposed to Development). Basically, the question is, "what kind of popup help would you have found useful the first time you tried to do something"?

Not your main focus right now, I know, but you describe the situation of alerting a user who single-clicks on a palette icon that they need to double-click instead. Why shouldn't a single click suffice? That is, in fact, how the Sibelius interface is designed. Perhaps food for thought for the 3.0 UX.