I use Luajit via Protoplug. Luajit itself is already quite good for the computations. when you add complementary lua modules which are written in C and some FFI, like the fft lib which comes with protoplug, it's quite usablecoroknight wrote: Fri Aug 08, 2025 4:46 pmLuaJIT is still garbage collected because garbage collection is a pretty fundamental attribute of a language. So that’s still not ideal.NER wrote: Thu Aug 07, 2025 10:09 pmWell there is LuaJITcoroknight wrote: Mon Jul 14, 2025 4:19 pm The problem with languages like JavaScript, python, and lua is they aren’t particularly great at real-time audio processing because they’re interpreted and garbage collected.
and it can call C functions and use C data structures
https://luajit.org/ext_ffi.html
but I don't see why they'd do any of this, it kind of defeats the purpose of grid.
And yes, calling C via FFI works because… you’re calling code written in a non-garbage collected language. So you see how that’s a cop-out answer?
It doesn’t defeat the purpose of the grid, it compliments it. Don’t worry, nobody is trying to take the grid away from you.
Anyway, luajit is not interpreted like lua. it's on the fly transformed into native code. And I think that is true for the Nitro language which is the scripting language inside of bitwig. I think Nitro works like NIs reactor works: Users assemble modules on the ui but the backend then compiles it to nitro and then finally to assembly ...
If we'd get a ~gen for Nitro backed by an appropriate API that would open the door for many cool things ... while bitwigs revenue stream might suffer if users can add considerable native bitwig extensions themselves. But how cool would it be to do a slink filter as native module like they did this max4live device for ableton, https://hypnusrecords.com/shop/p/slink
