About this project
Anklang is a digital audio synthesis application designed for live creation and composition of music and other audio material. It is a revamp of several former audio projects by its two main authors, aiming to realize a coherent, solid amalgamation for composition and interactive creation of synthesis music.
The project can be built on Linux by cloning the repository and running `make`. However, it is easier to download one of the self-contained AppImage release builds, mark it executable, and run it.
## Development
### Roadmap
As it grew larger, the roadmap has been moved to [ROADMAP.md](ROADMAP.md).
### Project Structure
- `ase/` - C++23 backend sources (`*.c`, `*.h`, `*.cc`, `*.hh`)
- `ase/api.hh` - Public API for backend <-> frontend IPC
- `trkn/` - Vendor sources (tracktion_engine, JUCE)
- `ui/` - Web UI (Vite, Tailwind, SolidJS)
- `jsonipc/` - IPC for JSON messages between backend and browser
### Building & Testing
- Build: `make`
- Run all tests: `make check`
- Run specific test: `make check-<test_name>` (e.g., `make check-string_funcs`)
- Direct test execution: `out/lib/AnklangSynthEngine --test <test_name>`
- List available tests: `out/lib/AnklangSynthEngine --list-tests`
### Test Guidelines
- New code requires proper tests
- Avoid tests for what the type system already guarantees
- Only use methods available on the interface (extend `*.hh` files if needed)
## License
This application including the audio engine are licensed under [MPL-2.0](https://github.com/tim-janik/anklang/blob/trunk/LICENSE).
However, plugins that can be used with this application or may be downloaded via extension packs, may fall under different licensing terms, such as GPLv3 or proprietary licenses.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.