Show HN: Audionaut – an open-source cross-platform multitrack audio editor
Audionaut: An Open-Source, Cross-Platform Multitrack Audio Editor
Audionaut is a complimentary, open-source desktop application designed for streamlined audio recording and editing. It is tailored for those working on podcasts, music, or multitrack projects who need precision without the overwhelming complexity of a full Digital Audio Workstation (DAW).
🚀 Key Capabilities
- Precise Editing: High-accuracy cutting and trimming.
- Organization: Per-track playlists for better management.
- Versatility: Flexible support for multiple channels.
- Output: High-quality, clean exports.
The software is developed using modern C++ via the JUCE framework, ensuring native performance across Windows, macOS, and Linux.
🤖 AI Integration via MCP
Audionaut is uniquely designed to be driven by AI agents through the Model Context Protocol (MCP). This allows tools like Claude to manipulate your audio sessions directly.
Note: Each edit performed by an agent is registered as a single undo step within the application.
Setup for Claude: If you have Node.js 18+ and Audionaut installed, run:
claude mcp add audionaut -- npx -y audionaut-mcp
🛠️ Installation & Development
Getting the Source
To ensure all dependencies are present, you must clone the repository with submodules:
git clone --recursive https://github.com/kvoltmer/Audionaut.git
If you already cloned it without submodules, run: git submodule update --init --recursive
🧩 Submodule Details
1. Essentia (Audio Analysis)
Provides beat tracking, onset detection, and BIC segmentation.
- Build Process: Run
./Audionaut/Builds/build_essentia.sh. - Behavior: It builds 3rd-party dependencies statically (this is slow; use
FORCE_3RDPARTY=1to override). - Warning: The script patches Linux scripts for macOS/Apple Silicon, meaning the submodule will appear "dirty" in Git. Do not commit these changes.
Prerequisites for Essentia:
- Python version (Python 3.12 removed
distutils, whichwafrequires). -
pkg-config(e.g.,brew install pkg-configon Mac). - CMake 3.x (CMake 4.x may reject some legacy
CMakeLists).
Note: If not built, ESSENTIA_ENABLED defaults to off, and analysis features are disabled.
2. demucs.cpp (Stem Separation)
A C++ implementation of Meta's Demucs for splitting tracks.
- Build: Integrated into the main build; no separate step required.
- Dependency: Requires the vendored Eigen library.
- Weights: Model weights are downloaded automatically on first launch or can be specified via
--modelin the CLI.
💻 Build Instructions
| Platform | Tool/Method | Project Path |
|---|---|---|
| macOS | Xcode | Audionaut/Builds/MacOSX/Audionaut.xcodeproj |
| Windows | Visual Studio 2026 | Audionaut/Builds/VisualStudio2026/Audionaut.sln |
| Linux | Makefile | Audionaut/Builds/LinuxMakefile/ |
Linux Dependency Installation:
sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev \
libfreetype-dev libfontconfig1-dev libx11-dev libxcomposite-dev libxcursor-dev \
libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.1-dev \
libglu1-mesa-dev mesa-common-dev libxi-dev libegl-dev
Linux Compilation:
cd Audionaut/Builds/LinuxMakefile/
make CONFIG=Release -j8
⌨️ Command-Line Interface (audionaut-cli)
The audionaut-cli allows headless interaction with .audium projects, making it ideal for CI/CD pipelines and AI agents.
Build the CLI
cmake -B build -S Audionaut/Catch2Tests
cmake --build build -j8 --target AudionautCli
CLI Specifications
- Output: Use
--jsonfor machine-readable results:{"ok": true, "result": ...}. - Logging: All logs are sent to
stderr. - Quiet Mode: Use
--quiet.
Exit Code Reference:
| Code | Meaning |
|---|---|
0 | Success |
1 | Operation failed |
2 | Usage/Syntax error |
3 | Feature not available in this build |
Available Commands
./build/AudionautCli_artefacts/AudionautCli [command] [args]
create <file>: Initialize a project (e.g.,--channels 2).import <file> <source>: Add audio at a specific--position.info <file>: Get project details.analyze <file>: Run analysis (e.g.,--types sbic,beat_degara).auto-edit <file>: Edit based on measures.assemble <file>: Create a mix (e.g.,--mode random).split <file>: Cut at a point (unit:beats|seconds|clocks).create-region <file>: Define a named area.set-region <file>: Rename or resize a region.place-clip <file>: Position a region.move-clip <file>: Relocate a region.remove-clip <file>: Delete a clip at a position.clip-gain <file>: Adjust volume in dB.clip-fades <file>: Set fade-in/out durations.separate <file>: Split into Drums/Bass/Other/Vocals (requires Demucs).export <file>: Render to wav (e.g.,--sample-rate 48000 --bit-depth 24).
🔄 Typical Agent Workflow
The following diagram illustrates how an AI agent typically interacts with the CLI:
For more details on testing, please refer to the Catch2 tests README.