Interview with David Hilowitz

Composer, YouTuber and Plugin Developer are just a few of the roles David Hilowitz successfully dances between. The JUCE team talks with him a few weeks after his release of Refractions, a unique effects plugin which began its life as a humble 2 to 3 hour prototype.

You release sample packs. You run a sampler ecosystem. You run a successful YouTube channel and a Patreon. You compose. How is this possible?

Well, it's possible because I dedicate less time to everything than I should!

[laughs]

Which is to say people are emailing me constantly about the sampler and I'm only able to answer emails basically one day a week. And it's just constantly switching. A revolving schedule. It's rotating.

Making a video takes between five and six days. And when I'm doing that, that consumes everything. After I finish the video, I spend five or six days doing software stuff; programming, JUCE stuff. It's just on and off, on and off.

So you're not context switching within a day.

Yeah, if there's something serious like a crashing bug or something, then I'll switch. But if it's just "it would be nice to have this feature" or "I can't figure out how to use this plugin in GarageBand" I'll generally wait until my administrative email day comes up.

That's cool, I like this ruthless time-boxing, especially for email.

It's brutal. I think also because of the YouTube thing, I get so many emails from extremely nice people who have offers or they just want to say nice things or they have a question. And it's painful not to be able to answer them immediately. Like, you want to...

Did this situation sort of creep up on you or was there a moment where it went from "possible to inline everything" to impossible?

For many years, I was a software developer (not in the audio space). I was just working for different startups basically. On the side, I was composing for films.

And then I started doing YouTube videos. They weren't like the kind that I'm doing now. They were more instructional videos about how to make Kontakt instruments, things like that.

Slowly the standards on the videos went up. I had one that did really well. And it gave me a taste for what it could be. I was like "Oh, I've been going at this a little bit wrong." And this one, which had a slightly different format, seems to have gotten a lot more traction than the previous ones.

And I realized, okay, I've been very techie in the videos. I basically was imagining an audience of about 1,000 people. I could be extremely technical. But that also limits the audience.

Your recent videos — especially the ones about discovering instruments — have a very documentary-esque vibe about them. I was wondering if that was a particular style that you chose or if it's just what comes most naturally to you?

Around 2015/2016 I had a podcast. I had five episodes. My dream was that it would get picked up by Gimlet or one of those companies. At that time there was this podcasting boom that was happening. There's sort of a format for how those kinds of stories get told. So I learned how to do that just on my own.

And then I saw this tweet from Roman Mars, who's the podcaster who does 99% Invisible. And the tweet was "the podcaster has only one natural enemy, the YouTuber." He was kind of joking. I probably had the exact opposite reaction from that you're supposed to have. I was like, "maybe I should be a YouTuber..."

And all the time of course, I was tinkering with audio software in the background. Until about 2019, I didn't release anything. I had downloaded JUCE. I was playing with it. Trying out things for myself. But I hadn't actually made anything.

Do you see yourself as a generalist?

I kind of think of it as: you have all these different things that you do, you get better at each of them incrementally. And then you switch, and do the next one, you move a little bit and then you switch. Everything that I do, I feel like I could do better in each domain.

But you do what you can and then move to the next thing. Next time I score one of my videos, I'll remember "last time that thing worked, I'm going to try that again because it worked better than what I was doing previously."

So there's some cumulative momentum that builds over the years...

Yeah definitely. For example — I'm going to date myself now — I first wanted to make an audio plugin in 1999. I was in high school and I downloading the Steinberg VST SDK. JUCE wouldn't exist for another few years and I wouldn't know about it for another 15. At the time, I had Visual C++ and I found somebody's random code out there on the net for a low-pass filter. I plugged it in, was able to build it, and it worked.

I was just like, "Where could I possible go from here?" I didn't understand the math behind any of the things. And I still don't. But I'm less worried about it now. The big realization for me as a programmer over the years is that you don't need to know everything, you know? Understand the stuff you need to understand and not more.

That's something I wanted to ask you about, because both Refractions and Decent Sampler have built-in effects, like reverb. Is this something boutique, something that grew over the years, trying out different algorithms, or how did you arrive at them?

I have a "Lowpass Filter Tester" and it has like nine different algorithms with a drop-down and a "Reverb Tester"... I've got a whole bunch of things like that. And the JUCE reverb is great, the one that was added in the DSP module.

Delays I rolled myself, but my JUCE projects folder is just dozens and dozens of different testers for different algorithms or experiment ideas I had. And that's what Refractions really was, "let me see what happens if I do this" and lo and behold it became a product, but that wasn't necessarily a forgone conclusion.

In your video for Refractions you mentioned spinning up the prototype up in like two and a half or three hours! We have to talk about your toolset. Is it with CMake or Projucer?

I'm using Projucer, just in Xcode.

I have a lot of code lying around at this point. Like, if I need something that's a synth engine... I made a little synth plugin before Decent Sampler called the Analog Coast that was basically just a standard synth plugin. I wanted to see, is [JUCE] a viable library for me? And it was.

One of the things that kind of pushed me was that in 2019 I was in London for six months with my family. I went to the Audio Developer Conference. Because I was like, "it's happening in the city where I'm staying. It's just a weird coincidence."

Wandering around there, I thought, "I should really give this a shot. I shouldn't just be a fly on the wall. I should really try to make something." So I made the synth plugin that month. It took about a month of evening programming. It was a very simple thing. And I was like, okay, that was totally doable. It felt so much more doable than it felt to me 20 years earlier when I had downloaded the VST library. Part of that was the toolset and part of that was just personal growth.

You realize that your skillset is actually good enough to do the thing even though it doesn't always feel like it is, you know?

That's cool that being in-person at ADC tipped the scales for you. Did you identify as a programmer? I'm asking because as a creative person, I initially had a hard time being like "I'm a programmer, that's my identity."

Culturally, I can't think of any industry that has changed more in the minds of regular people. In the '90s, there was being a Software Engineer, Office Space came out and it just seemed like the worst. Your life was going to consist of being in some cubicle somewhere. It was going to be a nightmare. And I was terrified of that. Coming out of school, that is not what I wanted. It was scary.

And then various different tech booms happened and suddenly there was this attempt to make software developers cool. It's the same people doing the same stuff, but there's a radical transformation in the public consciousness of how cool that thing is. I feel like I got to live through both of those different versions.

I never had real trouble with it, I love programming, I love computers. I never wanted that to be the only thing I did. But the actual substance of the work is something that I'm interested in.

Back to Refractions: I really enjoyed playing with it. I kept being surprised by how many different kinds of vibes I would run into. I kept feeling like I was making stuff you would like. It made me think about the concept of "meta-music" — how instrument and tool builders set the stage for music making. Do you have thoughts about this? Do you feel some.... responsibility?

I don't know if there's responsibility, but there's no question that's true. Once you get away from delay, distortion, the basic building block effects, and have these weird other effects that are combinations of different elements, it's taste.

I've done a bunch of videos for Chase Bliss. They definitely have a very specific aesthetic and kind of effects they want to make. I feel like it does come across from one pedal to another.

With me, I think that's definitely true. I'm only going to release something that I think is cool. And what I think is cool may not be the same thing that somebody else thinks is cool.

The UX is separated into "Basic", "Advanced" and "Editor" sections. What made you go with that, was it inspired by another plugin?

The dream (and I don't really know if I got there) is that you can have five or six knobs and that's everything a basic user would really need to control, to get cool sounds coming out of it.

And then, the fear is that you're going to show them too many controls, and they're going to get scared, and then they're never going to use the thing.

So my original plan was, okay, they'll start with the simple, then pretty quickly they'll graduate, and they'll want the advanced, and they'll want to actually tinker with it.

Let's talk about Decent Sampler. Was that a covid lockdown adventure? Or were you working on it beforehand?

Around 2004/2005, I saw that there was whole community of people making Kontakt instruments. And one of the real frustrations of it back then was that there was no way to redistribute them to people who didn't own Kontakt. And Kontakt was expensive. I was like "someone should make something free for that."

And then 8 years later, there were a bunch of different SFZ format players. Sforzando is probably my favorite. And that seemed pretty cool. It seemed like it was a step in the right direction. It was free. You could redistribute sampled instruments.

But there was no UI. A lot of the nice things about Kontakt instruments are the nice UIs that people make.

And you know, the way something looks is really, really important to whether or not somebody is actually going to use a tool. If they see a nice UI, they're going to want to use it. They're going to feel inspired to use it.

And I actually remember saying to somebody — I had coffee with somebody and I was like "I think there really needs to be a plugin that is basically is like SFZ but it has UI." And so I started looking into SFZ and decided basically to make my own similar format.

So the ecosystem is actually central to Decent Sampler. It wasn't just you putting out your favorite sample packs and saying "I guess I'll include other people."

It was a little bit of both, really. On one hand, it seemed like a lot of work to maintain the whole thing. There were a lot of pain points in how samples are distributed. With Decent Sampler, you can download samples right there in the plugin. That's not something I've ever seen before, where you can download content from the internet within a plugin.

A lot of things about the way sample libraries were being distributed frustrated me at the time. A lot of apps have like a program that you have to download and for some reason it's never up to date. It's like "download the special downloader program" and you've got like 15 of them for different companies. I was like "I do not want to be the 16th company to have a wierd app that is just another electron app that just downloads content."

Outside of downloading, were there other challenges with Decent Sampler? What about disk streaming?

Yeah, disk streaming took a long time. Basically in the end it's just like a bunch of threads that are pulling things off the disk on their own schedule. But it took a while.

Are you using JUCE's memory mapped stuff for that?

I am, yeah. I just added FLAC support and there's no memory mapped reader for FLAC. I don't know if that's by design or not. It's just using a regular disk reader.

Out of all of your endeavors, is there one that you see as "work work," either because it brings home the bacon or effort-wise?

I mean, the thing I like doing the most is the videos.

Yeah?

Yeah. I love making the videos. And I don't think any of them would work if I wasn't doing the other one if that makes sense. If my life were only making videos, I would definitely miss programming. Because it's so much a part of my creative process, you know?

I find that if I program for like four hours and then I work on music, the music is almost always better because I'm thinking about it logically a little bit. I'm not just like "that's a cool riff" and then forgetting about it. I'm starting to think about it like piecing together a puzzle, in a way. I've already gotten into this flow where I'm solving problems a little bit.

An ideal day (and I don't get to make music every day, necessarily) is where I get up early, do about four hours of programming and then switch and do an hour or two of music, because that hour or two of music will be really strong.

Wow! I feel envious, I'm the opposite. I like to start my day with music otherwise it's hard for me to get back to it.

I guess everyone's different. I've been happy when I'm able to do this. It doesn't happen as much as I'd like.

Right now now I'm working on trying to add time stretching to Decent Sampler. I've got three different possibilities for how to do it. I tried the first one and it didn't really give good enough results. So now I know in my head I have to do the remainder of the other options, otherwise I'm going to forget everything I was working on. That kind of context switching can be painful.

Is one of your candidates for that the Signalsmith algorithm?

It is, yeah!

Geraint is an amazing person...

The algorithm is great. But I still haven't figured out how to get it to interplay with disk streaming. I can't necessarily pre-render anything without knowing how much pitch transposition is going to be needed. Now I'm like, okay, well what if I just do this in little buffers and I just kind of stitch together the buffers? And I tried that, but now there's latency that's unexpected. So I need to figure out why there's latency. So my next step is like, I need to isolate the problem.

That's usually how I solve problems, to try to like make a little app that has just the code that I'm working on.

Yeah, isolating is efficient, even though it can feel bulky to have to step back.

At least it eliminates other factors that are in my code.

Anything else you'd like to get on record? We didn't really talk about the things you like about JUCE...

I couldn't be a bigger fan.

Having almost everything anticipated, like what you would need for an audio plugin. And the community is really good. The forum is really good. People are really helpful. It's really a great library.


Check out David's plugin Refractions.

David was interviewed by Sudara from melatonin.dev.

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

More "Made With JUCE"

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram