NoiseCraft Project Update

Two months ago, I wrote about NoiseCraft, the visual programming language slash modular synth that runs in a browser that I've been working on in my spare time. This is very much a passion project, but what I'm hoping to achieve with this is to build a small online community for the exchange of synth patches and musical ideas, and to learn a lot more about sound synthesis in the project.

Since the announcement, the project went on to get over 520 stars on GitHub, the app got over 66,000 hits and 155 new users registered accounts at noisecraft.app. The first thing I noticed is that the number of people who created accounts is much larger than the number of people who shared projects through the app. Maybe that's just because are too shy to share what they've working on. Maybe it's because I gave people the option to save projects to local files. Regardless, I'm going to keep that option because I think people like the option of being able to own their own project files, to own their data so to speak.

The project made it to Hacker News and I would say the reception to the project was generally good. I was very happy to see all the cool projects that were shared, but I was a bit disappointed to see that the project attracted only a few open source contributions. Multiple people complained that the user interface didn't behave like their favorite graph editor and suggested I should go try out for inspiration, but few people volunteered to pitch in and help. Some of the criticism was definitely valid and helpful, but I have to say, it's kind of hard running an open source project and after months of work, receiving mostly negative feedback. A lot of people are eager to criticize, but few people take the time to give positive feedback when things work well.

Here's some of my favorites among the projects people have shared:

In the last two months, I've made various incremental improvements to the app. I improved the help page, fixed a number of bugs, made ergonomic improvements to the UI, added a featured section on the browse page, implemented some new node types, and most importantly, got NoiseCraft to work on Firefox. The situation is unfortunately not as good on Safari. With some help from open source contributors, we found that there were at least 3 problems preventing NoiseCraft from working well there. Among other things, Safari's pointer capture API is broken. This API is several years old at this point and very commonly used, which makes it hard to understand why these obvious problems haven't been fixed. Safari doesn't have a public bug tracker that I'm aware of, which makes it hard to even report problems like these.

In terms of upcoming new features, I've been making incremental progress towards adding the ability to group multiple nodes into user-created modules. I think that will open up many interesting possibilities. Among other things, I'd love to be able to easily create something like a drum machine in NoiseCraft, with modules corresponding to different sounds or sound effects, which can easily be reused in new projects.

When it comes to attracting new users, I haven't been aggressively promoting NoiseCraft because there's always the sense that more could be done to make the app better, and there's a limit to how much free time I can spend on the project. However, I've been thinking that I might, in the next couple of months, create a small beat making contest with a small prize for the best entry.

If you think NoiseCraft is cool and would like to contribute, there's a number of issues on GitHub marked with the help wanted tag. I'm also very curious to see what you can create with the app :)