GSoC 2019: Chord Symbol Playback - Week 9
In the final quarter!
This week has been a bit of an interesting week for me. I spent the first half of the week working on the stuff mentioned in last weeks blog before having to scrap all of it (for now at least) in favor of getting this project ready to be merged (so that everyone can use it sooner :)). I spent a couple days looking at TODOs and FIXMEs that I left behind and resolved as much of those as I could before moving on to the more difficult ones.
At that time I spent time running through the code and running through MuseScore to see how the feature stacks up with other parts of the program and making sure that everything looks good. I found a good amount of stuff left to to fully integrate the feature, and started on that, but was halted by the health issues of someone close to me. Still, while I didn't push much code this week, I still got a lot of information that will help me much more quickly finish my final essential tasks.
This week I will hopefully almost fully prepare the essentials of the feature for merging. There are a few important things left to add and that's what I hope to do.
First is the mixer and midi channels. Right now, chord symbols are played on the same channel and instrument as the staff it is attached to. This works, but it would be nice to at least have the chords played on a separate channel so that their volume and pan can be changed and so they can be muted and such. If we gave them their own instrument, that would also allow for chord symbols to be played with a different instrument than the solo instrument on top. In both cases, a separate channel will help with midi export so that a user can filter between generated harmony and the actual written notes when exporting a score.
Next is the quality of life. The user interaction with the feature is still not perfect and I'd like to handle that. For example there's no way to set the default voicing except by using the style button in the inspector. There's also stuff such as a global option for chord symbol playback, play on click, etc.
Finally is special chords. I will not delve too deep into these chords yet, but I'd like to make sure special chords like 6/9 chords and alt chords are properly played back. There are other chords that are recognized by the parser such as Tristan chords, but they will often require looking at more information than currently happens.
I hope to accomplish all of these things and I think that's possible considering that many of the quality of life items should be really quick to add. I'm really excited to bring this project sprinting across the finish line!
See you next week!