🍑 Audio synthesis tools
https://rubiefawn.codeberg.page/nectarine
- C 99.7%
- Makefile 0.3%
|
Fawn
a28bfbe259
All checks were successful
Publish documentation / publish (push) Successful in 41s
These are intended to be 3-dimensional arrays such that the first dimension represents different mipmap levels, the second represents different waveform shapes, and the third represents samples within each waveform. These can be sampled with trilinear interpolation. They are currently untested and very likely broken in some way or other. |
||
|---|---|---|
| .forgejo/workflows | Tweak Forgejo deploy action | |
| vendor | Rawdog attributes instead of using a macro | |
| .gitignore | Add ARM NEON support | |
| .gitmodules | Rawdog attributes instead of using a macro | |
| denormals.h | Fix FXSAVE alignment | |
| Doxyfile | Tweak Forgejo deploy action | |
| LICENSE | Add ISC license & README | |
| Makefile | OpenMP is working, actually | |
| README.md | Use a*b+c instead of fma() | |
| tgwaveforms.h | Add circle waveform function | |
| waveforms.h | Add circle waveform function | |
| wavetable.h | Work-in-progress wavetables | |
🍑 nectarine
Audio synthesis tools for C23.
Building
The recommended way to use Nectarine is to compile the source files directly into your project. If your project uses git, you can add Nectarine as a git submodule.
For best results, compile with -O3 -ffast-math -ffp-contract=fast -fopenmp-simd -march=native -DNDEBUG (or your compiler's equivalent).
Compiler support
Nectarine is written for C23 and OpenMP 4.0.
- ✅ GCC minimum 13, preferred 15+
- ✅ Clang 19+
- ✅ Xcode 16.4+
- ❌ MSVC does not support C23 nor OpenMP 4.0.
Documentation
You can generate HTML documentation by running doxygen or make docs.