After 7 years in development, Anastasios "Taz" Brakis launches his next generation game audio product, SoundMaker. Taz started out as a game sound designer in 1999, dabbled in plugins and eventually settled into game audio programming, releasing Fabric, an audio middleware solution in 2012.
Sudara (from Melatonin.dev) speaks with him on the day his new product, SoundMaker, goes into public beta.
You're really releasing the beta today?
Probably in like 2 or 3 hours, depending. I'm making the release version now on our build server. So we'll see how that goes. It needs to pass before we release it.
I'm excited for you, it's a big milestone!
Yeah, there's not a lot of JUCE applications out there. There's a lot of plugins, but not at the same scale... It shows you that you can do a proper application. A full-blown app.
It's not me who did all of it. There were other people as well.
You have a couple employees?
Yeah, so we are six people. Not all of them work on SoundMaker. Some on the services side, some on SoundMaker. It kind of goes up and down.
Fabric 3 and SoundMaker has been in development for — I was thinking about that today — almost seven years.
It's a long time. It's been so long. There's a little bit of anticipation. A little bit of worry. I've worked on a lot of games. But it's different, this. It's something that you feel more. Actually, this should be a talk or something: the journey of releasing software. Because it's not just the technical aspects...
The emotional journey. I'm four years in on my main dev project. As the years go by, there's a very different flavor and color to the emotional feeling of the project. It's difficult to stay grounded. How did you do it for seven years?
There were many moments where it was kind of "this will never be released." There were moments like that.
How did you get through those moments? Did you just keep walking back to it?
I think it was more about "OK, we'll leave it like that for now. Don't overanalyze it. Don't get too carried away or upset about it. Just leave it." And circumstances change all the time. And they did.
It was something that I personally felt: I don't want to work on this anymore. It's too much. I couldn't see the end of the tunnel.
And then you leave it. That's the best thing you can do at that point, I think. Just leave it a little bit. I knew I didn't abandon it, in my heart!
The last two years, I know it's been slow, but it's been getting there. And then the last six months when everything comes together at the end it's like okay, the difficult part is finished. It's behind us.
Now obviously, there's the other thing which is like — are people going to use it? Is this going to be useful? You have that now. But at least there's that satisfaction of completing the project that you have a big investment in.
That's amazing to hear.
I don't know if that's something you want for a technical interview. But I don't see it a lot: what's the journey of releasing any product or plugin. Every software is the same thing. Hardware, physical, it's just the same process in a way.
I have a series of blog posts called "Developer Therapy." I find that I need to write about these different parts of the process and my strategies. Otherwise, I forget and go through the same cycles of "oh this is too big, it's never going to work."
What are your strategies?
You're the one releasing! You don't want my strategies, I want your strategies!
[Laughs] Ok, the other thing I have is perseverance. I don't have a lot of traits. But the one I realize I have, as I get older is perseverance. Maybe stubbornness, I don't know.
That's built into you, isn't it though? It's not something you've learned, that's just how you are?
What drove you to put Fabric out there originally? Was it just for your own needs, or were you trying to create a business?
I always knew I was going to gravitate towards business. It was always in my blood. I didn't know how to do it, or when it would happen, or how it would happen.
Up until 2010, I was working in games using existing audio middleware solutions, using FMOD. In 2010, we jumped to using the Unity game engine. It was growing in popularity. It was very easy to use. Very easy to prototype. But the audio support was very limited. Still is, to be honest!
And then the company that I was in closed [down] in 2011. And I thought well, I have a lot of knowledge of game audio middleware solutions. I've already learned Unity. There's not a lot of audio systems in Unity. It just kind of made sense to make a Unity specific solution.
And it was the right time. A lot of studios picked up Unity that didn't have audio support, so they started licensing Fabric. I think it's been used in 300+ games since then. Mainly mobile games. The company grew a bit, we started providing audio programming services for game studios.
Where does SoundMaker fit in?
SoundMaker uses the Fabric audio tech. All the same principles, components, the way you design interactive audio. But SoundMaker is more about the ability to package this into a portable format.
We have an editor where you can create interactive audio behaviors like engines, footsteps, explosions, whatever you want. And then you can package them. You can design sample libraries, package them and sell those libraries. So we have a SoundMaker player for Unity, VST and are working on Unreal.
I see, so you can design in one place and then reuse it in these different contexts.
Exactly. Without having to re-author it.
We're not trying to replace companies' existing audio solutions. Studios can use SoundMaker packs if there's something they need and they don't have the time to develop. Indies can use it because they don't usually have the budget to sit down and record engines for a racing game. They can just buy them. They are ready to be used in the games.
And because we have VST plugins as well, it can be used by linear production companies. If someone wants to make a promo video that has a car, they can use it straight away and layer it on top of what's happening in the video.
Has game audio programming changed a lot in the last 10-20 years?
It's definitely evolving. When I started, I was working on Playstation 1 and you had 512k of memory to put your sounds. I mean, uncompressed it was 2MB, but you had crazy limitations which made you do creative things, that's for sure. Now you don't have to worry so much about that. But on the other hand it makes people more complacent, a bit less efficient...
The sonic quality of games has been phenomenal. The content is much better quality. The technologies to integrate content into games is better. There's a lot more knowledge and experience. Middleware solutions are getting more reliable, you can throw a lot of assets at them.
It's much easier to develop something that is cross-platform between Windows, Xbox, Playstation. In the past, audio quality was very different between different platforms because they had different hardware capabilities.
I saw that your licensing model for Fabric is very indie-friendly. Is it based on revenue?
No, budget. It's a common business model for game audio middleware where it's based on the budget of the game. An indie will usually be less than 250k.
Game audio middleware is a pretty unique usage of JUCE. How did you get the confidence that yes, you'd be able to build this thing, run JUCE in the game?
We don't run JUCE in the game, I have to be clear on that! We use JUCE for the UI and in the VST wrapper.
However, the runtime version of it, the audio mixer, the thing that streams audio, mixes audio, processes audio — that's all proprietary, our own. It makes it simpler. It's more focused on games. There are some requirements in games in terms of performance, memory allocation, pre-allocation. Also to support multiple consoles, different platforms.
I know JUCE runs on Android and iOS, but we have to run on Playstation and XBox — and embedded hardware in the future.
That engine must be quite efficient if it runs on console hardware.
Yes, we have our own kind of caching system that we developed. In games, usually with audio middleware solutions, you have sound banks. You put your sounds into sound banks, you load that sound bank into memory, or you can stream things from that sound bank.
What we do (because you never know what you'll be loading) is have a big cache and you load things in the cache whenever you need them. You can preload things in the cache. Or preload a small section in the cache. Or pin things in the cache. And then when that is full and something else comes in, it evicts all the sounds that haven't been used.
What do you like and dislike about JUCE?
I like the simplicity of making UI components. I do like the ValueTree. There are things I don't like about the ValueTree, like when searching things on the ValueTree, you have to have your own system. It's a problem when you scale up. We have projects that have 20,000 items on them. And they are not like MIDI notes or something.
We now have the ability to render components inside of Unity and Unreal. So we don't have to duplicate our UI between all of those. I love the fact that the JUCE source code is available, we can modify it if we want to.
I don't really have anything negative to say about JUCE.
I desperately want some drama here. You are giving me none! [laughs]
There's no drama at all!
I mean, I was afraid that we were going to be screwed a little bit because they were bought. Because before JUCE, we were using Qt. I don't know if you're familiar with Qt.
Yeah, tell me about that.
It was nice. Open source. Nokia-backed (it was a very long time ago). I used it in tools in the game space. It was great.
And then Nokia sold Qt. That's when things went like "Ok, open source, we're not going to support it" and "if you want to use proper Qt, you have to pay a subscription. And if you don't pay, you can't use your application." So, that's ridiculous.
That was my only fear. Is it going to be the same situation? And we already had invested time to develop the editor, so we were committed [to JUCE] at that point. But no, that hasn't happened.
Do you run a fork of JUCE?
We use an old version of JUCE for SoundMaker. Because we only use the UI and everything we want to use is there and works. I want us to upgrade to JUCE 7 for the VST part. And actually we have our own CMake. So it's a debt that we don't want to pay yet.
You'd have to upgrade your CMake and then QA everything...
All of it. Exactly. And we will do it at some point. But our focus is to release it now, and once we release it, when we have a little bit of time to pay that debt, then we will pay it. But at the moment it's not top of our list. We have other things, way too many other things...
A lot of plugin devs I'm friends with, especially the younger crowd, see games as being an ultimate creative form of expression. They are in the audio dev world, half-wishing they were in the game dev world. Is there something about games you like in particular?
I always knew I wanted to be in the game space, since I was a little one. I had my Spectrum and Amiga. I didn't know how I was going to get there, coming from Greece where there was no game industry.
But yeah, I just love the audio in games. How it's put together and building that sonic virtual environment. That's what I like.
Back to the soft topics, the human topics: being in this niche, you probably don't have many peers. You run a game audio middleware company. How many of those are there? Like four?
Not a lot!
Well, there's more people that provide services now. In the last couple years, there's more people doing similar things to us. I don't know anyone doing exactly the same as we're doing, in terms of doing software and services at the same time. Do you want me to mention names, or?
I just want to know if you feel lonely, or—
No, I don't feel lonely. I have friends and colleagues doing services on the sound design side. I know people that have done their own business, so I can kind of go and say: "You know, business, ugh!"
And in terms of JUCE: one of our employees has done JUCE development for many years. He's the go-to person for JUCE and we learn from him.
And ADC is a good place to go and kind of share your thoughts about audio development and audio programming.
Well, it was good talking to you and good luck with the beta. I'm excited for you. This is a big moment, you should celebrate!
[Laughs] Yeah, we'll have champagne.
Check out Tazman Audio's SoundMaker Beta.
Have comments on this interview? Ideas for who we should talk to next? Let us know on the JUCE forum