Hello everyone!
For those who didn't attend the NimConf, I just wanted to announce here a project that I have been working on for the past 8 months, Omni.
Omni is a new DSL to program audio algorithms in. It's been entirely written in Nim, leveraging on the power of metaprogramming: the whole syntax, in fact, is built using Nim macros and templates. For a more in depth look on how it works, feel free to check the repo here. Just note that the code is very much still an alpha, so errors are expected for some corner cases. If you find any, it would be great if you could report them on GitHub :)
As a sneak peak, a simple sinusoidal oscillator would look like so in omni code:
ins: 1
outs: 1
init:
phase = 0.0
sample:
freq_incr = in1 / samplerate
out1 = sin(phase * TWOPI)
phase = (phase + freq_incr) % 1.0
If this sounds interesting to you, I'd suggest you to check the talk from the NimConf at this link
Let me know what you think of this!
Francesco