Live data from Hacker News

Elementary Audio: a modern platform for writing high performance audio software

elementary.audio

41–50 of 110 posts

Re: Elementary Audio: a modern platform for writing high performance audio software

#41

Maybe I'm missing something from my quick read, but the idea of using this for plugins seems like a real misfire. I'm curious whether the devs come from the pro audio world at all. It's one area where prioritizing for development time by using high level garbage collected languages just isn't done because your user is always concerned with how many instances they can run and what the lowest latency they can get is, a…

my friend is running an independent studio, i'm a bedroom musician, and we're planning some elementary plugins together. we tried some stuff with max and it wasn't expressive enough, we tried the steinberg sdks but they were too much of a lift, elementary is good enough for our workflows and in that perfect zone with enough control and enough familiarity that we feel we can be productive. we'll see in due time if it's too good to be true, but we're excited!

Re: Elementary Audio: a modern platform for writing high performance audio software

#42

Earlier quoted context omitted.

It does say you can make plugins, but the link doesn't work. It would be huge if you could make cross-platform AU/VST*/AAX without the costs of JUCE, but I suspect that isn't on offer here.

Last time I checked, a perpetual JUCE license was priced similar to 3 days from a C++ freelancer. I've never heard it being called out on price before.

It's changed since I last looked. J V4 Used to be $999 for solo devs (2016), now J V6 is $800 with up to $500k annual revenue.

And there's a free tier that allows up to $50k annual revenue.

That is indeed pretty affordable.

J V3 used to be more than that. I remember looking at it and writing it off for cost reasons, but that was quite some time ago.

Re: Elementary Audio: a modern platform for writing high performance audio software

#43
post #11

So with this I could make some fun js audio stuff? I dont really get it, why should I use this instead of howler js, or are they even comparable. either way seems pretty interesting and there is a free/lite version

the webpages require a little digging, but they have an examples page. looks like it's a set of dsp functions where the filter graph is constructed by composing the functions in functional style and then passing it to a render function at the end. so kinda like big data style composition of functions (like the scala stuff people often write to run on spark clusters) but with dsp/audio building blocks running in the b…

thank you

Re: Elementary Audio: a modern platform for writing high performance audio software

#44

Earlier quoted context omitted.

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 Yo…

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 the topic you are interested (C++ audio engine as WASM), you should check these two: https://github.com/frantic0/sema-engine https://github.com/micknoise/Maximilian For those language you mentioned csound, supercollider, Chuck (should ad…

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.

1. https://github.com/supercollider/supercollider/issues/5224

2. https://github.com/supercollider/supercollider/pull/5571

Re: Elementary Audio: a modern platform for writing high performance audio software

#45

Earlier quoted context omitted.

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 Yo…

How about Faust? I haven't studied it in detail but apparently they are very active porting it to different platforms including wasm

Re: Elementary Audio: a modern platform for writing high performance audio software

#47
post #8

Earlier quoted context omitted.

It does say you can make plugins, but the link doesn't work. It would be huge if you could make cross-platform AU/VST*/AAX without the costs of JUCE, but I suspect that isn't on offer here.

still not convinced you can make cross-platform plugins without JUCE by using iPlug, Faust or even Rust the selling point of this seems to allow js/web developers to build plugins and we already know what happened when web developers were allowed to build desktop apps (Electron) luckily given real-time and cpu constraints this might never happen to Audio Plug-ins

You can make plugins in Faust, but it's not a super smooth process. iPlug is the nicest option.

I agree about the js though. Even if it's a reinvention of web audio with a C++ backend, js and DSP just don't feel like a good fit.

And I would be surprised if the UI side wasn't limited in the way that full native isn't.

Re: Elementary Audio: a modern platform for writing high performance audio software

#48
post #4

so this is basically a paid Web Audio API wrapper?

It does say you can make plugins, but the link doesn't work. It would be huge if you could make cross-platform AU/VST*/AAX without the costs of JUCE, but I suspect that isn't on offer here.

Support for LV2 is landing in JUCE 7 apparently.

Re: Elementary Audio: a modern platform for writing high performance audio software

#49
It's hard to know what to say.

> The conventional approach to writing audio software is an challenging process requiring expertise in a wide breadth of topics– C++, multi-threading and thread safety, lock-free programming, and realtime thread safety come to quickly to mind, and we haven't even mentioned digital signal processing itself. Moreover, the tooling, workflow, and developer experience that we have in this approach pales in comparison to that of the web software industry, for example. All together, the reality of these complications is that the conventional approach for writing audio software is difficult and time consuming. We believe it doesn't have to be that way.

This is then followed by a screenshot of some code that looks like a SuperCollider script from 15 years ago.

There are at least a dozen audio "scripting" languages that free someone from all the issues mentioned above. Many have been mentioned in the thread already. The only things that Elementary Audio appears to have in its favor are that it leverages JS and it runs in the browser (sort of).

For some people, those two alone will be interesting. Have at it, people!

But for people who write plugins designed to run inside DAWs, or modules inside Rack, and in particular for the people who write DAWs or Rack (or Rack-like things), this is of approximately zero interest. It's a web-centric version of SuperCollider, which is cool but ultimately so bounded by the limitations of the platform that for many things, SuperCollider or something similar remains more powerful and more flexible.

Re: Elementary Audio: a modern platform for writing high performance audio software

#50

Earlier quoted context omitted.

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 Yo…

How about Faust? I haven't studied it in detail but apparently they are very active porting it to different platforms including wasm

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.

[1] https://faustide.grame.fr/ [2] https://faustplayground.grame.fr/

Post reply on HN