Sputter 1.4.0 Alpha1 Released

Sputter 1.4.0-alpha1 has been released to the beta channel in Google Play. The star of the show in this release is sample recording through microphone or other audio input device. I have already had much fun with it on my own, and I am sure many of you will too. The interface is a Snapchat-style recording button with a finite allowed recording duration:

Sputter recording interface

As you probably can spot the wave editor has also been touched up a bit:

The Horror: User Lost All Songs

A day earlier this summer I woke up to a message containing these emojies:

Angry 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. The latter will also pave way for potential “live” playing and recording in the future, for example an on-screen keyboard or drum pad.

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. When running through a sine wave, it looks something like this:

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. It also seems to work well with Ableton Live, Reaper and Bitwig.

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: