Interview with the developer of Tardigrain, Strng, Shapesynth, Frekvens, And Elsa.
Erik Sigth, who goes by the name Humbletune, is an independent developer of very unique synthesizers, samplers, and effects on multiple platforms. The minimalism of the user interface and color palette of his designs are striking. I spoke with Erik to learn more about his approach to creating these instruments and find out about recent app updates.
Can you tell us a little bit about your background?
I grew up in Lindö part of Norrköping, Sweden. I didn’t really play any instrument as a kid but when my family got a pc in the middle of the 90’s I got totally hooked on recording sounds and making tunes. I don’t know how good the music was but I used the things I had, I remember playing the Casio keyboard my dad had bought years earlier, playing my mum’s old acoustic guitar and I had a program that could do delay effects by feeding it the delay time in seconds. So, based on the tempo I wanted I sat with a calculator to compute the times I needed. Looking back on it now that was maybe the first little step to doing DSP in some tiny way.
Before iOS apps, what type of music apps or hardware were you creating?
My first two apps I did on the app store were games, a space shooter type game, and a Mario like platformer. Before that, I had mostly done Flash games. Those two games I don’t think did very well and I soon moved on to music-related applications. iOS was a completely different thing then, no Audiobus and no MIDI. Just a few developers making quirky apps and experimenting with that new type of interface.
Is there a vibrant audio community in Sweden?
I think so, there are definitely many great Swedish audio developers making apps for iOS, plugins for desktop, DAWs and hardware synths. But it is still a very niche thing to do though I think, the internet is the best place to meet like-minded people I find.
Can you talk about what you do at Softube?
Your color schemes are stunning, how do you create them?
Thanks, colors are difficult. My number one complaint is probably to do with color, often not enough contrast. I definitely think about colors and shapes a lot. Sometimes I arrive at the color scheme straight away and sometimes it takes a few iterations. I don’t know if I have a formula for how to get it right but when you find it I think you know.
All of your apps have a very unique and minimalist user interface. How did you arrive at this approach?
When I started making apps in 2010 everything was skeuomorphism, and I never really liked that. Instead, I have gone with a flat design that I hope is also fun. I try to make things simple and use few colors. Not sure if I always succeed though, in the end, in most projects, there are places where you have to try to squeeze in some feature that wasn’t there in the original design.
Did you study design?
Perhaps growing up in IKEA Sweden shapes you in some way. :)
No, but I appreciate looking at great design. Perhaps growing up in IKEA Sweden shapes you in some way. :) I have always appreciated drawing, art, form, and colors.
Have you designed for touch screens before you created your iOS music apps?
I think my first app was in 2010. At that point, I didn’t even have an iPhone, only an iPod Touch 2. This was the first touch screen I had seen as far as I remember. It truly felt like something different, which is so appealing compared to using a traditional computer with a mouse.
Elsa - retro style sampling keyboard
What was your inspiration for the retro sampler Elsa?
The idea for Elsa came from 2 things. I used to have a very simple VST sample player that simply just loaded a sample and it created different pitches by playing the sample at different speeds. Very simple idea and nothing really clever. I loved that sample player and used it probably in every track I recorded. There is an issue with playing the sample at different speeds though, looping two or more of them at the same time means they will finish and start at different times. So the second thing Elsa does is making sure that loops stay in sync with each other by altering the lengths of the loops.
Elsa is a sophisticated sampler with per-key sample settings yet the interface is deceptively simple. Were all of those features there from the start?
Yeah, most of it was there from the start. At some point though I added a way to remove the loop length compensation stuff by request from users. It makes sense if you want to run shorter samples that are maybe only an oscillator cycle or two long.
In Elsa, the Playback length dividers (1,2,3,4,5,6,7,8) add a nice creative aspect to playback. Was that a feature from retro samplers?
No, I don’t think so, that is my own weird invention. I thought it could be nice to have some variation in the loops when playing and I thought it made sense to divide the lengths evenly to keep some kind of tempo.
Strng - String Synthesizer
In Strng, I noticed the noise, noise filter, and string tension controls have changed. What motivated those changes?
The big motivator there was wanting to add new features but not having enough space to do it in. Making the first version of an app is, well I shouldn’t say easy, but definitely easier than making a second version. Second version you have to live with your own bad decisions and really tread lightly to avoid breaking things. For Strng though I thought it made sense to split the controls up a bit more making it possible to add extra things. Now I kind of like the flatter design also compared to the old isometric 3d design.
Shapesynth - polyphonic synthesiser
It looks like Shapesynth has received a major update. What features are you excited about?
Adding AUv3 support, I think there probably wasn’t a line of code I didn’t somehow change or at least consider changing.
One thing I wanted to add for the longest time is cents detune, which is such a simple thing but I never got around to doing it. The pages are quite nice also giving it the possibility of being more dynamic and less static. Otherwise, AUv3 is a big thing, I don’t know if I am as much excited about it as I am relieved. I was kind of dreading taking on that task because I knew there were so many moving parts that I needed to think about. In the end, I think there probably wasn’t a line of code I didn’t somehow change or at least consider changing. But I think it turned out well, I am very happy with it and the video that PerplexOn made for it is so amazingly gorgeous. I love the things he makes with mobile devices.
Tardigrain - granular synthesizer
It seems like Tardigrain is a play on the word tardigrade. Is that true?
Yeah, pretty bad isn’t it, I apologize. No, they are one of my favorite animals, super cool. I mean they can survive in space, that says it all I think. At some point, I need to come up with an app based on Pangolins too, another one of my favorite animals.
Can you talk about the development of Tardigrain?
I spent quite a long time experimenting with the sound engine trying out different things and eventually landed on what Tardigrain is now. I knew I wanted something that could make slow-moving landscapes and stretch things out in a way Elsa can not. The UI was a new approach for me here also, this was the first synth I made to run both stand-alone and as AUv3, which is challenging because of the so very different aspect ratios and real estate.
In Tardigrain, the modulation settings are easy to use. How did you approach that design?
The thing that made me start thinking of how to approach the modulation section was the Roli Seaboard Block, I wanted to support it and give access to all parameters. Previously I had done some sort of keyboard modulation things with Strng but that has a fixed parameter set and is less configurable in many ways. I took the good things from that though, like the settings for range and applied it to the whole set of parameters. Porting for AUv3 made it easier in a way because the format forces you to have what they call a parameter tree, which is basically just a defined structure for all visible parameters so I could kind of highjack the work I did there and send the modulation data through the same set of functions.
One thing I was unsure about at the start was how well would it work making several fingers control only one parameter. In the end, I think it worked quite well just finding the middle of them all and it feels quite natural and intuitive.
Frekvens - Frequency Shifter And Delay Effect
Can you explain how your frequency shifter and delay Frekvens works?
Oooh, can I. Yes it is similar to pitch shifting in a way but subtly different. Both shift frequencies up or down, but in a different way. Say we wanted to pitch shift a signal that has two frequencies 50 Hz and 100 Hz, shifting it an octave up we get a signal of 100 Hz and 200 Hz. Every component of the signal is doubled. What people call frequency shifting is a linear shift, if we take the same signal and want to shift the lower signal by an octave we get 100 Hz and 150 Hz. By doing that we get different harmonics which can create very interesting results, not all very musical sounding but still interesting. Pairing that with feedback can create really cool barber pole, Shepard tone like sounds.
The way it does the frequency shifting is similar to ring modulation but you end up with only one side of the spectrum, known as single-sideband modulation.
How did you learn audio programming?
I did do some digital signal processing at University but I think most things are from doing it, and then doing some more. I’ve made many weird, some better than others, apps over the years and gradually got better. I occasionally get emails from people that want to start doing audio programming and want advice. I usually say don’t do it for the money, because you probably won’t get rich. Learn by doing and start small. Better to do something small that you can actually finish, then trying to build something that can do everything, but end up never finishing.
What language do you currently prefer for app development?
I mainly use Objective-C and C++ for everything that needs performance. The audio engine uses C++ and the rest is Objective-C.
Do you use a framework for audio programming?
I use Sparrow for drawing graphics, slightly modified to make it run better in extensions like AUv3. It was written for making games, taking many of its abstract structures and ideas from Adobe Flash. The most similar Apple framework you could use is probably Sprite Kit. Then for stand-alone apps, I use The Amazing Audio Engine just to simplify the audio setup, it gives me a buffer to fill and then it is up to me to put some good numbers in that buffer. For AUv3 the protocol itself provides a callback for audio buffers. But for the audio processing itself, there is no framework.
How do you evaluate audio quality when you are developing your apps?
Mostly by ear, if it sounds good it sounds good right?! In some cases I will write extra output views to make sure graphically I am doing what I think I am doing. Printing stuff in the code can be quite effective sometimes and might be the fastest approach. It is not uncommon either that user feedback helps me rethink stuff and make improvements, like for instance adding the fade in and out on the tape in the latest version of Shapesynth.
What kind of challenges are you having with AUv3 support?
The most time-consuming part of porting one of my old apps for AUv3 has been the change of structure that is needed. Because parameter changes can come from so many different things, going from how I used to do things to how I do things now is not hard per se, but most code needs revising. The sound engine stays the same though for me between stand-alone and plugin which is good. The real estate for the UI is a challenge given the different aspect ratios. Where the iPad standalone has much more height compared to iPhones and AUv3. Basically my thinking there has been that I remove the keyboard in AUv3 if it gets too thin, which works quite well in most cases.
Did you enjoy developing Phase for Pocket Chip hardware?
Pocket Chip was a fun device. I think most understand that I like handheld devices you can easily take with you everywhere. That probably stems from my first “computer”, the original Gameboy, but I digress. It was interesting to explore what is possible in Linux and on Arm processors like the Pocket Chip and Raspberry Pi. Then it is nice of course to go back to a mature platform like iOS also. I have been thinking I should port phase to iOS at some point but I have not found the time to do it yet.
What are your current favorite hardware platforms? (raspberry pi, teensy, etc.)
I think Teensy is a compelling platform. It would be fun to build a little pocket synth, but I feel I lack the hardware skills to make it into something good. Raspberry PI, Pocket Chip, Gameboy, and Android have all been fun to play around with but I have to be boring and say that iOS is my favorite. It’s a very portable platform. I always have my phone on me and it’s easy to chuck an iPad in the bag, and with AudioBus, IAA and AUv3 there is so much cool stuff you can do. It is not just a toy anymore.
What aspects of this experience have been most rewarding?
I get to make things, start with nothing and at the end have something.
That’s a difficult question because there are so many good things about being a developer. I get to make things, start with nothing and at the end have something. That’s pretty cool. I like the creative side of making app, drawing and designing user interfaces. I like the problem solving aspect of coding, figuring something out that you have been thinking about for days is very rewarding. User response is very rewarding too, people seem to appreciate what I make. I mean the main person to satisfy will always be myself but it is very rewarding making something someone would pay to use.
So much thought and design goes into making apps, I want to highlight that here so it can be appreciated. (Any comments here?)
Yes, I agree. This is what I think about pretty much always. If I am not at work coding, I am probably working on one of my apps.
Is there a particular forum where you stay in touch with your customers?
I used to be more active on forums than I am nowadays. Even though the absolute majority of comments are super nice I find I am happier if I don’t read them. I think the most important things like bugs reach me anyway through my support on the website. I can easily obsess over what people think, works best for me to not seek it out. The forums I used to visit most were Sparrow, for developing help, Audiobus for meeting users, Chipmusic for Gameboy stuff and probably a few more that I have forgotten.
How can your customers help you?
Sending a support email is always good if you find a bug. I am not always fast but I will always try to solve it. This last autumn has been pretty bad with first iOS 12.4 breaking IAA and then iOS 13 introducing many new interesting quirks. It all takes time to look into and find workarounds.
My motivation for Synth Talk is to highlight the thought, effort, and philosophy that goes into designing a product. Erik brings his own visual style to the world of music apps and has at least 10 active apps on several platforms, including a phase distortion synth on Pocket Chip hardware. He also gave us insights on the work involved in creating an AUv3 version of an existing app, a feature iOS musicians are always enthusiastic to see added.
There will be more articles to come highlighting the person and the process behind the app. Check back here or subscribe to the newsletter if you would like to hear more Synth Talk.
If you have suggestions or topics you want covered please contact me. 🙂