The Horror: User Lost All Songs

A day earlier this summer I woke up to a message containing these emojies: It turned out that a user had lost all Sputter song files. After discovering a bug the user had attempted to fix that bug by uninstalling and reinstalling the app. Sputter was originally designed to save song files to the phones “external” storage, i.e SD-card or local file storage available to all apps. These files are persistent and will remain after the app is removed.

Sputter 1.3.2 Released

I just received notification from Google Play that Sputter 1.3.2 has gone through all security checks and is now live in the store. This release brings several bug fixes and minor usability improvements as well as a new drum kit preset called “Voltage”. From the developer’s perspective it is the beginning of a major refactoring to allow for optimizations with regards to performance, audio latency and battery usage. This work will be going on for some time, but it will be done in batches and there will be new features dripping in from time to time along the way.

Code Cleaning, Roadmap and new Demo Song

With distortion and bitcrusher effects landed I have determined that the time is right for a revision and cleanup of some of the code in Sputter. The outcome of that will be easier to maintain code, so that new features and improvements can be made quicker and better. As a part of that I have also planned making several optimizations so Sputter will run better on older and cheaper devices, as well as reducing audio output latency.

Sputter 1.3.0 Released

Sputter 1.3.0 has been released. This version brings much requested Distortion and Bitcrusher plugins. They make use of the lowshelf~, highshelf~, downsample~and quantizer~ Pure Data externals from the pd-else library by Alexandre Torres Porres. Also they were made with advice from an interesting talk on YouTube by Ivan Cohen about how to make distortion effects. There has been made some subjective decisions in the making of these effects. Without the help and very useful feedback from the internal testers, this would have been way harder and probably would not end up as good.

Sputter 1.3.0 Alpha1 Released to Internal Testers

Today I uploaded version 1.3.0-alpha1 of Sputter to the internal testers track on Google Play. This version finally brings Distortion and Bitcrusher effects which has been requested on several occasions. They make use of the lowshelf~, highshelf~, downsample~and quantizer~from the pd-else library by Alexandre Torres Porres. There have been some subjective decisions made, though, so feedback is highly appreciated. Had it not been for the many open source resources out there, like Pure Data, Faust and many others, as well as many interesting and useful talks, there would be no Sputter.

Distortion for Dummies by Dummy

The by far most requested feature for Sputter is distortion and bitcrushing. While bitcrushing is relatively easy to implement, distortion is a whole field by itself. You are not going to get a top of the line distortion plugin in Sputter, but I am aiming for a little bit more than the most basic and straightforward stuff. The simplest and crudest distortion algorithm is to just multiply the signal by a large amount, then hard cut it.

Sputter 1.2.0 Released with MIDI Song File Export

The new version 1.2.0 of Sputter is now available on Google Play. This version brings the long awaited MIDI song file export feature, which makes it possible to use Sputter as an on-the-go sequencer in combination with your favourite DAW. As a part of this the note and octave numbering has been revised. Although it is not always clear what octaves note numbers should correspond to, I think I got it right and in accordance with most widely available MIDI song files I have listened to.

Sputter 1.2.0 Released to Beta Channel

Yesterday the shiny new version 1.2.0 of Sputter was published to the Beta track on Google Play. This release brings long awaited MIDI song file export, and it means that Sputter can now be used as an on-the-go pocket music sequencer which can export songs to a desktop DAW. For now the MIDI song files consists of mainly the note data, BPM and velocities. There may be further improvements added down the road.

Getting the Octaves Right

The MIDI export functionality is now at a point where all notes are exported correctly, in the correct time signature and tempo. However, while I was working on this and testing MIDI file exports, I discovered a shortcoming which has been with us all along: the octaves written at the beginning of each pattern are not correct. For example, say you have a C note in the 5th octave like this:

MIDI Export: First Notes

There has been some progress made with regards to MIDI file export, and the challenge described in the previous post has now been solved. Actually the first MIDI file containing actual notes, with all events lined up correctly, has been exported from Sputter: The original song in Sputter looks like this: As you can see the first group repeats twice, and the longest note does not retrigger, so the exported MIDI file is correct.