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](https://vitreo12.github.io/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](https://github.com/vitreo12/omni). 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
    
    
    Run

If this sounds interesting to you, I'd suggest you to check the talk from the 
NimConf at this [link](https://youtu.be/ruT7sbs5O-Q)

Let me know what you think of this!

Francesco

Reply via email to