GSoC 2019: Chord Symbol Playback - Week 5
First evaluations done!
Last week I ventured into some unfamiliar territory. I spent a lot of time reading code and documentation again to understand how to make UIs for MuseScore with Qt as well as to understand how to use the testing system. Qt is still pretty beastly to me, but I think I have a decent grasp on how to make something that is at least passably pretty to look at. I have set up the ground works for a new custom dialog and done some work to integrate it into what I have made so far. Here's a look at the dialog:
For testing, I've built up a bit of code to test the realization of symbols into notes. Also since we have reached a pretty major checkpoint (basic features completed :)), I have done some more thorough testing and revisited the code I've written so far to fix or improve little things that I previously left behind to fix.
This week is another step forward to polish the feature and focus on the details. I'm hoping to first write a number of tests to make sure that the code is working as expected. These tests will include new algorithms and options. The current algorithm works okay for many common chord symbols, but it can get really messy with more and more alterations and extensions. When a musician sees a 13th chord on a lead sheet, they're probably more likely to play it voiced like Root-7th-3rd-13th than they are to play Root-9th-3rd-11th-5th-13th-7th because the second voicing is extremely muddy. I'd like to work on some options for omissions and alternate voicings to help.
Here are some of the things I'll take a look at:
- Drop voicings (probably going to implement these for sure since it's easy to implement and common among jazz musicians)
- 3 note and 4 note voicings (limit the notes to help with muddiness, but without needing a large range for the chords)
- Open voicing (we essentially have close voicing right now)
- Omit "unimportant" tones (things like omitting the 11th and the 5th when not completely necessary, will need a better name)
- Add 9ths when appropriate
- Add 13ths when appropriate
I also would like to improve the UI further. Last week (as you probably saw above), I only have completed the foundation for the new dialog. Now, it's time to add some more of the functionality into the UI and make it even better. Finally, I'd like to fix some bugs that I found last week.
I'm excited to have a good productive week! See you all next time!