GSoC 2024 - Dynamics Popup
Hey everyone,
My name is Aniket and I’m thrilled to share that I will be working on the "Dynamics Popup" project as part of Google Summer of Code with MuseScore this summer. This marks my first time contributing to a large open-source project like MuseScore and developing a fully functional feature. Also, this is my first time writing a blog post, so I'm excited to share my journey with all of you :)
In this blog post, I'll give a quick overview of the project, including the goals and what I aim to achieve with the initial version and optional extensions. I'll also be showing the designs that I will be implementing shared by the design team in the last week’s meeting.
About the project
The ”Dynamics Popup” project aims to enhance the functionality of MuseScore by introducing a new popup feature that streamlines the process of adding dynamic markings and hairpins within scores. This project will significantly benefit MuseScore users with a more intuitive and efficient way to work with dynamics and hairpins, reducing the time and effort required for score editing thus resulting in an improved user experience.
The popup
The Dynamics Popup will appear whenever the user selects an existing dynamic or hairpin in the score:
The popup will show the most commonly used dynamics first, but arrow buttons will enable the user to cycle through additional pages of dynamics and hairpins.
When the user selects a dynamic in the popup, it replaces the one in the score.
Drag handles
Additionally, when the user selects a dynamic in the score, handles will appear on either side of the dynamic. Users will be able to click on these handles and drag to create a crescendo hairpin as shown below.
While dragging, users can press the Shift key to reverse the hairpin direction, turning it into a diminuendo.
When the mouse is released, the hairpin is drawn, and the user can select another dynamic from the popup to add immediately after it.
Shortcut to add dynamics
Finally, this project will implement a new ‘Add dynamic’ shortcut key, which by default will be assigned to Ctrl+D on Windows and Linux, or Cmd+D on macOS. When the user selects a note and presses this shortcut, the Dynamics popup will appear, enabling the user to choose a dynamic to go below the note.
Optional Extension
Once the initial features are complete and if time permits, I will try to add a feature that would enable users to type dynamic symbols directly into a dynamic element as shown below.
Project Timeline
To give a better idea of my plan, here’s a rough outline of the project timeline and the steps I'll be taking:
- Implementing the basic structure of the popup.
- Adding arrow buttons to navigate through additional pages of the popup. Implementing the feature to replace existing dynamics with the selected one from the popup.
- Adding drag handles to dynamics to draw hairpins. Implementing the Shift key functionality.
- Implementing the ‘Add dynamic’ shortcut.
- Optional Extension - Adding the feature to directly type in dynamics.
I will start off by creating the basic structure of the popup, ensuring it can appear whenever a dynamic is selected in the score and is positioned correctly.
Thank you for reading my blog post, and I look forward to sharing more updates as the project progresses! I’m excited to work with my mentors Casper, Peter, and the whole team at MuseScore, alongside the wider community.
You can keep track of progress over the summer via my:
- Blog posts - https://musescore.org/en/user/5201410/blog
- Fork on GitHub - https://github.com/re1san/MuseScore
- Pull requests to MuseScore’s repository - https://github.com/musescore/MuseScore/pulls/re1san
Comments
Stupendo, bravissimo!
Cool, thanks! I’ve always found it a bit annoying having to open the dynamics palette every time I want to add one.