An Interview with Surreal Machines
I recently got a chance to catch up with Pete Dowling of Surreal Machines, and we did a little Q&A. Here’s the result!
Hi, Surreal Machines! Could I have you introduce the people on your team?
Matt Jackson and Pete Dowling. Sometimes we also include Alex Harker and Robert Ickis Mirolo. We like making creative tools and get a kick out of it when people like them! At the moment we are working on more Max & Max for Live content, as well as some VST/AU plugins. We also all have day jobs that are not Surreal Machines, although maybe that could change one day. We seem to work very slowly!
It appears that you got started by creating the Dub Machines pack for Ableton Live. How did you two meet, and how did you decide on doing analog emulations as a product line?
Matt and I met on the Max 6 beta list. It was obvious we had a shared interest in building filters with Gen. The sm.ladder~ abstraction we released as part of our recent smFilterPack package was the first code we ever collaborated on, so it is cool to see it go public at last. We released Dub Machines for Ableton in May 2014, and we didn’t actually meet in person until after that. Dub Machines was a sort of test to see if we could work together. We had no idea it would be so big.
Actually there was no decision to work on so-called ‘analog emulations’ per se, it just sort of happened. Sure, we are very interested in that, but I think more so we are interested in a certain sort of sound world that happens to encompass this. At Surreal Machines we always want to learn from research but then do our own thing with it. Having said this, there is a real lack of this sort of ‘virtual analog’ work in the MSP world, for some reason. So yes, as far as Max goes, we want to try and stimulate a debate by offering up our modest efforts in the field.
From a personal point of view, I find strict ‘emulations’ very boring. I’d been working on high quality VA and anti-aliased everything in MSP for some time, but actually because I have an interest in the sound of digital aliasing and wanted to be able to control it along a sonic spectrum. Or as Eric Lyon would say, “learn to love the aliasing”.
You obviously had to dive deeply into some vintage gear to get the inspiration - and the details - of both tape-based and early digital delays. What did you find that was most magical? And what did you find that was most surprising?
Well, yes, we really went deep! I think just because it was fun and exciting, and we are quite obsessive. For someone like me, who is steeped in digital with only faded memories of analog, analog gear is always magical.
At first we worked intricately on research and instinct. I think this led to a personal and a certain ‘other worldly’ element to Dub Machines. We actually worked with real gear after we’d already started. This was amazing, because some of our instincts were right; however, when we were tuned into the sound world we found exactly where we’d gotten it wrong.
We have since worked closely with gear, taking impulse responses and recording noise and timing fluctuations from real units, studying the results closely. The most enriching result for me was getting the mapping and range of the modulation unit from an old Roland box. This was done by ear with Matt turning knobs, Alex patching MSP in real time and me shouting enthusiastically from in front of the speakers. This code has gone straight into one of our VST plugins.
One of the most surprising and interesting lessons learnt is that when one gets the ‘emulation’ perfect, it is not always appropriate in a digital context. You know real world, heavily (ab)used analog tape-based gear has even worse high frequency response than even we put into Dub Machines (and we really cut those damned highs and saturated those feedback loops!). This has informed much of the emulation work we have done in 2015.
One of the coolest things about Dub Machines is that so many users use them alongside analog gear. I think this says a lot, and I am incredibly proud of this.
Listen to a good example here:
I was speaking to the sound engineer of a well known band recently who told me the keyboard player uses ‘Magnetic’ because it sits so well in the mix with the other acoustic band members. When we find out about all the different sorts of people using them it is amazing. I am not kidding when I say I have met people at the bar in my local pub who know artists using Dub Machines. And when Emch posted about Subatomic Sound System and Lee Scratch Perry I had a huge smile on my face for days. Some special praise I had is when someone at Ableton said to me that the reason they like Dub Machines there is that they “don’t sound like Max”.
You recently put together a package of filters that was released as part of the roll-out of our [Cycling 74's] Package Manager system. What is in this package? And how do you think that fits into the Package Manager concept?
We made the smFilterPack for the new Package Manager content. It is a collection of 2 filters (actually more as there are a few hidden ones). We started modestly with (yet another) ‘ladder’ filter as well as a ‘multimode' filter.
I think our sm.ladder~ abstraction is completely awesome! I don’t mind saying that because it is based on the research of others (as well as us, see the credits in the package). I always wanted something in Max that was this analog feeling and this good that I could rely on for when I needed that Moog sound whilst still at a relatively cheap cost regards CPU. It is a very good analog emulation of the hardware, but most importantly it is insanely versatile from a modulation perspective. To prove this is Surreal Machines and Max, I made sure that the user can make the filter morph into heavily digitally aliased operation as well, with specific settings of course - that is fascinating, and something you would never get in a commercial VST (for example).
The sm.sallenkey~ abstraction is more generic and hopefully more widely useful. There is lots of additional code in the included ‘.genexpr’ file, but what we wrapped as an MSP abstraction is a good example of what we do at Surreal Machines - take a lush, high quality filter and surround it with some optional smooth oversampled nonlinearities. This is something Matt does a lot when experimenting - we have developed an organised library over the last couple of years where piecing together elements of code like this is as easy and quick as possible.
We hope that we made smFilterPack for everyone. Whilst there are easy to use wrapped up MSP abstractions, going through the tabs in the help files and overview file gradually burrows down into underlying Gen code. There are abstractions, snippets and large amounts of reusable GenExpr code people can use via the Gen ‘require’ feature, so hopefully there is useful stuff there to pull apart for Gen builders as well as those wanting quick, high quality results.
The aim is for us to update the package with more and more content as we get the time. We have done so much research and development on this topic over the last two years we have a great deal of gen~ based code in our private Max library. We really want to get as much of this out there as possible. Sadly, putting it all into a pack that is robust, well explained and worth sharing is a huge amount of work.
Fortunately, the new Package Manager system is fantastic. I have been a huge fan of ‘packages’ since they arrived a few years ago. Almost everything I do now is package based. In my view Packages and Project’ are the only way to share Max based work these days. What is wonderful about the new Package Manager development is that I can update our smFilterPack whenever I want, and users will be notified that an update is available. And installing/updating is just a single click from the Max interface. It feels like the Package Manager package content is almost part of the distribution, even though it is third party. And it still helps me organise all my non-PM packages, too.
You obviously have some strong interests in the Ableton Live/Max for Live space. What have you run into that excites you in that world? What are you most excited to see in the future?
Creating devices for Live taught me a great deal. I’ve always been invested in both Live and Max, and I look forward to ever more and closer integration between them. I guess I will say that I want low latency audio-rate signal bussing around Max for Live devices in a Live set (this would really help Surreal Machines), more Jitter/etc integration, and I am still waiting for the day I will be able to loop a piece of audio in Live without having to warp it!
Ableton just sent me a Push 2, which is rather interesting. It is the first controller I have had in my possession since a circa 1998 Doepfer ‘Pocket Fader’ (which I still use), so I have a lot of catching up to do. I hope to make some cool stuff for it in time. I switched it straight into ‘User Mode’ of course ;)
What are your future plans?
For a long time now we have been working on our first VST/AU plugins which we hope to release soon.
We are lucky enough to have been working with Alex Harker on the C++. Gen has been invaluable in this process, bringing together all of our different strengths and interests. All our plugin work is prototyped in Gen first.
I spent most of 2015 working on a set of Choruses/Flangers/Phasers which will form a part of the new plugins. If you told me 10 years ago I’d spend so much time on that I’d probably have shot myself. Life is strange the way it works out. But it has been fascinating to get deeply into emulating BBD (Bucket Brigade) devices closely, pulling together masses of gen~ prototypes and sound designing interesting new approaches to those often hackneyed effects types. Prototyping in Gen helps us collaborate.
Apart from more Max based work and my ongoing battle with C++, I’ve been working a lot with ‘Faust’ (and Oli Larkin’s ‘pMix2’ software), and we have some crazy ideas for things not covered by just Max or audio plugins, so watch this space…