Live data from Hacker News

Show HN: A realtime node-based audio synth based on LLVM

github.com

11–20 of 23 posts

Re: Show HN: A realtime node-based audio synth based on LLVM

#11
post #8
post #2

Hey friends! This is a project I’ve been working on since the start of the year. We’ve just released 0.4.0, so I figured now would be a nice time to start making it a bit more public. There’s a bunch of interesting tech under the hood which I thought you all would definitely be interested in :) Axiom’s a project that grew out of my third try at building a realtime software synthesizer for 64k intros in the demoscene.…

Looks super slick, thanks for sharing! Can you give a little more detail in how this compares architecturally with something like PD? I imagine a tradeoff of generating LLVM MIR and compiling it is that you can get better performance, but don't get the interactive experience of hearing changes immediately as you tweak the object graph. Does the DSP graph operate on blocks or sample-by-sample?

I haven't actually properly played around with PureData (other than watching a few videos on it back when I started this project), so I can't really comment too much on how that compares.

I was initially worried about how interactive compiling would be, however it turns out (at least with the projects we've tested it with so far), it's pretty easily able to keep up with around 3ms from a modification to codegen being complete. The LLVM IR we generate is pretty simple which helps, and we also try to only recompile as much as possible by putting everything in separate LLVM modules (hurts runtime performance a bit since we can't optimize across modules, but it doesn't end up mattering too much).

The graph operates per sample - we really needed that feature to be able to do feedback loops, for things like FM synthesis.

Edit: I started adding in an explanation of Axioms architecture in the hope that someone with knowledge of similar projects could chime in, but it was getting quite long... might look at writing a blog post on it sometime soon, if people would find that interesting.

Re: Show HN: A realtime node-based audio synth based on LLVM

#12
post #3
post #2

Hey friends! This is a project I’ve been working on since the start of the year. We’ve just released 0.4.0, so I figured now would be a nice time to start making it a bit more public. There’s a bunch of interesting tech under the hood which I thought you all would definitely be interested in :) Axiom’s a project that grew out of my third try at building a realtime software synthesizer for 64k intros in the demoscene.…

Was using Rust in a Cmake project smooth? Can a C++ project with Cmake start using Rust incrementally?

Yeah, it works quite well. In my case, I used ‘ExternalProject_Add’ to run the builds through Cargo, then setup a static lib target with that as a dependency, linking to the files built by Cargo and a few system libs it expects. From there you can treat it like any target in Cmake, and it just works(tm).

Edited for clarity

Re: Show HN: A realtime node-based audio synth based on LLVM

#13
post #4

Overall looks pretty neat. I’m a big fan of dark themes, but I think this one takes it a bit too far. I’m having trouble reading the text which doesn’t contrast well against the background. Consider lightening some of the elements.

Yeah, you're not wrong that it's pretty dark. I have done a bit of work recently on lightening up (it was even darker before!), but I'll definitely look at brightening it further in the near future.

Re: Show HN: A realtime node-based audio synth based on LLVM

#14
post #9
post #2

Hey friends! This is a project I’ve been working on since the start of the year. We’ve just released 0.4.0, so I figured now would be a nice time to start making it a bit more public. There’s a bunch of interesting tech under the hood which I thought you all would definitely be interested in :) Axiom’s a project that grew out of my third try at building a realtime software synthesizer for 64k intros in the demoscene.…

I suppose that you are familiar wuth analog modular synthesizers. There is a demand for these, even though they become very expensive toys fast. But musicians seem to like the flexibility and room for experiments that they allow. Even software simulations of these synths are pretty successful. VCV Rack ( http://www.vcvrack.com ) is a recent open source emulation of eurorack synthesizers that has found a following fas…

(the link is actually https://www.vcvrack.com)

Re: Show HN: A realtime node-based audio synth based on LLVM

#17
post #9
post #2

Hey friends! This is a project I’ve been working on since the start of the year. We’ve just released 0.4.0, so I figured now would be a nice time to start making it a bit more public. There’s a bunch of interesting tech under the hood which I thought you all would definitely be interested in :) Axiom’s a project that grew out of my third try at building a realtime software synthesizer for 64k intros in the demoscene.…

I suppose that you are familiar wuth analog modular synthesizers. There is a demand for these, even though they become very expensive toys fast. But musicians seem to like the flexibility and room for experiments that they allow. Even software simulations of these synths are pretty successful. VCV Rack ( http://www.vcvrack.com ) is a recent open source emulation of eurorack synthesizers that has found a following fas…

> There is a demand for these, even though they become very expensive toys fast.

'EuroCrack' is the term I've heard bandied about ;)

Re: Show HN: A realtime node-based audio synth based on LLVM

#18
post #2

Hey friends! This is a project I’ve been working on since the start of the year. We’ve just released 0.4.0, so I figured now would be a nice time to start making it a bit more public. There’s a bunch of interesting tech under the hood which I thought you all would definitely be interested in :) Axiom’s a project that grew out of my third try at building a realtime software synthesizer for 64k intros in the demoscene.…

> You can’t really fit an mp3 file in an executable that small and expect for it to sound any good,

Very cool synthesizer, wondering what platform you were on where MP3 decoding comes for free in your 64k demos.

Re: Show HN: A realtime node-based audio synth based on LLVM

#19
post #12
post #3

Earlier quoted context omitted.

Was using Rust in a Cmake project smooth? Can a C++ project with Cmake start using Rust incrementally?

Yeah, it works quite well. In my case, I used ‘ExternalProject_Add’ to run the builds through Cargo, then setup a static lib target with that as a dependency, linking to the files built by Cargo and a few system libs it expects. From there you can treat it like any target in Cmake, and it just works(tm). Edited for clarity

That's great! This sounds like a path into Rust for me.

Re: Show HN: A realtime node-based audio synth based on LLVM

#20
post #11
post #8

Earlier quoted context omitted.

Looks super slick, thanks for sharing! Can you give a little more detail in how this compares architecturally with something like PD? I imagine a tradeoff of generating LLVM MIR and compiling it is that you can get better performance, but don't get the interactive experience of hearing changes immediately as you tweak the object graph. Does the DSP graph operate on blocks or sample-by-sample?

I haven't actually properly played around with PureData (other than watching a few videos on it back when I started this project), so I can't really comment too much on how that compares. I was initially worried about how interactive compiling would be, however it turns out (at least with the projects we've tested it with so far), it's pretty easily able to keep up with around 3ms from a modification to codegen being…

Thanks for replying, I'd definitely be interested in more architectural details.

3ms to complete codegen is orders of magnitude faster than I expected. Does that include everything necessary from making the change through actually synthesizing samples?

Post reply on HN