I can no Longer Actively maintain Libaudioverse

I'm going to cut straight to the chase. I'm no longer able to actively maintain Libaudioverse. I'm currently in the process of refunding all GOFundMe donors, but this isn't automated so it will take some time.

When I started the GoFundMe, I thought that there was a reasonable chance of reaching the goal, but this sadly proved not to be the case. I also thought that I would have time nonetheless, and could finish important funcionality regardless.

But then my life got complicated.

In July, a job opportunity I couldn't pass up came my way. I now have a 6-figure salary and a 40-hour work week. After accounting for self-employment taxes and GoFundMe's fees, what I'd get is equivalent to less than I make in a week. Consequently, taking a few months off isn't going to happen.

In October, I found out that someone who is all but family had cancer. This was then followed up by learning what it's like to help someone through Chemotherapy. This wasn't as bad as it could be and we're past the scary parts, but it went through Christmas and is still ongoing.

In addition to all of this, I'll probably be moving within the next 6 months.

I keep waiting on my life to slow down, intending to work on it then. But this is not going to happen.

Everything that has to be done to get Libaudioverse to 1.0 takes a week. There's more than a few. I need 2 months.

I'm not going to get 2 months.

So what does this mean for the future?

I expect everything in Libaudioverse that currently works to continue working. What exists is relatively stable, and Microsoft rarely changes the underlying APIs. They've only done it once in the entire history of Windows, and even then old software still works but with more audio latency.

I am going to maintain it as I'm able. If I have the time and desire, there's a bunch of stuff I still want to do to it--and some of it is stuff I haven't seen done before, most notably a much better parallelism design.

As my life becomes more stable and predictable, I'm going to try to begin focusing on smaller projects outside work. If I find stuff that can be done in a few days, I can find a few days to do it. Libaudioverse is an order of magnitude bigger than most of the dependencies of the Python web stack, and also written in C++. C++ is maybe the hardest programming language to get right, possibly tied with C.

There's longer term projects I can do that are a bunch of smaller pieces that are individually useful, for example my pipe dream of writing a parallelized graph database in Rust (which requires 4 or 5 libraries, possibly including Fastnet if I want to go there). Small doesn't mean meaningless. I also want to get back into contributing to the Rust compiler and standard library. I can't do something on the order of struct field reordering, but there are lots of smaller but important issues.

There's also a lot I can blog here. This blog has been sorely neglected. For one thing, writing up how some of Libaudioverse works and what needs to be done might let someone else maintain it. On that note, if you're interested in maintaining Libaudioverse and have good C++ knowledge, I can walk someone through a lot of it.

I want to close on this note. When I started Libaudioverse, the only other real option for HRTF that didn't cost a lot of money was OpenALSoft. There weren't many options for production-quality audio synthesis--just research-oriented tools. Now, every platform but Linux has multiple good implementations for this sort of thing, and you can even get it in the web browser.

This means that, for a while, I was ahead of everyone. If I ever need another job, I get to claim that I independently designed most of what's in WebAudio on roughly the same timeline and as an individual. Though I can't finish the project, I think this is still a major personal win.

It was a good run and I'm sad to let it go, but it's time to move on.