Introduction 🧚🏼♂️
Grig is a set of small audio packages for haxe (and by extension, the langauges haxe targets) to process and create music and audio. Grig is designed to have as few dependencies and interdependencies as possible, so that you can use as much or as little of the features you need withing bringing in a heavy framework. Haxe's dead code elimination also ensures that unused functionality within a package isn't included in the final output.
For non-hardware code, grig is designed to work on all haxe targets. Audio and MIDI IO externs are also provided for a number of different environments (see below). This means that it should be possible to run the same audio code on multiple different environments, ranging from standalone compiled applications, to the browser, to plugins.
See the api documentation and also the tutorials.
Hardware Capabilities
Using grig.audio
and grig.midi
in haxe:
Environment | Midi IO 🎹 | Audio IO 🎧 |
---|---|---|
c++ | ✅ | ✅ |
hashlink | (rtmidi) | (portaudio) |
c++/fmod | N/A | |
js/html5 | ✅ | ✅ |
js/nodejs | ✅ | |
js/fmod | N/A | |
java | ✅ | |
c# | ✅ | |
c#/fmod | N/A | |
lua | (luamidi) | |
python | ✅ | ✅ |
heaps | N/A | ✅ |
kha | N/A |
Additional platforms will be supported via hxal:
Get your grig t-shirt! Or sponsor grig development. Also follow us on Mastodon!