What a crazy coincidence. I just spent the last couple of days doing a survey of audio engines with a mind to find those that could run in wasm.
Did you write your own engine or are you built on top of csound, supercollider, ChucK or something else? How do you compare against the higher level or pattern based implementations like Sonic Pi, Tidal Cycles, Overtone and Cabbage Audio? How about libraries like LibPD or even Max/MSP?
I was even considering this space myself and on my list of todo's was checking out the licenses of the above to see what the ramifications of deploying a commercialized version of them would be. However, I must admit that the market for audio software is incredibly split. On the one end are the high-end audio effects with eye-watering prices. On the other OSS end many of the devs are literally begging for scraps on Patreon barely making enough to survive. There doesn't seem to be an in-between. I am very curious what you believe your market will be.
You should check Glicol:
https://github.com/chaosprint/glicol
For the marketing part, frankly speaking, I don't know. Since most of these projects you mentioned are based on academics, including myself.
I definitely did checkout Glicol, sorry I didn't call it out along with the others but I wanted to focus one the "uses existing old-school C/C++ audio engine compiled to wasm as a server" question. I understand you wrote your own custom engine in Rust. I saw your post in the comment section related to Overtone and was actually going to reply saying to you that I appreciated your work. I think I watched all of your Youtube video demos, even the ones on QuaverSeries.
The other small project that was interesting to me (that seems to have partially disappeared) was Sporth. The webpage for that has an unfortunate message saying the project was taken down to respect csound community.
Wow, thanks for your interest! I haven't maintained QuaverSeries for a while as I kinda feel that there are some issues on Tone.js that cannot be fixed in the foreseeable future.
For those language you mentioned csound, supercollider, Chuck (should add Faust here), I think these languages focus more on different music programming philosophy. Of course, SC is probably the most famous for reusing its audio engine for other high-level langs like the Tidal, Sonic Pi you mentioned. Also, SuperCollider's scsynth can run in browsers now:
https://scsynth.org/t/webassembly-support/3037
If you are interested, https://strudel.tidalcycles.org/ is an ongoing work to port Tidal to browsers. Perhaps at some point it can be connected with Glicol audio engine.
That supercollider/scsynth wasm thing was actually what I was thinking about. Unfortunately the implementation is still in a fork and hasn't been merged upstream. [1],[2]
Thanks for the other links, sema-engine was new to me and not in my original investigation. I think I skimmed over Maximilian but it is probably worth a closer look.
One of the benefits of csound/supercollider in my mind are their existing communities and the number of available open source modules. I've seen entire repos full of .scd definitions which would give any project starting with supercollider as its engine a big head start. The main downside is the esoteric languages these projects tend to use, which is why I think there are so many projects that build on top of it. This is one of the benefits of the client/server model I suppose.
I also agree that this whole area is full of different philosophies. At the low end you have straight DSP kind of stuff which is mostly floating point buffer manipulation, FFTs/convultions, etc. and at the other you have sequencers, scale pattern generators and composition tools. And of course the live performance aspect comes into play as well as interfacing/syncing with devices/DAW using OSC/Midi. I'm very excited to see where it all is going to end up.
> At the low end you have ... and at the other you have ...
Totally missing out on the actual DAWs where most people do most of this stuff.
Yes, there is some interest in and use of standalone tools. But for all kinds of reasons, the majority of new audio software development occurs with the assumption that it will run within a DAW (or at least, a plugin host).
One of the reasons for that is to offload almost all of the architectural issues to the host, and leave the developer to pay attention to the sorts of things you describe in the paragraph I was quoting from.
For my personal interest (probably no where near the majority) I am interested in these libraries primarily for use outside of a DAW. I mean, I already have a wealth of plugins for most conceivable purposes to use in one of the several DAWs I have installed. I am also in no hurry to move the kind of things I do in a DAW to a web based app. And frankly, none of the examples I've seen so far come within a country mile of the audio quality of the higher-end plugins I have.
I'm interested in these libraries to see how we can expand on musical creativity outside of DAWs. The first thing that comes to my mind was the cute HTML 5 game Friday Night Funkin'[1]. Or games such as Lumines [2] where the rhythmic music is integral to the gameplay. And other kinds of interactive media where advanced control of synthesized audio might enhance the experience. I think it would be interesting to give people a simplified/gamified interface to a suite of audio tools with the intent to unlock creativity, especially aimed at a very young age (e.g. toddlers and pre-teens). This is a place I don't think traditional DAWs will ever attempt to target and where web-first experiences tend to do extremely well. Being able to quickly develop and deploy "good-enough" audio effects that have an element of interactivity for those kind of products/experiences would be nice to have.
I work on this space a lot, and maintain a couple of libraries you might be interested in. They are very much focused on light quick "good enough" web audio music/sound effects.
Excellent and interesting response! The idea of responsive audio within a browser-based game had slid right by my old-fart brain. Will be interesting to see how that turns out.
I have been playing with Faust and WebAudio lately. It works really quite well - e.g. the online Faust IDE [1] and playground [2] use the WebAudio/WASM implementation to run in the browser. The Faust team are currently working on moving to an improved WebAudio architecture (with support for WebAudio Modules etc.) but the current stuff should work well enough for most cases.
It’s a cool language too, very functional based. I’m a total newcomer to DSP but it was pretty straightforward to figure out how to build a simple synth in not much code at all after reading a few docs and looking at examples. There are loads of high quality implementations of effects etc. in the standard library and examples too so you can get something sounding pretty good without too much work.
Did you write your own engine or are you built on top of csound, supercollider, ChucK or something else? How do you compare against the higher level or pattern based implementations like Sonic Pi, Tidal Cycles, Overtone and Cabbage Audio? How about libraries like LibPD or even Max/MSP?
I was even considering this space myself and on my list of todo's was checking out the licenses of the above to see what the ramifications of deploying a commercialized version of them would be. However, I must admit that the market for audio software is incredibly split. On the one end are the high-end audio effects with eye-watering prices. On the other OSS end many of the devs are literally begging for scraps on Patreon barely making enough to survive. There doesn't seem to be an in-between. I am very curious what you believe your market will be.