Audionaut is een open-source desktopapplicatie voor audiobewerking en opname, ontwikkeld in modern C++ met het JUCE-framework. De software is cross-platform (Windows, macOS, Linux) en biedt een alternatief voor complexe DAW's door zich te richten op precieze knippunten, playlists en multi-channel ondersteuning.
Belangrijkste functionaliteiten:
- AI-integratie: Dankzij ondersteuning voor het Model Context Protocol (MCP) kunnen AI-agents zoals Claude direct sessies bewerken.
- Geavanceerde audio-tools: De app maakt gebruik van de Essentia-submodule voor audio-analyse (zoals beat-tracking) en
demucs.cpp voor stem-separatie.
- Command-line Interface (CLI): Met de
audionaut-cli kunnen projecten headless worden beheerd, wat scripting en automatisering door AI-agents mogelijk maakt.
- Bouw en Installatie: Het project biedt uitgebreide instructies voor compilatie via Xcode, Visual Studio en Linux Makefiles.
De software is dual-licensed onder GPL3 en een commerciële licentie.
Audionaut
Gebruik met Claude
Audionaut ondersteunt MCP (Model Context Protocol), waardoor Claude en andere AI-agents uw sessies kunnen bewerken. Indien de applicatie en Node.js 18+ zijn geïnstalleerd, kan dit worden geactiveerd met:
claude mcp add audionaut -- npx -y audionaut-mcp
Houd het project open in Audionaut; elke bewerking door de AI wordt geregistreerd als één ongedaanmaakbare stap (undo step). Op macOS dienen projecten in de map 'Music' te worden bewaard. Voor meer details over de Claude Desktop-configuratie kan worden verwezen naar de handleiding, hoofdstuk 11.
Checkout
Zorg ervoor dat u de repository kloneert inclusief submodules:
git clone --recursive https://github.com/kvoltmer/Audionaut.git
Indien de repository al is gekloond, gebruik dan:
git submodule update --init --recursive
Essentia (audio-analyse)
De analysefuncties (BIC-segmentatie, onset-detectie, beat-tracking) maken gebruik van een statische build van de Essentia-submodule. Bouw deze één keer na het uitvoeren van de checkout van de submodules:
./Audionaut/Builds/build_essentia.sh
Dit script bouwt de third-party afhankelijkheden van Essentia statisch (dit is een traag proces en wordt overgeslagen bij herhaalde runs; forceer dit met FORCE_3RDPARTY=1). Vervolgens configureert en bouwt het script Essentia zelf met het waf-buildsysteem in Submodules/essentia/build. Het script past de Linux-georiënteerde build-scripts van Essentia aan voor macOS/Apple Silicon, waardoor de essentia-submodule daarna als 'dirty' kan verschijnen; commit deze wijzigingen niet.
Voorwaarden:
- Python ≤ 3.11: De gebundelde waf van Essentia heeft
distutils nodig, wat is verwijderd in Python 3.12. Het script selecteert automatisch een geschikte interpreter; dit kan worden overschreven met PYTHON=... ./Audionaut/Builds/build_essentia.sh.
- pkg-config: (bijv.
brew install pkg-config).
- CMake 3.x aanbevolen: Sommige third-party afhankelijkheden gebruiken zeer oude CMakeLists die door CMake 4.x worden geweigerd (bijv.
pip install "cmake~=3.31.0").
Het bouwen van Essentia is optioneel. Zonder Essentia wordt ESSENTIA_ENABLED automatisch op 'off' gezet en worden de applicatie en tests gecompileerd zonder de analysefuncties.
demucs.cpp (stem-separatie)
Stem-separatie draait via demucs.cpp, een C++ poort van Meta's Demucs, gecompileerd direct vanuit de Submodules/demucs.cpp submodule zonder aparte build-stap. Hiervoor is de in de submodule opgenomen Eigen-bibliotheek nodig (Submodules/demucs.cpp/vendor/eigen, een genestelde submodule die via --recursive wordt opgehaald). De CMake-build detecteert dit en stelt AUDIONAUTENABLEDEMUCS dienovereenkomstig in. De model-gewichten bevinden zich niet in de repository; de app downloadt deze bij eerste gebruik in de map 'Models', of u kunt de CLI naar een kopie wijzen met --model.
Bouwen (Build)
- Xcode (macOS): Open het Xcode-project in
Audionaut/Builds/MacOSX/Audionaut.xcodeproj.
- Visual Studio 2026 (Windows): Open de Visual Studio-solution in
Audionaut/Builds/VisualStudio2026/Audionaut.sln.
- Linux Makefile: Installeer eerst de afhankelijkheden:
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
Compileer vervolgens: cd Audionaut/Builds/LinuxMakefile/ make CONFIG=Release -j8
Tests
Raadpleeg de README van de Catch2-tests voor meer informatie.
Command-line tool (audionaut-cli)
De audionaut-cli biedt scripts, CI en AI-agents headless toegang tot .audium-projecten, zonder GUI of audio-apparaat. Deze wordt gebouwd samen met de tests:
cmake -B build -S Audionaut/Catch2Tests
cmake --build build -j8 --target AudionautCli
./build/AudionautCli_artefacts/AudionautCli --help
Elk commando accepteert --json om exact één machine-leesbaar resultaat-envelope op stdout te genereren ({"ok": true, "result": ...} of {"ok": false, "error": ...}), waarbij alle logging op stderr verschijnt, aangevuld met --quiet.
Exit codes:
- 0: succes
- 1: operatie mislukt
- 2: gebruiksfout
- 3: functie niet beschikbaar in deze build (bijv. analyse zonder Essentia)
Optie-waarden kunnen worden opgegeven als --opt value of --opt=value.
Voorbeelden van CLI-commando's:
audionaut-cli create song.audium --channels 2
audionaut-cli import song.audium take1.wav take2.wav --position 4.5
audionaut-cli info song.audium --json
audionaut-cli analyze song.audium --types sbic,beat_degara
audionaut-cli auto-edit song.audium --track 0 --measures 4
audionaut-cli assemble song.audium --duration 60 --mode random
audionaut-cli split song.audium --at 23 (maat 23; --unit beats|seconds|clocks)
audionaut-cli create-region song.audium --name chorus --start 17 --end 25
audionaut-cli set-region song.audium --region chorus --rename drop --length 8
audionaut-cli place-clip song.audium --region drop --at 33
audionaut-cli move-clip song.audium --region drop --to 41
audionaut-cli remove-clip song.audium --at 41 --track 0
audionaut-cli clip-gain song.audium --region drop --gain -6 --db
audionaut-cli clip-fades song.audium --region drop --fade-in 1 --fade-out 2 --unit beats
audionaut-cli separate song.audium --track 1 (Drums/Bass/Other/Vocals tracks; vereist Demucs-model)
audionaut-cli export song.audium -o mix.wav --sample-rate 48000 --bit-depth 24
Een typische agent-flow is: create → import → analyze → auto-edit/assemble → export, waarbij na elke stap wordt gecontroleerd op ok in de JSON-envelope. Projecten die door de CLI zijn geschreven, kunnen worden geopend in de GUI-app en vice versa.
Aanvullende CLI-informatie
- Documentatie: Gebruikersdocumentatie is te vinden in de User Manual.
- Privacy: CLI-aanroepen rapporteren anonieme gebruiksstatistieken onder dezelfde strikt opt-in toestemming als de app (één
clicommand event: werkwoord en exit code). Er wordt niets verzonden tenzij toestemming is verleend in de app-instellingen. Gebruik AUDIONAUTDISABLE_ANALYTICS=1 om rapportage volledig uit te schakelen (bijv. in CI-omgevingen).
- GUI Integratie: De hoofdapplicatie van Audionaut accepteert dezelfde werkwoorden (Projucer-stijl). Door de app-binary met een werkwoord uit te voeren, wordt dit headless uitgevoerd en stopt het programma met de exit code van het commando, zelfs als er een GUI-instantie openstaat. Een bestandsargument of geen argumenten start de GUI zoals gebruikelijk.
- Voorbeeld:
./Audionaut.app/Contents/MacOS/Audionaut export ~/Music/song.audium -o ~/Music/mix.wav
- OS Beperkingen: De macOS-app is gesandboxed, waardoor de in-app CLI alleen locaties kan bereiken die binnen de entitlements vallen (zoals
~/Music). De standalone audionaut-cli build heeft deze beperking niet. Op Windows is de app een GUI-programma; de shell-prompt keert direct terug en output raakt vermengd. Voor scripting op Windows geniet audionaut-cli de voorkeur.
Licentie
Audionaut is dual-licensed onder GPL3 (of later) en een commerciële licentie. Raadpleeg LICENSE.md voor details.
Bijdragen
Bijdragen worden 환영 gesteld. Zie CONTRIBUTING.md voor informatie over hoe u kunt beginnen en de vereiste Contributor License Agreement (CLA.md).
Support
Als Audionaut nuttig voor u is, kunt u overwegen de ontwikkeling te sponsoren. Sponsoring financiert direct de ontwikkeltijd en houdt het project duurzaam.
Audionaut
Gebruik met Claude
Audionaut ondersteunt MCP (Model Context Protocol), waardoor Claude en andere AI-agents uw sessies kunnen bewerken. Indien de applicatie en Node.js 18+ zijn geïnstalleerd, kan dit worden geactiveerd met:
claude mcp add audionaut -- npx -y audionaut-mcp
Houd het project open in Audionaut; elke bewerking door de AI wordt geregistreerd als één ongedaanmaakbare stap (undo step). Op macOS dienen projecten in de map 'Music' te worden bewaard. Voor meer details over de Claude Desktop-configuratie kan worden verwezen naar de handleiding, hoofdstuk 11.
Checkout
Zorg ervoor dat u de repository kloneert inclusief submodules:
git clone --recursive https://github.com/kvoltmer/Audionaut.git
Indien de repository al is gekloond, gebruik dan:
git submodule update --init --recursive
Essentia (audio-analyse)
De analysefuncties (BIC-segmentatie, onset-detectie, beat-tracking) maken gebruik van een statische build van de Essentia-submodule. Bouw deze één keer na het uitvoeren van de checkout van de submodules:
./Audionaut/Builds/build_essentia.sh
Dit script bouwt de third-party afhankelijkheden van Essentia statisch (dit is een traag proces en wordt overgeslagen bij herhaalde runs; forceer dit met FORCE_3RDPARTY=1). Vervolgens configureert en bouwt het script Essentia zelf met het waf-buildsysteem in Submodules/essentia/build. Het script past de Linux-georiënteerde build-scripts van Essentia aan voor macOS/Apple Silicon, waardoor de essentia-submodule daarna als 'dirty' kan verschijnen; commit deze wijzigingen niet.
Voorwaarden:
- Python ≤ 3.11: De gebundelde waf van Essentia heeft
distutils nodig, wat is verwijderd in Python 3.12. Het script selecteert automatisch een geschikte interpreter; dit kan worden overschreven met PYTHON=... ./Audionaut/Builds/build_essentia.sh.
- pkg-config: (bijv.
brew install pkg-config).
- CMake 3.x aanbevolen: Sommige third-party afhankelijkheden gebruiken zeer oude CMakeLists die door CMake 4.x worden geweigerd (bijv.
pip install "cmake~=3.31.0").
Het bouwen van Essentia is optioneel. Zonder Essentia wordt ESSENTIA_ENABLED automatisch op 'off' gezet en worden de applicatie en tests gecompileerd zonder de analysefuncties.
demucs.cpp (stem-separatie)
Stem-separatie draait via demucs.cpp, een C++ poort van Meta's Demucs, gecompileerd direct vanuit de Submodules/demucs.cpp submodule zonder aparte build-stap. Hiervoor is de in de submodule opgenomen Eigen-bibliotheek nodig (Submodules/demucs.cpp/vendor/eigen, een genestelde submodule die via --recursive wordt opgehaald). De CMake-build detecteert dit en stelt AUDIONAUTENABLEDEMUCS dienovereenkomstig in. De model-gewichten bevinden zich niet in de repository; de app downloadt deze bij eerste gebruik in de map 'Models', of u kunt de CLI naar een kopie wijzen met --model.
Bouwen (Build)
- Xcode (macOS): Open het Xcode-project in
Audionaut/Builds/MacOSX/Audionaut.xcodeproj.
- Visual Studio 2026 (Windows): Open de Visual Studio-solution in
Audionaut/Builds/VisualStudio2026/Audionaut.sln.
- Linux Makefile: Installeer eerst de afhankelijkheden:
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
Compileer vervolgens: cd Audionaut/Builds/LinuxMakefile/ make CONFIG=Release -j8
Tests
Raadpleeg de README van de Catch2-tests voor meer informatie.
Command-line tool (audionaut-cli)
De audionaut-cli biedt scripts, CI en AI-agents headless toegang tot .audium-projecten, zonder GUI of audio-apparaat. Deze wordt gebouwd samen met de tests:
cmake -B build -S Audionaut/Catch2Tests
cmake --build build -j8 --target AudionautCli
./build/AudionautCli_artefacts/AudionautCli --help
Elk commando accepteert --json om exact één machine-leesbaar resultaat-envelope op stdout te genereren ({"ok": true, "result": ...} of {"ok": false, "error": ...}), waarbij alle logging op stderr verschijnt, aangevuld met --quiet.
Exit codes:
- 0: succes
- 1: operatie mislukt
- 2: gebruiksfout
- 3: functie niet beschikbaar in deze build (bijv. analyse zonder Essentia)
Optie-waarden kunnen worden opgegeven als --opt value of --opt=value.
Voorbeelden van CLI-commando's:
audionaut-cli create song.audium --channels 2
audionaut-cli import song.audium take1.wav take2.wav --position 4.5
audionaut-cli info song.audium --json
audionaut-cli analyze song.audium --types sbic,beat_degara
audionaut-cli auto-edit song.audium --track 0 --measures 4
audionaut-cli assemble song.audium --duration 60 --mode random
audionaut-cli split song.audium --at 23 (maat 23; --unit beats|seconds|clocks)
audionaut-cli create-region song.audium --name chorus --start 17 --end 25
audionaut-cli set-region song.audium --region chorus --rename drop --length 8
audionaut-cli place-clip song.audium --region drop --at 33
audionaut-cli move-clip song.audium --region drop --to 41
audionaut-cli remove-clip song.audium --at 41 --track 0
audionaut-cli clip-gain song.audium --region drop --gain -6 --db
audionaut-cli clip-fades song.audium --region drop --fade-in 1 --fade-out 2 --unit beats
audionaut-cli separate song.audium --track 1 (Drums/Bass/Other/Vocals tracks; vereist Demucs-model)
audionaut-cli export song.audium -o mix.wav --sample-rate 48000 --bit-depth 24
Een typische agent-flow is: create → import → analyze → auto-edit/assemble → export, waarbij na elke stap wordt gecontroleerd op ok in de JSON-envelope. Projecten die door de CLI zijn geschreven, kunnen worden geopend in de GUI-app en vice versa.
Aanvullende CLI-informatie
- Documentatie: Gebruikersdocumentatie is te vinden in de User Manual.
- Privacy: CLI-aanroepen rapporteren anonieme gebruiksstatistieken onder dezelfde strikt opt-in toestemming als de app (één
clicommand event: werkwoord en exit code). Er wordt niets verzonden tenzij toestemming is verleend in de app-instellingen. Gebruik AUDIONAUTDISABLE_ANALYTICS=1 om rapportage volledig uit te schakelen (bijv. in CI-omgevingen).
- GUI Integratie: De hoofdapplicatie van Audionaut accepteert dezelfde werkwoorden (Projucer-stijl). Door de app-binary met een werkwoord uit te voeren, wordt dit headless uitgevoerd en stopt het programma met de exit code van het commando, zelfs als er een GUI-instantie openstaat. Een bestandsargument of geen argumenten start de GUI zoals gebruikelijk.
- Voorbeeld:
./Audionaut.app/Contents/MacOS/Audionaut export ~/Music/song.audium -o ~/Music/mix.wav
- OS Beperkingen: De macOS-app is gesandboxed, waardoor de in-app CLI alleen locaties kan bereiken die binnen de entitlements vallen (zoals
~/Music). De standalone audionaut-cli build heeft deze beperking niet. Op Windows is de app een GUI-programma; de shell-prompt keert direct terug en output raakt vermengd. Voor scripting op Windows geniet audionaut-cli de voorkeur.
Licentie
Audionaut is dual-licensed onder GPL3 (of later) en een commerciële licentie. Raadpleeg LICENSE.md voor details.
Bijdragen
Bijdragen worden 환영 gesteld. Zie CONTRIBUTING.md voor informatie over hoe u kunt beginnen en de vereiste Contributor License Agreement (CLA.md).
Support
Als Audionaut nuttig voor u is, kunt u overwegen de ontwikkeling te sponsoren. Sponsoring financiert direct de ontwikkeltijd en houdt het project duurzaam.