→ Audio Synthesizer and MIDI Composer ←
Documentation · Github · Issues · IRC
Anklang is a digital audio synthesis application for live creation and composition of music and other audio material.
The project is a revamp of several former audio projects by its two main authors and aims 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.
Roadmap Discussions: Feedback & Ideas: #52
Phase 1: Foundation & Architecture (Completed)
☑ Application Core in C++20, with WebUI (HTML, CSS, JS based front-end GUI)
☑ Electron based WebUI & Vite-based UI build system
☑ Migrate Vue2 → Vue3; migrate Vue3 → Lit
☑ Use Hybrid Architecture (C++23 Backend → Lit Frontend)
☑ Reactive TypeScript IPC bindings
☑ Migrate Lit Frontend → SolidJS (partial)
☑ Replace old internal DSP engine with Tracktion Engine (regressions)
☑ Tracktion Engine integration as primary audio/MIDI framework (partial)
Phase 2: Engine Migration (Current Focus)
☐ Project Save/Load integration with Tracktion Engine, self-contained file copies
☐ Migration of Project, Track, and Clip models to Tracktion architecture
☐ Implement test sound generation and playback
☐ Add JACK audio support via trkn
☐ Adaptation of synthesis devices & effects (BlepSynth LiquidSFZ Freeverb Saturation)
☐ Implement file selection UI for liquidsfz
☐ Add effects (and more devices): Chorus Delays Distortions Reverberation FluidSynth
☐ Adjust Settings dialog to new engine
☑ Real-time audio/synthesis monitoring (uses outdated term "Telemetry")
☐ Revamp Audio Device selection for new engine
Phase 3: Core DAW Features
☑ Pianoroll editing and timeline navigation
☐ UI Polish (Electron lifecycle, focus trapping, and JS → TS migration)
☐ Implement device editor (add/remove/trkn-devices)
☐ Device management and property UIs
☐ MIDI note scripting
☐ MIDI file importer for multiple tracks
Phase 4: Production Suite
☐ Advanced Clip Launcher (play order, duration configuration)
☐ Full Mixer (Solo, Mute, Pan, Volume), stereo bus routing, per-drum effects
☐ Automation lanes with real-time event recording and modulation
☐ Per-device modulators / LFOs / envelopes / step sequencers
☐ Effect chains and preset management with macro parameters
☐ Add sample downloader and sound library integration
☐ Add standard audio library for various instrument types
☐ Convenient audio track support (WAV via drag-and-drop)
☐ Map MIDI file imports to the audio library
Phase 5: Plugin Ecosystem & Beyond
☐ Third-party plugin hosting (VST2, VST3)
☐ Support third-party plugins via LV2
☐ Support third-party plugins via CLAP 🗩
☐ AI-assisted composition and generative synthesis tools
☐ Advanced spectral synthesis and granular sampling
ase/- C++23 backend sources (*.c,*.h,*.cc,*.hh)ase/api.hh- Public API for backend <-> frontend IPCtrkn/- Vendor sources (tracktion_engine, JUCE)ui/- Web UI (Vite, Tailwind, SolidJS)jsonipc/- IPC for JSON messages between backend and browser
- 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
- New code requires proper tests
- Avoid tests for what the type system already guarantees
- Only use methods available on the interface (extend
*.hhfiles if needed)
This application including the audio engine are licensed under MPL-2.0.
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.