Synth Talk

illustrations illustrations

Yuri Turov On The Making Of Xynthesizr And Shoom For iOS

Published on Sep 11, 2020 by Synth Talk

Xynthesizr Screenshot

Xynthesizr 32 Step Grid

Xynthesizr is an iOS MIDI sequencer that lends itself to live performance by altering playback in real-time via the touch interface or MIDI. Generative features like probability-based pattern morphing and Life-like cellular automata build fascinating variations that are also interactive. Fans of Xynthesizr, including myself, tend to truly enjoy the way it works. I talked with Yuri Turov to learn more about the making of Xynthesizr and his newer XY pad synthesizer called Shoom.

I also reached out to a few musicians in our community to get their thoughts. You will see quotes from Red Means Recording, Mylar Melodies, and Andrew Plourde throughout as well as links to their videos at the end.

Xynthesizr

Mylar Melodies performed live at Moogfest using Xynthesizr on an iPhone. Amazing! What do you think of that?

I dug it! I liked his simplistic approach, the kind of repetitive vibe and tasteful execution. It also feels good that he seemed to have enough trust in Xynthesizr to make it the core sound source in the performance :)

Xynthesizr is a ridiculously simple app, I am not sure I can fully explain why it had such a special effect on me. I think because the loop it makes is short, it forces you to refine and polish the melody till you can happily listen to it forever, and it’s so simple you can program it live. I have literally gone for walks in the country while I let it loop and loop in my pocket while I listen on headphones. The inbuilt engine sounds better than it has any right to, but a good tune is more important than anything else. It helps me write a good tune. – Mylar Melodies

The sequencer controls are really good for performance and experimentation. How did you decide on this design?

Thanks! I think it mostly came from playing with it myself during development and always thinking where it could go. Some parts were added thanks to user suggestions.

The thing about Xynthesizr is it seems to effortlessly hit the best things about iOS music making without any of the usual missteps. It’s intuitive, quick to pick up, and doesn’t try to do too much. The synth engine is legitimately one of the best ones I’ve heard, and the combination of sound with sequencing and permutation options all add up to make it a truly special app. – Jeremy of Red Means Recording

How did you arrive at the color scheme for Xynthesizr?

The grid was initially monochrome, but I wanted to have an easy way to tell where each scale degree is without having to look at note names, so I first came up with these gradient octaves. Then I thought I could use different colors for different octaves by shifting the hue a certain amount. And, since the grid became quite colorful at this point, I thought I’d use some colors to separate control blocks as well, to the point of overuse :) Perhaps the fact that it wasn’t intended as a ‘serious’ app played a part.

Development Screenshots of Xynthesizr

Earlier Iterations Of The Xynthesizr Interface

Did you go through many iterations of the UI?

Hmm, I think the answer is yes and no. I started with a very sketchy UI, basically just to have some controls available, and focused on the audio part for some time. The first proper UI layout that I came up with is basically the same as the current version, but there’s been a lot of small changes: tweaking here and there, fitting in controls for new features, adapting for various screen sizes, etc.

People are creating beautiful ambient music using the built-in sound engine. Can you tell us a little bit about the synthesis method and design?

It’s a pretty basic subtractive synth. The waveform shapes are ‘by the book’ in that they look pretty much the same on the oscilloscope as on the panel, except for band-limiting of course. The filter is a linear 4-pole ladder-style. I wasn’t trying to do anything fancy - at the time, it was laborious enough for me to figure out how to implement things like band-limited oscillators and a pretty basic reverb algorithm and optimize all this to allow for something like 16 voices on an iPhone 3GS (the oldest model I had to support). That took some time as performance-wise the CPU was comparable to desktop units of the early 2000s, I think, while these days Apple’s CPUs are catching up to their mid-range desktop counterparts.

Can you share any tricks about using Xynthesizr that may not be obvious?

I like Andrew Plourde’s trick of creating simple custom ‘scales’ - e.g. stacked fifths, or 1-4-5, etc. - for use with Game of Life - to get simpler and more musical sounds from it. Another thing that might be not so obvious is that you can transpose patterns with incoming MIDI notes, whether from a keyboard or another sequencer.

Your approach to custom scales and sending different “octaves” to different MIDI channels is unique and leads to very interesting results; was that a design goal or did it come about during development?

Well, it’s somewhat weird in that non-octave repeating scales usually imply xenharmonic stuff, yet Xynthesizr sticks to 12TET. I think I wanted to aid stacking intervals without taking up extra rows, so you could do e.g. an extended chord ‘scale’ - 1, 3, 5, 7, 9, 11, 13 and back to root 2 octaves higher, or stack fifths - 1, 5, 2’, 6’, 3’’ and so on, stuff like that. I don’t remember it that well, but sending MIDI to different channels was likely a user suggestion as I was working on adding MIDI in v1.1.

Generative

Seq Panel for Xynthesizr

Sequencer Panel For Xynthesizr Showing Generative Controls

Was the original idea for Xynthesizr driven by Cellular Automata or did that come later?

It came later in the process. While working on the app I would let the pattern repeat and repeat and at some point, I really wanted to make the app mutate it automatically and came up with a couple of ways to do it. The idea of limiting the area of the grid that should be mutated came after the initial release - probably a user suggestion too.

I’m intrigued by the generative features of Xynthesizr and find them easy to use. How did you decide on what to do for generative features?

It was pretty straightforward - I have some points on a grid, how can I move them? Some kind of randomized movement is an obvious choice, and for that I can randomize both the amount of movement and the decision whether to move or not, so that it isn’t too much. OK, that’s one way of doing it… Points on a grid? Hm, that reminds me of something. Let me apply the Game of Life and see how it works…

How much have you worked with Conway’s’ Game of Life? Have you made other software tools based on this, how did you learn about it, do you use it elsewhere?

I think I learned about it in an IT class in high school, but it is such a well-known thing it’s probably impossible to get any formal Computer Science education without at least hearing about it. (Curiously, well-known doesn’t mean well-researched - enthusiasts still discover new stuff in it after 40+ years from its invention.) I haven’t used it elsewhere. In my case, the pitch-vs-step grid sequencer came first, and CGOL was applied on top of that. It may be worth noting that the way I did it in Xynthesizr certainly is not the only way to apply Life-like automata in a musical context. You have two spatial dimensions and a time dimension, and you can translate that to notes in multiple ways. For example, there’s an app called Quincy that takes a different approach built specifically on the automata.

Would you ever take these generative ideas further in another design?

I don’t know yet. I’d like to do another take on Xynthesizr, but I’ve yet to figure out what ideas and features should make it through.

Shoom

Shoom Screenshot

Shoom App On The iPad

Mobile devices rekindled my musical activities after many years of creative drought; unique apps, like Xynthesizr, with their fresh approach to sequencing as a performance tool, and tactile, instrument apps, like Shoom, were tremendously exciting. – Andrew Plourde

Shoom takes a very different approach from Xynthesizr, how did you come up with the idea?

I came across an iPad app called Microtones by Szymon Kaliski and used it quite extensively in free-improv context to augment my guitar and effects-based sonic palette. I think the app is no longer available, but here’s a video . It lets you play dozens of sine wave oscillators on an unquantized surface. I liked it a lot for playing textures and noises that usually aren’t on pitch, running it through my guitar pedalboard. However, for me it lacked a few features like logarithmic frequency layout, control over the envelope, visual guides, etc. Szymon was busy with other projects, so I asked if he’s OK if I make my take on his idea, and that’s how it started.

How did you decide to support microtonal tuning in Shoom?

Well, since there was no keyboard, only this blank canvas that can be marked up in many different ways, I thought why not use a more generic tuning model that can accommodate pretty much any scale imaginable. I’m too dumb to play xenharmonic music myself, but I find it quite fascinating and imagined it would be great if somebody used Shoom for that.

What are non-octave repeating scales?

Those are scales whose pattern of notes isn’t the same in every octave. In other words, the scale is built on a different interval of equivalence. The most well-known examples of that are the Bohlen-Pierce scale that uses the interval 3:1 as its fundamental ratio, and Wendy Carlos’s alpha, beta, and gamma scales that subdivide the just perfect fifth (3:2). These scales sound ‘out there’, but there can be non-octave-repeating scales using familiar 12TET pitches, e.g. you could think of C D E F G A B C D E F# G A and so on as a fifth-repeating scale with the interval pattern whole-whole-half-whole.

How did you create the audio engine in Shoom and Xynthesizr?

That’s somewhat funny. As a newbie, I started by using libpd - a library that allows embedding Pure Data patches into apps - thinking it would give me a good headstart. It seemed to do in the early stages, but eventually, I had to rewrite most of the modules (‘externals’ in PD lingo), as they weren’t good enough either performance- or quality-wise. Vanilla libpd ended up just handling the connections between modules. And the PD part is only the synth engine and FX, all sequencing is done outside of it. Shoom kind of inherited that subsystem, which I regret - later down the line it made some things more difficult than they had to be. I’m moving away from that in newer projects. (To make it clear, I’m in no way bashing PD. It’s great for what it’s intended for - making audio programming accessible to non-programmers, prototyping, etc.)

Background

Where are you located? I find this interesting because this community is spread around the globe.

I’m located in Tomsk, West Siberia, Russia.

What motivated you to create iOS apps and a MIDI sequencer?

At some point, I thought I’ve gained enough confidence and experience to try to release an app of my own. I knew right away it had to be a music app - it was the most interesting field to me and I was eager to learn audio programming in more depth. I’ve been coming across several ‘tone matrix’ apps (and web apps), and thought it would be a good idea to make my own, a bit more elaborate, take on that - that would have selectable scales and a tweakable synth instead of just a basic sine wave synth or samples. I went with the grid sequencer idea specifically because I thought it can be fun enough and easy to use for non-musicians - I wasn’t aware of the iOS musician community at the time and these were still early days for iOS music apps. I think Audiobus was just starting that year (and I learned about it late in the development process), the idea of app interconnections was very novel and the hardware couldn’t cope with that many simultaneous apps anyway, so apps had to be these self-contained things. I also wasn’t initially aware that you could route MIDI between apps and not just from and to external hardware, so Xynthesizr v1.0 wasn’t even a MIDI sequencer - the MIDI part came later with the first update.

How did you get started in iOS app development?

I got into iOS app development kind of by accident - a company that hired me assigned me to their iPhoneOS team, a brand new market at the time. I studied some basic DSP at the university, although it was more about sensor and control signals, not audio. My only experience with audio programming before Xynthesizr was just using a third-party library to apply some basic effects.

Developing

What languages did you use to create Xynthesizr and Shoom?

C for realtime-critical code and Objective-C for the rest. Or, more technically correct, Objective-C with special considerations for realtime parts, as C is a strict subset of Objective-C. For newer projects, I’m using C++.

Wrap Up

Do you release any music you can share?

Yes, you can find most of it on Akt-Produkt’s Bandcamp . Akt-Produkt is a small label that we run with a group of friends.

Strangelet Trio and Leo Abrahams - Moments of Presence This one is the most recent at the moment. It’s a fully improvised live concert we recorded during Leo’s Russian tour last year. I play guitar and iPad, namely Alex Nadzharov’s great soundfruuze live sampler and TouchOSC to control hardware effects.

Ángel Ontalva and No Grooves - Blood Moon Tonight Perhaps the most accessible record I had a hand in, or at least one of the more structured kind. It’s an album of Ángel’s compositions played live in-studio and here I’m a mere guitar player for the most part.

Sine Seawave - Incidentals Vol. 1 Part II: Shackled Movement An example of a darker and somewhat more abrasive material, and a part of the soundtrack for a theatrical piece by Ksenia Belenkova. Besides the mostly prepared or otherwise weird guitar, I use the Microtones app quite a lot here, as well as iVCS3 and Samplr. It’s early 2014 and I’m early in the process of figuring out what I would like Shoom to be.

Any plans for future updates or new designs you can share at this point?

I’m currently working on a couple of AUv3 effects, and then I’d really like to revisit Xynthesizr ideas to make a sequel app.

So much thought and design goes into making apps, I want to highlight that here so it can be appreciated.

Thanks! Sheer labor as well. For me, the thought process tends to take over the rest of my life when I’m actively working on a project. :) I’d like to also mention the voluntary beta testers, who have been immensely helpful over the years.

What aspects of this experience have been most rewarding?

Many of them. First of all, being able to think up an instrument and eventually implement it is rewarding in itself. The fact that people like it enough to pay for it, use it and write good things about it - even more so. Releasing an app, especially your first one, can be somewhat terrifying - you have no idea how it’s going to be received, there might still be a bug lurking somewhere, etc. - so having that initial positive feedback is especially great. Another quite special aspect is hearing some fine pieces of music that make use of the apps - of those known to me, I could perhaps highlight works by Perplex On and Makunouchi Bento.

How can your customers help you?

If you find a bug, please report it. Feature suggestions can be helpful as well. A review on the App Store is always helpful. Tell other people about the app. If you’d like to help with beta testing of future releases, let me know.

Performances using Xynthesizr

A selection of videos featuring Xynthesizr:

Mylar Melodies Xynthesizr based performance at Moogfest 2019

https://www.youtube.com/watch?v=7xhWLtRQ6Aw

Red Means Recording video featuring Xynthesizr

https://www.youtube.com/watch?v=d12SNIcO32Q

Andrew Plourde performing with Xynthesizr.

https://youtu.be/DuiK2mWb3R4

Andrew’s notes for this video: I had used the randomization features in Xynthesizr extensively, but never the Game of Life modulations, until I realized that I should pair it with a custom scale so the note clusters that Game of Life creates wouldn’t sound like atonal masses of notes.

Also, thanks to Andrew for providing the question on custom scales.

Yuri’s Site

Xynthesizr and Shoom on the App Store

Snippet featuring a new work-in-progress AUv3 effect

An early video of the yet unnamed Shoom App

Conclusion

Thanks to Yuri for taking time to chat and everyone who provided quotes.

There will be more articles to come highlighting the person and the process behind the instruments we love. 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. 🙂

comments powered by Disqus