Real-time C++ audio engine library for macOS and Linux; embedded by host applications via C or C++ APIs, controlled over OSC, and extended via Plugins.
- C++17, C99 (public API)
- CMake with presets (
debug/release) - RtAudio (desktop audio driver), DummyDriver (headless/offline)
- macOS, Linux
- Configure:
cmake --preset debug - Build:
cmake --build --preset debug - Test:
ctest --preset debug - Test (one):
ctest --preset debug -R <name> - Format:
pre-commit run --all-files
include/methcla/→ public C/C++ API headerssrc/Methcla/→ engine implementationplatform/→ platform-specific audio drivers (rtaudio, jack, ios, android)plugins/→ built-in Plugin implementations (SynthDefs and Soundfile APIs)tests/→ test suitecmake/→ CMake modules and helpersdocs/→ architecture docs, OSC API reference, agent guidesexternal_libraries/→ vendored third-party dependencies (do not edit)examples/→ example applicationsscripts/→ release and utility scripts
- IMPORTANT: Follow coding-style.md for all code changes
- Use domain vocabulary from CONTEXT.md; avoid listed synonyms
- Format, build, and test before every commit
- Create PRs for non-trivial changes; commit directly to
developfor small/low-risk changes - PR branch names: short, descriptive, no prefixes, dashes (
my-awesome-feature) - When merging a PR via
gh, pull and delete the branch - Add a CHANGELOG.md entry under
[Unreleased]for every feature or fix - See releases.md when releasing
- Anything listed in
.gitignore(build artifacts, generated files) external_libraries/— vendored third-party dependencies
- Releases (version bumps, tagging, pushing tags)
- Modifications to the public API (
include/methcla/)