Home » August from imagiro
,

August from imagiro

August Pemberton talks about the importance of vibe, crafting tools that feel unique, and porting his popular piano plugin to WebView.

What’s the origin story for your first plugin, imagiro piano?

Well, when I was seven—

Seven?! [laughs]

We’re going right to the beginning [laughs]. When I was seven, my parents signed me up for piano lessons. Basically, I played piano for ages. My family is super musical and so music making was always a big part of my life.

And then when I was about 12, I was playing Minecraft and needed to make a server for me and my friends. I had to run javac on the command line and get a terminal up. That was my introduction to programming, “Oh, you can have mods for this and you can program stuff.”

I ended up doing way more programming and making a few websites. Eventually went to Uni to do Computer Science. It was kind of a toss-up between music or computer science. I ended up picking computer science — first of all it’s a safer choice, as in job prospects — but also I thought you get more out of going to Uni to do computer science than you do going to Uni to do music. You can immerse yourself in music on your own, but it’s kind of hard to do that with the sciences. Well, obviously you can as well. Which I kind of did, to be fair.

[laughs]

But yeah, I went to Uni and it was April of 2020. It was when the first lockdown happened and I went back to stay at my parents. They have this piano that I’d grown up playing. It was from the primary school down the road, the school I went to as a kid. When I went home from Uni, it was just really nice to have that piano around again. So I sampled it in Ableton sampler.

Were you making lofi music at this point?

Yeah. The main kind of music I’d gotten into at the beginning of producing was lofi beats and study beats. Having a soft piano is good for that genre.

But yeah, I ended up putting it on my Discord server of people who like my music. People were really liking it, but a bunch of them used FL Studio. And I was like “Well, I guess this is the time where I have to learn how to make a plugin.” And I always wanted to, because it’s so obvious for me. But it really feels like when you are in the beginner phase like there’s some crazy walled garden around the whole thing.

Yeah.

When you’re 17, there’s no opportunity where you’re going to learn C++.

Right.

Or where you’re going to figure out how a build system works or any of that stuff.

I pity a 17-year old having to learn that!

It was deep, it was intense.

This was before you got into JUCE?

Oh yeah, it was HISE. I was too scared to jump into JUCE and CMake. So I made it with HISE and managed to get a working thing. It was super simple. It was like one sound, but it was a plugin. It was a VST3 plugin and worked across DAWs and played a piano sound. And I had to do some gnarly stuff with installers, getting the sample files in the right location.

So I got that working, put that online and somehow it popped off on Twitter. I think just because I had some music connections. And so that was enough. I had friends who would repost it.

Also, I think artist plugins is quite a rare thing. Because actually, the craft of making a plugin is very different from the craft of making music.

Yeah.

Even though they’re so related and the more I do both, the more I realize the experience lends itself one way, from musician to programmer, but it doesn’t necessarily lend itself the other way. If you’re a good musician, you’re more likely to make better plugins.

When programming, you have to be so narrow and precise. With music you want to be open to the world and embracing the happy accidents. When I think of people I know who do both, you seem uniquely comfortable in both places.

It’s one of those things — when you build any kind of tool, if you are the target audience, you’re way more likely to, first of all, enjoy the process. Second of all, you have this crazy feedback loop because you make something, then use it, and immediately know what needs to change and then can immediately fix it.

I feel like it’s becoming more popular for artists to have their own plugin brand, but as a collab. They’re not necessarily in the trenches. It’s higher level, where the dev will make a beta, and maybe the artist will give feedback and help populate it with sounds.

The artist doesn’t have to open CMakeLists.txt at any point, so…

[laughs] But you like that side of what you do, right? I mean, not necessarily CMake…

[laughs] Oh yeah, definitely. I think there’s something to be said about having unique tools. If you are an artist and you have a specific kind of paintbrush that nobody has access to, because you made it yourself, you’re way more likely to be able to make something that sounds new in some way. And also to have more fun because you’re experiencing something that feels unique, you know?

Did that drive you originally? To give this “unique paintbrush” away, sell it.

Kind of… I don’t say this in a criticizing way, but I don’t think any of my plugins are unique, really at all. Like, there’s so many soft pianos out there. There’s a bunch of granulizers out there. From a broad level, they are not unique. But I think what makes them unique to me is the way they react and respond to you. The way that they prompt the musician’s brain. Because I think that’s a super overlooked aspect to plugins — the actual emotional response that they elicit in the user.

So you are saying the category of plugin isn’t unique, but the implementation is, how it’s built is from this “unique paintbrush” point of view.

Exactly, I think so.

Imagiro Piano, August’s first plugin now built in WebView JUCE

Eventually you moved it to JUCE. What was the motivation for that?

HISE was really good for what it did, but had a few issues. Like, it would crash and wouldn’t really save exactly how I wanted it to. And I think I’m someone who — I mean, the fact that I made a plugin, I like to make my own tools, right? So it makes sense I would then try to do it all myself.

Go deeper…

Exactly. So I spent the next two years learning JUCE and C++ and making my own version of HISE. I mean it’s not HISE, because it doesn’t do a bunch of plugin-y stuff, but I built a sampler engine. You can arrange all the recorded sounds to map them to the right keys in the right places. I was just building an internal tool, I wasn’t making it with any intention of giving it to anyone else. So I could make it specifically for my workflow.

A paintbrush for your paintbrushes. And you’ve iterated the underlying sampler engine over the years?

The first version, I spent a couple years on. I used that to do the next piano update and then started working on the Shearwater Piano plugin. Because of the size of it, it was a much bigger sample library, I couldn’t just load everything into memory, I had to implement disk streaming. And trying to stack that on top of the collapsing Jenga tower of me learning C++ was just impossible. I was banging my head against everything. One day, I was like, “What would it look like if I rewrote this? How difficult would it actually be, because I know all these concepts now.” I thought I’ll spend a week on it and just see where I’m at.

And after a week, I basically rebuilt all of the previous stuff.

That’s fast!

Yeah, obviously there was a lot of stuff that wasn’t there. But I ended up going down so many rabbit holes of UI things and all this stuff. So I knew exactly what it was that I wanted to make. I made a super bare bones streamlined version of it. But it did work and was way more streamlined, just because I understood what I was doing this time around. And that ended up becoming my current version.

Let’s talk WebViews. All of your plugins are now WebView?

All except Autochroma. I haven’t updated that yet, but I’m planning on it.

Autochroma, August’s granulizer plugin

What was conversion to WebView like, in terms of time investment?

So, the really great thing about having the [internal] sampler is it’s a really good way of dogfooding stuff. It’s a real product, but it has no real consequences. So I can just mess around and try stuff. So that’s how I initially built the WebView library. By the time it came to port the piano, all the scaffolding was basically in place and it was super quick to redo it.

I feel way more confident writing web stuff now, because obviously rewriting my own website a bunch of times and I feel like I have more of a fluency in translating a visual idea to HTML and javascript than I do in C++.

Is there anything you miss or wasn’t possible in WebView?

There’s a bunch of stuff which made it kind of awkward, like handling key presses and forwarding them to the DAW properly and preloading WebViews in the background so that when the user requests them they pop up immediately like a normal plugin. You know, everything’s a trade-off.

Would you encourage people starting out to go with WebViews?

I think the only problem with WebView right now that would make me hesitate to recommend it to a beginner is that it requires a bit more plumbing to get going. But once you do get it going, it’s a lot quicker.

You need to know about the threading models a bit? Like the async nature of js?

Yeah, I spent so much time writing all the glue, but I guess with JUCE now you don’t need to do that, right? Although, there’s quite a lot of functions you still have to bind between C++ and js. So that does take a little while. And sometimes it can feel a little tedious, where it’s like “If I was in C++, I could just get this variable, but I have to write a TypeScript definition.”

But once you have all your base functions done, like things to get the plugin name from the processor, you never have to think about it again. It’s super quick and everything’s great.

Oh, and you were also working on some game stuff a while back?

There’s this book called Tomorrow, Tomorrow and Tomorrow. I’m really liking it so far. But basically I just heard the characters very romantically describing game dev and I was like, “Oh I need to do this again. This is so much fun”.

And then you load up Unity and there’s a million errors and things don’t load and that romantic vision just disappears.

I think you once told me that the game dev is the pinnacle of storytelling. You have agency, you have visuals, you have music. It’s really the full picture when it comes to art.

I think it has the most potential to combine all of these things in a really meaningful way. But that just means there’s so much work that goes into it, you know?

Yeah, outside of audio dev, game dev is the only thing that seems like even more of a grind. You’ve worked on a sampler engine… but a game engine is upping the ante!

For ages I wanted to do game dev. Building an engine is so romantic, and I spend all my day writing C++ anyway. It’s like, “Surely, I can do this.”

[laughs]

[laughs] No. The answer is, “No, I cannot do that.” At least not right now.

[laughs] Maybe next year!

I would love to have some kind of environment where I can have a 3D world with spatial audio and I can write cool effects in C++ and have it react to stuff happening in the world. I’m just kind of playing around with Godot and it seems like there’s these things called GD extensions where you can write C++ code, which is pretty cool. Hopefully I can kind of take the sampler engine and use that in Godot and have it play stuff, have a piano in game that you can play that kind of thing.

That’s the dream. Plugin UIs can be static, and you have this other tech where entire worlds are being rendered, fully immersive. Why can’t that be in my DAW?

Exactly. The more I am making plugins, the more I want to express creativity through it. And the more you do that, you realize the closer you get to just a video game. I got Three.js running in a plugin and I was like “This is sick, I’m going to have a plugin in 3D!!” I was like, “Hang on, hang on, I know what’s happening here. I’m getting confused”

[laughs] Confused in the best of ways. It seems worthy!

I’m not going to stop trying wierd ideas like making a 3D plugin. I just think for it to be a tool, it’s equally important that you have something that looks good as something that works well. It needs to have both things. If there was something where having a 3D visualizer or something would like actually kind of make sense of what you’re doing, then I would be really happy about it.

Visualizers are cool. Lots of possibility and territory there. With regards to design and UI and knobs, do you have rules there?

First of all, I just want things to kind of look a bit cool. Whatever that means for what it is. You open something up and it looks enticing rather than, “God, I’m going to have to learn how this works.” It’s really always really one or the other when it comes to plugins.

I think a lot of that is to do with not overloading people. It’s that kind of progressive complexity thing. To me, that is one of the most important things. Not showing everything at first. Making it really easy to know where you need to go if you want to find a certain thing.

What’s equally as important to how it looks visually is how it responds to you when you interact with it. So, having things go underlined when you hover over them, or having a button move down a bit when you click it. All of that stuff adds up to make it feel like you’re actually interacting with something instead of just moving a mouse on screen.

Some of those interaction ideals went away when mobile and flat design took over. Suddenly it was ok to not have hover on desktop.

Is Shearwater the UI you feel most proud of? You made that plugin look so good that I want to eat it. It pulls you in, sets the stage, makes you want to play with it.

I’m definitely super proud of it. I can’t take quite as much credit for that one because what really makes it look so cool is the illustrations. They add such a vibe and that’s why they’re so big in the plugin. It gives you that feeling when you use it, like it brings you into its world. Which I think is so cool.

Did you decide at some point that the main visual element will be these illustrations and then hire someone to do that work?

I designed a lot of it with my friend Joe who was running Shearwater Studios and we went through so many iterations. I accidentally loaded an old version of the plugin [recently] and the nostalgia hit because it took a year and a half to get to that point from when we first did some initial designs. It just looked so bad at the beginning. I was so glad we spent so much time on it and to refine it into what it is.

Obviously, this isn’t groundbreaking thought or anything, but with creative tools, it’s not just purely “what does this do?” It’s more about “How does this actually inspire you?” I mean, it depends on what you’re making. If you’re making a surgical EQ for mastering, maybe that doesn’t matter so much. But if you’re making an instrument… you look at a guitar and it has a vibe, you know? So many people spend so much money on guitars just because they were previously owned by someone. How does that make any sense? So all the kind of wishy-washy stuff is really important.

It’s really quite intimate, almost. I’m telling you that this is what I think looks good. And this is what I think sounds good. And I’m hoping that everyone else doesn’t think it sounds terrible.

When you go back to music making and are using other tools, does vibe matter to you? Do you look at it as romantically from the music making angle?

Yeah, I think so. But also sometimes it’s not in the way I expect. Sometimes I’ll have something that looks terrible and crashes and kind of sounds gross, but that makes it even more romantic. Because it’s like, I’ve got this weird thing that some random person put on GitHub that I had to build myself and it looks super janky, but it’s kind of fun at the same time.

Even janky things can have a place in your heart.

Yeah, exactly. I mean to be fair, after making plugins and spending so much time using plugins, I almost don’t want to use plugins. I know that a lot of other plugin devs have the same feeling where we work with these things all day. So then people just want to get a tape machine and piano and ditch the whole thing when they actually make music themselves.

Right. I wanted to ask you about that, the balance of music and plugins. Because the plugin stuff is very magnetic — you are building a catalog of stuff that probably calls out to you and says “Hey, maintain me!” How do you balance that with the music making side?

The more that time goes on, the more I do end up spending time on plugins. Like you say, maintaining them and still getting into new stuff, running ads… it’s just an endless time sink. But I think one thing that works really well is to put aside a certain amount of time and go somewhere else just to make music. I went to my friend’s parents house recently, he’s in the south of France and we went there for two weeks and only made music the whole time. I haven’t been in that zone with music for such a long time. I think that’s the best way to do it, the way that works for me.

A different location with time sculpted out…

I have all my synths next to me and I have my guitars next to me but every time I sit at this desk I just end up somehow opening an IDE and writing code. I don’t hate that, I like writing code and it’s fine. But then I don’t end up making music. I just brought my amp and a looper upstairs and at least that way I’m playing instruments again because it’s not in the same room.

Makes sense. If I work on a song in the morning and then do dev in the afternoon, I feel like I don’t have the freedom to let the music go where it needs to…

Yeah, you have a time limit.

Yeah, for me, a day is the smallest unit of time.

Yeah, I agree.

Where will you be in 10 years, you think? Still juggling music and plugins? Or are there other places you want to get to?

There’s so many things that I want to do. And there’s so many things that are really fun and interesting. I see all these different realities happening at the same time, but I know that obviously they can’t all happen at the same time. I do really like “the juggle” as it is right now…


August was interviewed by Sudara.

Have comments on this interview? Ideas for who we should talk to next? Let us know on the JUCE forum.