So midterm evaluations start soon and we’ve managed to pull in a PR just as planned 🙂 MuseScore is swinging with user specified swing ratio now!
As mentioned last week, I started working on the UI for the swing dialog so that the user can easily select the way he likes the score to swing (or not :))
Getting this done was a little tricky, and required a working knowledge of Qt Designer. I got familiar with different aspects of Qt Designer, like adding layouts, editing widgets, signals/slots, etc. Basically everything required to acquire the details from the user regarding how (s)he would like to swing the score (or not) and then use these to apply the appropriate changes to the note events while rendering. I had to make a lot of changes here and there (adding spacers, adjusting sizes of spinboxes, aligning labels, etc.) to finally get the UI in a presentable state 🙂
Apart from adding the UI for the swing, I also cleaned up the earlier code to use the ratio as a style parameter rather than making it a parameter of Score, fixing cases where swing was not working as expected, and so on. Now all the cases are working well. The branch is yet to be merged, but if you are too eager to test swing out, you can build and get going! This is the link of the relevant branch:
After building, you can go to Style -> General, you will see the option to set swing settings. Swing mode can be either Off, Eighth Note or Sixteenth Note. If it is not Off, you can input the swing ratio (in percentage) as a measure of how much ‘swing’ you want to be applied to the score. For eg: Selecting 60% will make the eighth/sixteenth (as you selected) notes “on the beat” occupy 60% time of the “beat” and the rest 40% time will be occupied by the notes “offbeat”. Hope this is clear enough.
Any feedback on possible improvements you’d like to see/cases not working well is welcome.
The next step now, I think, will be to start working on enabling swing on a particular selection of the score. Will keep it updated here. Stay tuned!