Sputter 1.1.2: A Dumb Release

Some days ago, this crash report was sent to my Google Play Developer Console:

Crash report from Google Play

For those not in the know it basically means that the UI is requesting a sequence position which does not exist in the sequencer logic. This was not unheard of before the great refactoring, but I thought I had taken care of it and that it couldn’t really happen anymore.

I first thought this was caused by some unlikely but possible condition in which two or more threads do operations on the same data in parallel. That is a classic case in software in general, but I did not find anywhere where it seemed likely to happen.

Upon further inspection I discovered that it is (was) in fact possible to lock the sequencer to an invalid position, by longpressing one of the unpopulated slots in the timeline:

Invalid sequence position locked

When a position is locked the sequencer immediately jumps to that position, and in this case there is nothing there so that will make the app crash. I must admit I had forgot that it was even possible to lock a sequence position by longpressing like that. It is also missing from the help slides.

I guess this must be the dumbest mistake in the development of Sputter so far. Please update to version 1.1.2 now available on Google Play to escape this mess.

If you ever feel dumb… Just remember that sloths sometimes grab their own arms thinking they are tree branches - and fall to their death