Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Cuda.jl | 932 | 19 hours ago | July 16, 2022 | 267 | other | Julia | ||||
CUDA programming in Julia. | ||||||||||
Zigmod | 449 | 6 days ago | 24 | mit | Zig | |||||
📦 A package manager for the Zig programming language. | ||||||||||
Omni | 158 | 10 months ago | March 16, 2023 | 58 | mit | Nim | ||||
DSL for low-level audio programming. | ||||||||||
Etlas | 60 | 3 years ago | 25 | Haskell | ||||||
Etlas, the build tool and package manager for the Eta programming language | ||||||||||
Tutara | 27 | 2 months ago | 3 | apache-2.0 | Rust | |||||
Tutara programming language. | ||||||||||
Merchant | 11 | 3 years ago | Mercury | |||||||
A package manager for the Mercury logic programming language. | ||||||||||
Rectx | 5 | 2 months ago | 9 | gpl-3.0 | Go | |||||
[WIP] The powerful little project manager for the ReCT programming language! | ||||||||||
Probzelus Haskell | 3 | 3 years ago | bsd-3-clause | Haskell | ||||||
A probabilistic programming language for streaming inference | ||||||||||
Cameroonpc | 3 | 7 years ago | 1 | CSS | ||||||
The website for the Cameroon Programming Contest | ||||||||||
Hpm | 2 | 6 years ago | JavaScript | |||||||
[H]ook [P]ackage [M]anager - Collection of binaries for installing packages using various package managers for various programming languages. |
Omni is a cross-platform DSL (Domain Specific Language) for low level audio programming. It aims to be a new, expressive and easy to use programming language to code audio algorithms in.
Omni leverages nim and C to compile code to self-contained static or shared libraries that can then be loaded and used anywhere. So far, two wrappers have already been written to compile omni code to SuperCollider UGens (omnicollider), or Max 8 objects (omnimax).
Also, a basic syntax highlighting VSCode plugin is available by simply looking for omni in the Extensions Marketplace.
Refer to your distribution's package manager and make sure you've got nim
and git
installed.
To install dependencies on MacOS it is suggested to use a package manager like brew.
After brew
has been installed, run the following command in the Terminal
app to install nim
:
brew install nim
Then, make sure that the ~/.nimble/bin
directory is set in your shell $PATH
.
If using bash (the default shell in MacOS), you can simply run this command:
echo 'export PATH=$PATH:~/.nimble/bin' >> ~/.bash_profile
To install dependencies on Windows it is suggested to use a package manager like chocolatey.
After chocolatey
has been installed, open PowerShell
as administrator and run this command to install nim
and git
:
choco install nim git -y
To install omni
, simply use the nimble
package manager (it comes bundled with the nim
installation):
nimble install omni -y
Once you've installed omni, the omni
executable will be placed in your ~/.nimble/bin
folder.
Run omni -h
to get help on all the available flags.
When running the omni
compiler, the output is either a static or shared library (depending on the --lib
flag). Along with it, an omni.h
file (depending on the --exportHeader
flag) containing all the callable functions in the shared/static library will be exported.
omni ~/.nimble/pkgs/omni-0.4.1/examples/OmniSaw.omni -o:./
This command will compile an antialiased sawtooth oscillator (part of the examples) to a shared library (libOmniSaw.so/dylib/dll
), together with a header file (omni.h
), in the current folder.
Sine.omni
ins: 1
outs: 1
init:
phase = 0.0
sample:
incr = in1 / samplerate
out1 = sin(phase * TWOPI)
phase = (phase + incr) % 1.0
To compile it, simply run:
omni Sine.omni
Check omni's website.