Home » Finn from Droplets

Finn from Droplets

From a university project to a game engine prototype to its recent launch as a JUCE plugin, Finn Mitchell-Anyon talks the evolution of Droplets, his physics-based sequencer, game vs. plugin dev, and the realities of “building in public.”

You originally made Droplets in Processing?

The origin was probably six years ago now for a university project. It was in P5.js, which is like the JavaScript equivalent of Processing.

The project was to create some sort of musical interface. For some reason, the first thing that came to mind was this Nintendo DS game called Electroplankton. Which has the same sort of concept of like, a physics simulation where you adjust the parts and it leads to these emergent musical sequences.

I’m super into it. It reminded me a bit of the OP-1, the sequencer where it drops balls into the rotating hexagon…

Tombola? Yeah, that’s one of the things people often tell me it reminds them of.

I don’t have anything else like this on my computer, I was pretty pumped to play with it. You first made this as a prototype. What made you return to it? You wanted it in a DAW?

I ran into my lecturer a few years later. He told me he had been looking into how to make VST plugins. He said that the thing that I made was one of the first things that came to mind. That was probably the first time I’d really considered its application as actual music production software as opposed to just a fun toy for anyone to mess around with.

I made a second iteration of it using Godot, actually. I spent a fair bit of time on that. And then midway through that process realized it was kind of silly and I should just be focusing on making it an actual VST plugin.

How did it go in Godot? I know Colugo is making a DAW in Godot. Is it pretty fun to work with?

I kind of ended up hitting a few walls with the audio stuff. I’m sure if you go a bit deeper into the actual engine code those are issues you can overcome.

But yeah, when it came to sample accurate timing and stuff, that’s where I started hitting a lot of issues. Some of the inbuilt audio effects were not quite optimal.

I sometimes daydream about how life would be working in a game engine. They are optimized for fast cool graphics, things that can be harder to do in plugins without dropping down to OpenGL — which I guess is what you did in the end?

Yeah, I ended up going for a hybrid of OpenGL and JUCE graphics. I spent a lot of time moving stuff back and forth between OpenGL and the software renderer. In the end, what I landed on was “everything is the software renderer except for the actual droplets and the waves.”

Ah, so even the bars in the UI are JUCE rectangles?

Mostly because OpenGL was quite hard to write compared to JUCE graphics. It simplified matters a lot, doing as much as I could using JUCE graphics.

I really like the wave effect and immediately thought “This is not the software renderer.” I guess these days there’s this also the other route of spinning up a Web View and then running WebGL.

Yeah, true, I never actually considered that.

Did you take a break after Godot or did you plunge right into JUCE?

I think when I had this revelation that I needed to start working on JUCE it was probably like, 11pm and I immediately got out of bed and started dabbling. This was the first time I had used C++, so yeah, it was pretty overwhelming initially. I kind of had C# experience and this idea that it couldn’t be too different.

I like the optimism!

Yeah, it was definitely a steep learning curve!

Did you go through any resources, or just put it together piece by piece.

There was a YouTube series I found quite useful for a lot of stuff when I was starting out: The Audio Programmer. Once I had a bit of a firmer understanding of how C++ works, the JUCE documentation mostly.

Outside of OpenGL, were there show-stopping moments or was it pretty smooth sailing?

One of the biggest show-stoppers was when I’d been working on it for six months and was pretty sure I was going to release it in the next couple of months. But at that stage, it was just a MIDI plugin, so all it would do is send MIDI out to other instruments.

A friend suggested it would be great if it also had an inbuilt synthesizer, which in my head I thought “Yeah, I guess it would make it a bit more approachable for other people.”

I thought it would be relatively straightforward for some reason, but it turned out to be another year. Turned out to actually be a lot more work than the rest of it.

Total tangent, but I saw that you’ve done some game programming stuff too. I always think “the only thing more time consuming than audio dev is game dev.” Would you say that’s about right?

Yeah, for sure. I have started a couple of game projects just for fun, out of curiosity and kind of got pretty far into it before realizing the amount of work I actually need to put into this to make it “a thing” was just beyond what I’m actually willing to invest.

Obviously with game development, there’s so many different aspects of it. Same with audio programming as well, I guess.

Was the goal from the start to sell Droplets? What were your aspirations?

Honestly, no. When I started, I had no financial goals. It just seemed very cool and exciting to me to turn this thing into an actual program.

At some point I realized I’ve already sunken so much time into this, I probably do need to actually try and figure out how to market it and make it a worthwhile use of my time.

How did you choose your pricing?

I had a lot of uncertainty about that. Initially I was thinking like, five to ten bucks. I only really landed on $20 because I’ve been working on it for a year.

$20 is still pretty low compared to a lot of plugins. I guess the reason I went for $20 is because is because it’s made by me, I’m just one guy. I don’t have a team I have to pay. Also, I wanted to price it relatively low just because it’s pretty different to any other kind of plugin. Like, if you’re releasing a wavetable synthesizer, it’s pretty easy to compare, just look at what Serum costs and get an idea of what people are willing to pay for this.

Whereas with Droplets, it’s a bit more of a risk to buy it, because people have no idea whether it’s going to fit into their workflow or if it’s just going to be something fun to mess around with. I was more interested in a lot of people trying it out.

I like the pricing, it was an easy purchase for me. What made you go with Gumroad?

Just simplicity. I picked them like, a month before. I’m very happy with Gumroad. I didn’t want to spend too much time on the admin of a storefront.

Are you still working on it or are you working on new stuff now?

I have a big list of things I want to add in a future update. At the moment I’m taking a break because it’s been essentially a year of my life where it’s all of my free time. I’m enjoying stepping back from it for a while.

Mostly what I want to add is kind of features relating to just like being able to automate more of what’s actually going on in the environment.

I’ve got feature questions for you! Are there any plans to be able to choose the pitch of the bars, make them independent from their sizes?

[laughs] People have asked me this a lot. When you’re making something, you really don’t have that perspective of like what people are going to actually want. I’ve been a bit stubborn about it, honestly.

This is what I figured the case was! I smelled the situation! [laughs] Because the size of the bars is the concept of the whole piece…

Yeah, it’s a very beautiful thing to me that a small bar is higher in pitch than a bar that’s large.

My petition is: I want to build something with lots of small bars, but have it be more musically diverse than if there were all high pitch — lots of small bars with intricate interactions.

I understand the appeal.

[laughs] Whatever, I’ll deal with it...

[laughs] I’m considering it. I’m coming around!

Have you thought about having a free trial?

Yeah, I probably do want to do that. Honestly, I had no idea what to expect when I released it. I was kind of thinking it’d be cool if I sold like, 100 copies.

After releasing it and just seeing the feedback from people being so positive, it definitely boosted my confidence a bit. Yeah. It made me sort of realize that, oh, this actually is something that other people think is cool.

So, yeah, a free trial is more something I’m feeling now.

While I’m grilling you on features — the “wind” in Droplets is my favorite feature right now. Is it like a kind of LFO?

Yeah, it’s kind of noise. It’s semi-random. It’s not just a sine wave going left and right.

When I make something with the wind, it feels like I’m easing back and forth. I love it, it’s really cool.

Yeah, that’s actually another feature I want to add. Maybe having different wave shapes for the wind itself. Like, maybe you can make it a square wave so it just goes fully left and fully right.

The wind blowing things off to the right hand side

Are there plans to have other objects besides bars?

People often suggest that. I’ve had a few different ideas. One is like, some kind of object that sends MIDI CC. My first idea is like a water wheel. So you can link it to a parameter and then the more droplets are passing through, the higher that parameter will be.

Another idea was a fan, and maybe you can control the strength of the fan with MIDI CC.

Those sound like fun!

Whenever I have an idea for a different element, I spent a lot of time considering “What does it add from a musical perspective?” A fan: I wonder is that any different to just changing the angle of a bar? But at the end of the day, it’s just fun to mess around with.

In the Godot version, the bars would always be percussive tuned instruments, but I also had these drums, which are like circles And then these triangles which would be more like unpitched percussion like hi-hats or whatever. Translating that into the VST plugin is kind of different I guess, because you’d have to setup the different synth voices or different MIDI channels for each object.

Ah, you could only do it with your internal synth, otherwise it’s complicated to manually hook up?

Yeah. What I’m thinking for MIDI is eventually adding a channel to the dripper itself. So then every bar that it will hit, the notes get sent to that specific MIDI channel.

Ok, enough grilling about all the things you’re supposed to do next! What about all the other stuff you’re into, like sound design, music, and game programming. I checked out your Reorientation Week play-through. It’s like a gravity gun, the game looks pretty fleshed out. It’s a Portal homage?

It definitely takes a lot of inspiration from Portal.

I made that game for a uni project when I was doing media design. Then after that, I actually decided I wanted to do game audio. So, after finishing my degree, I moved into music composition and ended it up just like for a project just writing the soundtrack and sound design for that game.

It’s got everything. I love the sound effects and music, especially the music kicking in when first picking up the gun. It’s exciting.

Yeah. That’s one of the most exciting things to me about game audio, that interactive element of it. The subtle ways you can have the music transform in relation to what’s going on. That’s why I was very excited to investigate how you might like invest and implement an adaptive music system into that game.

That’s cool. Did you use audio middleware like Wwise?

I was using FMOD for that one, I think.

Whenever I run into Wwise or FMOD, I look at them and think, “Wow, this is like learning a new DAW, but times 10.” It’s got all those additional programmer-y elements to it. Feels kind of daunting.

Yeah. Wwise is a bit more intimidating, but FMOD’s kind of designed to look more like a DAW. Whereas Wwise doesn’t really try to trick you into thinking you’re using a DAW.

Do you plan on doing more game audio stuff in the future?

Yeah, I’m doing game audio stuff at the moment, actually. My job is actually audio programming, mostly for games. They’re an audio company and they get contracted by game studios or otherwise for audio design and implementation.

And a friend of mine is making a game, kind of like a physics game. And I’m actually creating like, a music system, which is conceptually pretty similar to Droplets.

That sounds awesome. Best of both worlds.

Yeah, more of a gamified version of it, where you’re trying to get these objects from point A to point B and arranging parts on the level. Whenever an object interacts with one of these parts, it’s going to trigger a sound effect. And that sound effect kind of like actually plays into the music.

What are you using for that, programming-wise?

That’s in Unity, so C# and then we’re using Wwise.

There’s not much overlap between people who make plugins and people that do game audio stuff. There’s so much opportunity there.

Yeah, it’s interesting because that’s something I had a lot of anxiety about for a while. I felt I was maybe not focused enough on one thing. I should either be putting my energy into music or into game audio. It feels quite cathartic that it has kind of materialized in the form of Droplets, an intersection of different interests.

I definitely don’t feel like the world encourages people, especially programmers, to be generalists. There’s every incentive to be a specialist. One has to to grow and protect that fragile part of yourself that believes that one human is allowed to do a couple of different things.

I’d probably be a way better programmer if I just did one thing, or I’d be way further along in music if that was all I focused on. At the end of the day, I get bored of doing one thing for too long.

Identity-wise, how do you think about it? Do you think of music as your main thing?

Early on, everyone kind of knew me as a music person, so I was quite resistant to that identity and wanted to be known as someone who’s just generally interested and good at a lot of things.

I’ve almost considered having different identities and keeping those separate. Like, for creating a musical identity, I’m kind of like, “Do I want people to know that I’m a nerd as well?”

Right, right. Very relatable! You posted a lot of in-progress stuff on Twitter and Youtube. What was the strat there?

[laughs] I really had no strat. I probably had like, 50 followers on Twitter. I’d been working on Droplets for a couple of months and just figured I might as well share this somewhere. I posted on Twitter and places on Reddit. I really thought this was just something that was a weird interest of mine that maybe a few people would think was cool.

I was pretty surprised the next day to see those posts had done really well. A lot of people were asking me when it was going to be released. Which was pretty overwhelming, because I really had no idea. And suddenly I felt like it’s kind of gone from just being my personal project to being something that people are invested in.

It was a weird mix of exciting but also pretty stressful.

I guess you kept posting after that and showing your progress?

I had a goal to post on a weekly basis. But I kind of found the more time I spent posting, the less time I was actually working on the thing, which was making it take longer. I think my posts dwindled over time until I was pretty sure I was actually going to release within the next few months.

I also publicly post about the synth I’m building but have slowed down recently. The problem for me is that I start “building to post.” I’m like, “I gotta get this feature wrapped up and it has to be nice enough to make a video.”

I find it very stressful trying to capture a good demo. I have very perfectionist tendencies. I’ll spend hours just trying to get the right footage.

Good to know it’s not just me! I do feel like it’s rewarding. My project is taking quite a lot of time and now people are like, “I keep seeing this, why isn’t it released?!”

[laughs] They actually get angry! You suddenly feel like you owe people something.

They don’t get it. It’s really hard. If I released it now, they would be even angrier because it crashes every 10 minutes! [laughs]


Droplets 1.1 is now available. Finn was interviewed by Sudara, who is (slowly) building an additive synth.

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