Live data from Hacker News

Soul – A language and IDE for audio coding

soul.dev

61–70 of 97 posts

Re: Soul – A language and IDE for audio coding

#61

Earlier quoted context omitted.

Audio dev has always been insanely hard - that's part of the motivation behind creating this! It's hard because you need some serious mathematical skills to understand the DSP itself (that's the bit I'm lacking in..). Then if you're building a "real" product, you're going to have to write in C++ and have a rock-solid understanding of concurrency, real-time coding and many other very tricky subjects which take huge am…

I wonder if the SOUL team has considered looking at Julia, which aims to solve the two-language problem, in which programming languages are either fast or easy. It's in the context of scientific computing, which is usually almost entirely about throughput and not about latency. But I think there's a lot in common.

At a high level it might seem like that, but there's a big difference between "fast" and "realtime". We need to go fast, but the main problem the language needs to solve for us is to break the work down into a steady, realtime stream. Overall throughput is Julia's strong point, but that's not the same thing at all.

Re: Soul – A language and IDE for audio coding

#62
I recall seeing Soul pop up on HN before, and at the time I was critical of it for being announced way too early (no working examples or even any indication of what the code might look like). This is much better, and it's good to see that it's actually progressing instead of being yet another case of vaporware.

That said, still disappointing that there doesn't appear to be any info on an actual compiler or runtime or however this is supposed to be used in actual projects; the editor configs and code samples are a start, but kinda useless if the only way to actually put 'em to use is to use a buggy web app :)

And speaking of "buggy web app", mousewheel-scrolling in the playground seems to be entirely broken on Firefox on Linux. Apparently this is true of all instances of Microsoft's web-based "Monaco" editor widget (on which the Soul playground appears to be built). What the hell, Microsoft?

Re: Soul – A language and IDE for audio coding

#64
post #55

Any info on the motivation for making an entire language instead of a library for an existing language (e.g. for C, Python, or Go)? Especially if the syntax mimics C-like languages, what important advantages do we get?

oh.. I should also mention that we don't expect it to replace all the other audio systems and languages that are already established and have large user-bases. (At least not overnight ;) )

..but we are attempting to do something that nobody else is, which is to provide a platform they can use as a target.

If we can do the hard work and graft of turning this into a super-portable runtime that can target whatever low-latency hardware the user has (and create a market for new audio accelerators that don't yet exist), then we expect it to be attractive for all those existing frameworks to use SOUL (or our IR) as the thing they emit, rather than using LLVM's JIT or WASM or just interpreters as they do now.

Re: Soul – A language and IDE for audio coding

#65

Just for the sake of completeness and for those new to the topic, here are some mainstream audio programming languages people might also want to take look at: - Csound This is one of the first ones, a little bit dated now but there is ton of material and nice books - Pure Data (max/msp) Graphical audio language, also popular and very nice for beginners - Supercollider Object oriented platform for audio synthesis (sma…

Also Faust (the doc is totally awesome : https://faust.grame.fr/doc/manual/index.html#quick-start) and - shameless plug, a project I work on : https://ossia.io which is a merge of the sequencer & dataflow paradigms

Re: Soul – A language and IDE for audio coding

#66

Just for the sake of completeness and for those new to the topic, here are some mainstream audio programming languages people might also want to take look at: - Csound This is one of the first ones, a little bit dated now but there is ton of material and nice books - Pure Data (max/msp) Graphical audio language, also popular and very nice for beginners - Supercollider Object oriented platform for audio synthesis (sma…

Another one to add to the list is Faust (https://faust.grame.fr/) which has great support for cross compiling to other languages (C, Java, wasm etc)

Re: Soul – A language and IDE for audio coding

#67
post #52

Just for the sake of completeness and for those new to the topic, here are some mainstream audio programming languages people might also want to take look at: - Csound This is one of the first ones, a little bit dated now but there is ton of material and nice books - Pure Data (max/msp) Graphical audio language, also popular and very nice for beginners - Supercollider Object oriented platform for audio synthesis (sma…

Sam Aaron (original dev behind Overtone) has been focused on building out Sonic Pi ( https://sonic-pi.net/ ) for a few years now and it's an amazing tool aimed at simplicity (literally aimed at ten year olds) and power (used for gigging).

Very nice, thanks for the great info.

Re: Soul – A language and IDE for audio coding

#68
post #55

Any info on the motivation for making an entire language instead of a library for an existing language (e.g. for C, Python, or Go)? Especially if the syntax mimics C-like languages, what important advantages do we get?

We pre-emptively answered this inevitable question in the overview doc: https://github.com/soul-lang/SOUL/blob/master/docs/SOUL_Over... The main TL;DRs are: - this needs to get JITed to compete with C++ performance, so dynamic and interpreted languages are out. - it needs to stop people doing anything which is real-time unsafe, so any language which involves a heap or GC is out - it needs to be secure enough to not p…

[deleted]

Re: Soul – A language and IDE for audio coding

#69

Earlier quoted context omitted.

I wonder if the SOUL team has considered looking at Julia, which aims to solve the two-language problem, in which programming languages are either fast or easy. It's in the context of scientific computing, which is usually almost entirely about throughput and not about latency. But I think there's a lot in common.

At a high level it might seem like that, but there's a big difference between "fast" and "realtime". We need to go fast, but the main problem the language needs to solve for us is to break the work down into a steady, realtime stream. Overall throughput is Julia's strong point, but that's not the same thing at all.

I would argue that Julia's strong point is generating specialized code, and facilitating generic programming. Throughput is definitely the driver, but I think several aspects of Julia's design could benefit real-time programming as well.

Currently, there are many blockers to using Julia in real-time application, such as dynamic memory allocation and lack of thread safety. But I find it promising that a subset of Julia could be used for real-time programming.

Re: Soul – A language and IDE for audio coding

#70

Earlier quoted context omitted.

Yeah, we made both of those assumptions. But it's apparently less true of the latest generation of compute engines. We probably won't bother with CUDA, but Metal is certainly a viable platform to try. It's one of those things where nobody really knows how it'll do until you try it. Also, we do know a few people who want to use SOUL to write audio code which does need high parallelism. It's not a super-common use-case…

I hope you'll consider writing up your results in a blog post or something! As I just mentioned elsewhere in this thread, I have experimentally found latency with Metal compute to be too high to be feasible, but I would dearly love to be proven wrong, if there's a trick I'm missing.

Yes, we'll certainly be writing it up. Similarly i'd be interested in reading about your experiences attempting the same if that's available.
Post reply on HN