GSoC 2018 - Beginner Mode and Tutorial Creation - Project Description
Hello! My name is Joshua Bonn and I am starting work on my project as a part of Google Summer of Code 2018. My project is called Beginner Mode and Tutorial Creation. The purpose of this post is to start communication with the community on this project as well as receive feedback and ideas for the project. Please read the note below the bio for information about project changes.
First, let me tell you a bit about myself.
I am going into my 5th year at the University of Idaho studying in Computer Science. My current focus at school is Artificial Intelligence and Evolutionary Computation. At the end of my sophomore year, I was also a Music Theory major until time conflicts arose. I have played piano since around 3rd grade and cello since 7th grade after switching from viola. This will be my second Google Summer of Code.
The project listed below originated from my initial proposal. After talking with my mentor, we focused the scope of the project. I would appreciate comments on anything you find interesting in either scope, keeping in mind that the new scope is more likely to happen. The new scope is listed below the "Tutorial Mode" section.
What is beginner mode and tutorial mode in MuseScore?
The beginner mode and tutorial creation project will assist newcomers to Musescore. The beginner mode will present a simpler UI and some simplified options to avoid information overload. It will also integrate the handbook for on screen help. The tutorial creation will entail many abilities to lock measures, disable UI options, and introduce a “teaching mode” to give tutorials to newcomers.
Why is this helpful?
By adding toolbar customization, a beginner can load a simplified preset. Also, more advanced users can customize the toolbar for a more personal experience. Preference presets will assist both newcomers with a beginner mode as well as more advanced users desiring to switch between sets of preferences (set file locations for different projects, visual changes, etc.). The integration of the handbook will allow for offline viewing as well as facilitate on screen help. On Screen help will help newcomers by providing quick feedback to facilitate learning. It will also help intermediate to advanced users learn or refresh on topics quickly.
The tutorial creation will add the ability to lock score components and disable menu options assisting in reducing the amount of options a learner has to process. Also, the creation of “tutorial files” will add the palette desired as well as the preferences desired. These two features may be useful in error reporting; by simply exporting a score as a tutorial score, the personal presets will be attached and loaded in without extra work by the user. By following these tutorials, the learner will be able to pick up MuseScore functionality faster and progress to personal development without feeling overwhelmed. Also, the creation of tutorials will allow for a suite of files specifically for learning MuseScore.
The features will be broken into two parts: beginner mode features and tutorial mode features. Some of these items overlap in functionality and will be mentioned within the features. If you are interested in the new scope, look below the "Tutorial Mode" section.
This would enable the ability to add or remove items from toolbars. Also--in combination with the preference presets--a beginner preset would be created to hide lesser used features. More advanced users may heavily customize the toolbars, creating a customized experience; the preference presets allow for quick reverting to the original toolbars or other custom toolbars. The method of editing would be similar to adding and removing items from the palette.
In the preference's menu, an option (similar to custom palettes) would allow users to create a new preferences preset, change any of the values, and save the preset. For beginner mode, it can be used to simplify the UI by enlarging icons and other customization. For advanced users, they could easily switch between different projects with a simple swap of the preset.
On Screen Help:
By integrating the MuseScore handbook back into the application, onscreen will help beginner users by: informing them of the current edit mode, linking the handbook accessed by the existing shortcut "F1" into an onscreen window (the F1 shortcut exists but not as help within the application), and allowing offline use of the handbook. The onscreen help would be a small, minimizable, movable window that can be closed. Onscreen help can be turned off by closing the window or turning it off in preferences.
The component locking will apply to any element in a score. By fixating the item on the score, it will be immovable while in tutorial mode. Measures can also be locked to avoid editing. This will allow for learners to attempt to copy a measure without accidentally changing the original measure.
Toolbar Item Disabling:
Similar to toolbar customization, different items in the toolbar can be disabled for tutorial mode. The restricted items will simplify the learning while not dynamically changing the user interface.
Custom Palette and Preferences Saving to Score:
This will add the custom palettes and preferences to the score save file, specifically a "tutorial mode" file. Upon loading this file, the user will be prompted if they want to load it in tutorial mode or in standard edit. If tutorial mode is selected, the custom palette and preferences will be automatically loaded in.
New Scope Items:
First, the on screen help idea is being carried over from the previous scope.
The user can set actions (macro or list style selection) that can be performed on the score. This is saved to the file and can be selected to upon file load. The user can revert back to the full selection of actions by deselecting the option in preferences. An example of a restrict action set is a "read-only" mode by restricting any action that changes the score and only allows playback actions.
The macro style action setting would go as follows: the user presses a "record" button, any action used is recorded, the user presses a "stop record" button, the actions are saved and any unused actions are disabled.
The list style action setting would give the user a list of all actions (similar to the shortcut setting). The user can manually select which actions may be enabled or disabled.
Please take a moment to comment on the project and the new scope!
*NOTE: I have finals until the 12th so I might be a bit slow at responding. *