Overview of work this week
I’ve completed about half of the features that I listed as incomplete last week. Ghost notes, ottava markings, natural harmonics, slides, fermatas and rasgueado markings have all now been supported. The most awkward of these to implement were fermatas, which were described in the MasterBars portion of the XML file and were notated by how many occurrences N of some time division T has occurred after the start of the described master bar which is somewhat awkward. In any case, that’s out of the way now.
I’ve also been working on several of the other features which are not yet supported. My aim is to complete support for these by the end of the week. That will leave a week to bug shoot and hunt out any features that have slipped through the net, and then a further week to test anything that isn’t tested and refactor/document the code, so things seem to be going right on schedule.
The following features are currently unsupported:
- Slurs (GP6 only – needs testing).
- Free time (almost complete & needs testing).
- Volume swell (symbol in SMuFL – should just be a case of adding the symbol and then annotating the necessary notes).
- Directions (in progress).
- Vibrato. This uses some special symbols, though they look standard enough to be in SMuFL (I’ve yet to verify that they are all specified).
- Tremolo bars.
Slurs and volume swell I will tidy up when I merge my current GPX features branch with the slides branch after it’s merged. I’m working on rebasing that branch and I still need to look at an issue there. These should not be complicated features.
Free time is a feature that I have been working on that’s almost complete, and I’ll be starting with that tomorrow after the rebase is all sorted. I’ll also try and complete support for vibrato.
Directions don’t seem to be too complicated, but tremolo bars are more so as they carry with them a high degree of user customization. I’ll be leaving these features until after the other four have been completed. I’ll see if I can finish these this week also.
Key tasks that stalled
Overview of work for next week
To finish the remaining unsupported features in the bullet list above. When these are complete, if I have further time this week I’ll look at the GP5/GP6 software again and look for any features that may be missing. If I can’t find any, I’ll look at the way instruments are handled during playback, I did some work towards this but I don’t think all instruments are handled and so some don’t sound similar to Guitar Pro playback. There’s also testing to do, another refactor of the implementation would be a good idea afterwards, and hunting for any bugs in the implementation, along with testing the import of much larger scores and looking for any issues there. I would think I’ll be able to get on to some of that this week, and most of the bug shooting and other testing will likely be done the week after.