Code Surgery

I’ve spent a big chunk of this weekend working on DrumBurp; a few features are going in which will mean I should be looking at releasing v0.6 soon.

Yesterday I fixed a couple of very minor bugs – a dialog window not centering, and one of the context menu options not triggering correctly. Both of these were found while I was recording the demo video for the front page, so I decided I just had to fix them there and then.

The nice thing about recording a demo video is it makes you realise which bits of the interface work well, and which really need an overhaul. Those little things which have been bugging you for months suddenly become enormously embarrassing when you see them in a video.  Two things in particular stood out to me: the method of defining alternate repeat markers, and ostinato (repeated notes) insertion. Both of these have been on my TODO list for some time now – the ostinato thing is ticket #23 in my github issues bug tracker, out of almost 200 tickets (mostly closed!). I spent a couple of hours yesterday evening improving the interface for defining alternate repeat markers, and I’m much happier with it now.

The ostinato insertion is much trickier: I want to use a more GUI oriented approach to inserting ostinatos, instead of the current manual approach which requires you to enter values into a dialog. I want the user to be able to click three/four times meaning repeat THIS note, starting HERE, and finishing HERE. Unfortunately this doesn’t really fit with the logic that DrumBurp uses behind the scenes to handle mouse clicks and other actions. This logic was scattered all over the code in various places, and there was no chance of getting this new feature into this paradigm. So, I’ve spent today performing some major surgery on DrumBurp’s codebase (if you’re interested in the details, I’ve implemented a Finite State Machine to keep track of what state the application is in). This should make it a lot easier to implement the new interface for adding repeated notes. Beyond this, it’s made the code a lot cleaner too, so adding more new features in the future should be simpler too. I’m going to need to do a fair bit of testing, but I hope to get v0.6 out in the next few weeks.

(Oh yeah, I’ve also been working on writing pages for the manual too when I get the odd half hour here and there.)

Leave a Reply

Your email address will not be published. Required fields are marked *

Blue Captcha Image
Refresh

*