GSoC 2019: Chord Symbol Playback - Week 11

Posted 3 months ago

Into the final weeks!

So far

This last week was a lot of bug fixing. The first part, though, was spent finishing up some of the quality of life stuff that I started on last week. Here is what it looks like:

Video Here!

You can first see that there is a preference under "Note Input" that says "Play harmony while editing". It's on by default and allows users to have chords played back while editing chord symbols. What this means is when a user presses "Space" or "Tab" to go to the next beat or measure, the chord will play back if possible. Additionally, users can complete a chord edit by pressing "Enter" which also causes chords to play back (when the preference is enabled). Otherwise, chords are played back when clicked on.

After working on those quality of life changes, I moved full speed into bug fixing and spent most of the week on that. There were a number of issues with triplets and parts that took a lot of effort and time to fix, but luckily those are done with now :) I also spent time resolving a lot of the smaller issues and TODOs and working on tests to help for future development.

This Week

This week will be a continuation of last week with a focus on quality of life and final cleanups. My hope is to have the code just about ready to merge by the end of the week. I'd like to work on some optimizations for some of my solutions that were a bit hacky or didn't cover all cases as well as add some additional options to help with the usability of the feature. Hopefully, I can crunch through the bugs I run into in a fair time frame and make good progress this week!

See you next time!


Comments

Again, great job! This feature will be already quite mature when being merged to master. Can't wait to test it in the nightlies. :-)

One question: it might be necessary to mute chord playback on one staff while enabling it on the other staff. How is this best achieved? Mute the channel in the mixer? A checkbox in staff properties? I hope it's not by deselecting each chord symbol individually, even if we can bulk process it by "select all similar". Each newly added chord would have to be disabled that way.