Live data from Hacker News

Soul – A language and IDE for audio coding

soul.dev

31–40 of 97 posts

Re: Soul – A language and IDE for audio coding

#31

I think csound is mature system for programmatic generation of sound/music. How is this different from what csound is offering?

This is about building a cross-platform infrastructure that would sit below things like csound, Faust, and many other similar front-ends, and allow them to emit code that'd run optimally on hardware platforms other than just a desktop CPU, to get better latency and performance.

...and without wanting to "throw shade" at csound or anyone else, we think the SOUL syntax is much nicer to write of course :)

Re: Soul – A language and IDE for audio coding

#32
post #9

For anyone looking for more context see https://github.com/soul-lang/SOUL/blob/master/docs/SOUL_Over... and https://github.com/soul-lang/SOUL/blob/master/docs/SOUL_FAQ.... To quote the overview: "The SOUL platform is a language and an API. The language is a small, carefully crafted DSL for writing the real-time parts of an audio algorithm. The API is designed to deploy that SOUL code to heterogeneous CPUs and DSPs, b…

Exciting! The team behind it is partly from the JUCE team, it looks serious enough

Heh yeah, I have the pleasure of working with them, it’s pretty serious :)

Re: Soul – A language and IDE for audio coding

#33
post #21

I'm not sure if this is just related to my machine, but I couldn't get it to compile. POST https://media.noise.fm/soul net::ERR_CERT_AUTHORITY_INVALID (this looks very cool and I want to try it out)

Strange, our media.noise.fm ssl cert is issued by AWS, I'd assume you would have the necessary roots for that. I'll look into it further! What browser and OS are you using?

(Editied with resolution at the bottom)

Yeah AWS should work just fine.

I'm on macOS 10.14.4, and tried with the current version of Firefox, Safari, and Chrome.

Different reasons, but same result for all. That error came from Chrome and was the most descriptive. Firefox threw a CORS request blocking error.

Edit: Yeah and Safari is also throwing a cert error:

    [Error] Failed to load resource: The certificate for this server is invalid. You might be connecting to a server that is pretending to be “media.noise.fm” which could put your confidential information at risk. (out.wasm, line 0)
Edit again!: RESOLVED

I simply won't be able to access this from work. I can't see the noise.fm root path as the corporate routers here are blocking it due to "Domain Parking". (eyeroll) I'll check this out at home later on!

Thanks for checking in.

Re: Soul – A language and IDE for audio coding

#34

Earlier quoted context omitted.

Please consider making dynamic graphs a key feature for the 1.0 release! I like how easy it is to use SOUL to build simple processes, but I'd like it a lot more if I didn't have to specify my graph at compile time. A few more questions: - How will the language/API/reference VM be licensed? - Will the API depend in any way on the JUCE ecosystem? - Do you expect users to bundle the VM with their plugins/applications or…

Not sure that being able to change the graph dynamically is a particularly good way to work with this kind of thing. In almost all synths, and even DAW engines, they only modify the graph when you modify the project, not while things are running, and that's when we expect you'd do a SOUL recompile. There's a much longer discussion to be had over this which I won't dive into now, but we have thought about many possibl…

You mention custom DSP hardware licensing ... any reason not to target the GPU directly using CUDA or whatever?

Re: Soul – A language and IDE for audio coding

#35
post #21

Earlier quoted context omitted.

Strange, our media.noise.fm ssl cert is issued by AWS, I'd assume you would have the necessary roots for that. I'll look into it further! What browser and OS are you using?

(Editied with resolution at the bottom) Yeah AWS should work just fine. I'm on macOS 10.14.4, and tried with the current version of Firefox, Safari, and Chrome. Different reasons, but same result for all. That error came from Chrome and was the most descriptive. Firefox threw a CORS request blocking error. Edit: Yeah and Safari is also throwing a cert error: [Error] Failed to load resource: The certificate for this s…

Aha! Thanks for investigating.

Re: Soul – A language and IDE for audio coding

#36

Earlier quoted context omitted.

Not sure that being able to change the graph dynamically is a particularly good way to work with this kind of thing. In almost all synths, and even DAW engines, they only modify the graph when you modify the project, not while things are running, and that's when we expect you'd do a SOUL recompile. There's a much longer discussion to be had over this which I won't dive into now, but we have thought about many possibl…

You mention custom DSP hardware licensing ... any reason not to target the GPU directly using CUDA or whatever?

Our original thoughts on that was "nah, that'd be silly because GPUs are the wrong shape for audio workloads"

..however, having a few conversations with more knowledgable people has changed our mind and we're definitely going to give it a try on Metal and Vulkan to see what happens. Should be interesting.

Re: Soul – A language and IDE for audio coding

#37

Hello HN - thanks for giving our website a proper stress-test! I'm the developer of SOUL - happy to answer any questions you guys have.. :)

Hi. Great talk. Basically introduced me to audio development! Given you're experience and the future you're talking about with Soul or a similar language being how audio development is done... what resources and approaches would you recommend someone completely new to the domain study?

Re: Soul – A language and IDE for audio coding

#38

Earlier quoted context omitted.

Not sure that being able to change the graph dynamically is a particularly good way to work with this kind of thing. In almost all synths, and even DAW engines, they only modify the graph when you modify the project, not while things are running, and that's when we expect you'd do a SOUL recompile. There's a much longer discussion to be had over this which I won't dive into now, but we have thought about many possibl…

It would be very helpful to have some way to express graph changes due to events in the language, even if it doesn't happen in real time. Otherwise we're going to have to get really hacky with generating SOUL on the fly and recompiling it, rather than just explicitly stating that graph changes happen at the discretion of the runtime. RE the licensing, I'm asking more about the language itself, the IR, and whether it…

I think we'll probably want hot-reloading of sub-graphs in a larger graph, but that'll be a project for 1-2 years down the line when we're more involved in building DAW engines using it.

Re: building a 3rd party back-end, I guess that might be technically possible but we'd rather keep control of that side of things. We've not fully decided our approach there yet.

Why not WASM? Well.. quite a few complicated reasons, involving things like the ability to generate continuations, and to get good auto-vectorisation, and being portable to weird DSP architectures. Also, the system can't just be a straight program, it had to be proprietary, at least at a high-level. And secure, so LLVM IR also wasn't quite the right shape for it. We sweated over this decision, believe me!

Re: Soul – A language and IDE for audio coding

#39

Earlier quoted context omitted.

You mention custom DSP hardware licensing ... any reason not to target the GPU directly using CUDA or whatever?

Our original thoughts on that was "nah, that'd be silly because GPUs are the wrong shape for audio workloads" ..however, having a few conversations with more knowledgable people has changed our mind and we're definitely going to give it a try on Metal and Vulkan to see what happens. Should be interesting.

I'm curious what you mean by "wrong shape"? Because GPUs are for for very data-parallel workloads? Or because the latency is high?

Re: Soul – A language and IDE for audio coding

#40

Earlier quoted context omitted.

You mention custom DSP hardware licensing ... any reason not to target the GPU directly using CUDA or whatever?

Our original thoughts on that was "nah, that'd be silly because GPUs are the wrong shape for audio workloads" ..however, having a few conversations with more knowledgable people has changed our mind and we're definitely going to give it a try on Metal and Vulkan to see what happens. Should be interesting.

I can understand the aversion to GPU (with "Graphics" being a primary point). Most ways of interfacing with the GPU use x,y,z, color, lighting wrappers around what is essentially a super powerful vpu. I also wonder how the traditional pipeline (e.g. vertex shading, fragment shading) can be repurposed for audio.

I don't have any experience with Metal or Vulcan but my intuition is that audio DSP is going to include a healthy dose of linear algebra and multi-variate calculus. That points towards some kind of fit with the GPU. Given that basic GPUs are available on practically every device (including phones) it seems like a fantastic fit. Even audio hardware developers would benefit since it would open up access to commodity priced chips (rather than custom asic/fpga/whatever).

Post reply on HN