Heavy is a framework for easily generating audio plugins for use in interactive sound and music applications such games, instruments or installations.
It aims to reduce the dependency on low-level programming from a creative standpoint and bridge the gap from idea to production-ready implementation.
Heavy makes use of modern software principles to generate highly optimised C/C++ code specifically targeting a wide variety of popular hardware architectures and software frameworks. It can also automatically build plugin binaries for these platforms.
Currently Heavy supports compiling Pure Data (.pd) patch files.
However it's important to note that Pd is merely used as a front-end authoring editor, Heavy does not make use of any Pure Data code, and it is entirely unrelated to the embeddable Pd engine, libpd.
Pure Data (Pd) is an open source visual programming environment for real-time time audio and music creation.
Heavy can interpret and convert a subset of features from Pure Data patches:
- Windows 8, 10 and WSA
- Mac OSX
- Linux
- PS4
- Xbox One
- iOS
- Android
- Bela
- Hoxton OWL
- Daisy
- Raspberry Pi
- Web (Javascript)
Heavy-generated code comes pre-optimised for architectures that can take advantage of AVX, SSE or NEON instructions. For more bespoke platforms, Heavy also provides a basic implementation supporting single sample block sizes.
In general hvcc
is free to use, though please be aware of the following licences applied to particular parts of the system.
All the hvcc
python compiler code is GPLv3.
The files that hvcc
generates are split into two types:
-
Static: this code is independent of the input patch contents and provides the basic DSP functionality with which generated output can link against. It has a BSD licence.
-
Generated: this relates to all the source files that use information about the input patch, for example
Heavy_{{name}}.cpp
. By default all these files will have aCopyright (c) 2018 Enzien Audio, Ltd
header, but this can be modified with the user copyright argument.
See the Getting started page on more information about how to construct compatible pure data patches.