Show HN: Audionaut – an open-source cross-platform multitrack audio editor
https://github.com/kvoltmer/Audionaut📌 開源多軌編輯器 Audionaut:讓 Claude 動手剪你的音軌
TL;DR:開源跨平臺多軌音訊編輯器導入 MCP,讓 AI agent 能直接下指令剪輯、匯出成品。
想像不用打開任何音訊編輯軟體,只要跟 Claude 說「把這段錄音剪到一分鐘並匯出」,剪輯就完成,還能一鍵復原回上一步。這不是概念demo,而是一套已經在 Hacker News 拿下 131 點讚、45 則討論的開源工具。
🤔 多軌錄音剪輯不需要整套 DAW 的重量
無論是做音樂、podcast 還是多軌錄音,傳統做法往往得打開一整套功能齊全但笨重的 DAW。Audionaut 的定位是「effortless audio editing」:提供精準剪切、每軌獨立的 playlist、彈性多聲道支援與乾淨匯出,目標是在不帶上全功能 DAW 複雜度的前提下滿足這些日常需求。
🧩 C++/JUCE 打底,MCP 讓 agent 直接動手
Audionaut 用現代 C++ 搭配 JUCE framework 開發,原生支援 Windows、macOS、Linux。它的特別之處在於原生支援 MCP:安裝好 Node.js 18+ 後,一行 claude mcp add audionaut -- npx -y audionaut-mcp 就能讓 Claude 或其他 agent 操作你開啟中的專案,而且每一次編輯都會被記錄成一個可復原的 undo 步驟。
專案裡還整合了兩個子模組:負責音訊分析(BIC segmentation、onset detection、beat tracking)的 Essentia,以及用來做人聲/樂器分離的 demucs.cpp,這是 Meta Demucs 的 C++ 移植版本,模型權重不隨原始碼附帶,而是首次使用時自動下載。
📊 從 CLI 指令看 agent 怎麼剪一首歌
專案另外提供一支 audionaut-cli,讓腳本、CI 或 AI agent 能在沒有 GUI、沒有音訊裝置的情況下操作 .audium 專案。每個指令都能加上 --json,在 stdout 吐出單一的機器可讀結果({"ok": true, "result": ...} 或 {"ok": false, "error": ...}),所有 log 則留在 stderr,退出碼也分得很細:0 成功、1 操作失敗、2 用法錯誤、3 此 build 不支援該功能。
典型的 agent 工作流程是:
create建立新專案import匯入素材並指定位置analyze跑分析(如 beat 偵測)auto-edit或assemble做自動剪輯或隨機拼接separate視需要做人聲樂器分離export輸出成品檔
每一步都檢查 JSON envelope 裡的 ok 欄位,而且用 CLI 寫出來的專案檔可以直接在 GUI 開啟,反之亦然。
⚠️ 建置門檻不低,主要仍是小眾工具
自行編譯並不輕鬆:需要用 --recursive clone 子模組,Essentia 的建置要求 Python 3.11 以下(因為它內建的 waf 仰賴 Python 3.12 已移除的 distutils),還需要 pkg-config 與建議用 3.x 版的 CMake。macOS 上的 app 處於沙盒環境,內建 CLI 只能存取 ~/Music 這類有 entitlement 的位置,真正要無限制的腳本化操作得用獨立編譯的 audionaut-cli。授權採 GPL3(或更新版本)與商業授權雙授權模式。整體而言,這類工具的目標族群仍偏向需要客製化、自動化音訊工作流的開發者或工作室,而非一般使用者。
🎯 給正在做 agent 自動化工作流的工程師
Audionaut 示範了一個 MCP 在「非程式碼」領域的具體應用:把一個垂直領域工具(音訊剪輯)包裝成 agent 可操作的介面,並用標準化的 JSON envelope 與退出碼讓結果可被腳本判讀。這個「GUI app 同時支援 headless CLI、兩者共用同一份專案格式」的設計模式,值得其他想讓自己工具被 agent 驅動的開發者參考。
🔗 來源
- 標題:Show HN: Audionaut – an open-source cross-platform multitrack audio editor
- 作者/機構:vltmrkls
- 連結:https://github.com/kvoltmer/Audionaut
#OpenSource #MCP #AudioEditing #Claude #AIAgent #JUCE #CPlusPlus #Podcasting #MusicProduction #DeveloperTools
原始資料 Hacker News · 收集於 2026-10-02
摘要原文
Audionaut A free, open-source multitrack audio editor that AI agents can drive over MCP. audionaut.app · Features · Discussions · Sponsor Audionaut is a free, open-source desktop application for effortless audio editing and recording. Whether you're working on music, podcasts, or multitrack recordings, it gives you precise cutting, per-track playlists, flexible multi-channel support, and clean exports — without the weight and complexity of a full DAW. Audionaut is written in modern C++ on the JUCE framework and runs natively on Windows, macOS, and Linux. Use with Claude Audionaut speaks MCP , so Claude and other agents can edit your sessions. With the app and Node.js 18+ installed: claude mcp add audionaut -- npx -y audionaut-mcp Keep the project open in Audionaut and each edit arrives as one undo step. On macOS, keep projects in your Music folder. Claude Desktop setup and details: manual, chapter 11 . Checkout Make sure to clone with submodules: git clone --recursive https://github.com/kvoltmer/Audionaut.git or once cloned do: git submodule update --init --recursive Essentia (audio analysis) The analysis features (BIC segmentation, onset detection, beat tracking) link against a static build of the Essentia submodule. Build it once after checking out the submodules: ./Audionaut/Builds/build_essentia.sh The script builds Essentia's 3rd-party dependencies statically (slow, skipped on re-runs; force with FORCE_3RDPARTY=1 ), then configures and builds Essentia itself with its waf build system into Submodules/essentia/build . It patches Essentia's Linux-oriented 3rd-party build scripts in the working tree as needed for macOS/Apple Silicon, so the essentia submodule will show as dirty afterwards — don't commit those changes. Prerequisites: Python ≤ 3.11 — Essentia's bundled waf needs distutils , removed in Python 3.12. The script picks a suitable interpreter automatically; override with PYTHON=... ./Audionaut/Builds/build_essentia.sh . pkg-config (e.g. brew install pkg-config ) CMake 3.x recommended — some 3rd-party deps ship very old CMakeLists that CMake 4.x refuses (e.g. pip install "cmake~=3.31.0" ). Building Essentia is optional: without it, ESSENTIA_ENABLED auto-detects off and the app and tests compile with the analysis features disabled. demucs.cpp (stem separation) Stem separation runs demucs.cpp , a C++ port of Meta's Demucs, compiled straight from the Submodules/demucs.cpp submodule — no separate build step. It needs the submodule's vendored Eigen ( Submodules/demucs.cpp/vendor/eigen , a nested submodule that --recursive fetches); the CMake build detects it and sets AUDIONAUT_ENABLE_DEMUCS accordingly. The model weights are not in the repository: the app downloads them on first use into its Models folder, or point the CLI at a copy with --model . Build Xcode — open the Xcode project located here: Audionaut/Builds/MacOSX/Audionaut.xcodeproj Visual Studio 2026 — open the Visual Studio solution located here: Audionaut/Builds/VisualStudio2026/Audionaut.sln Linux Makefile — install dependencies: 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 then compile: cd Audionaut/Builds/LinuxMakefile/ make CONFIG=Release -j8 Tests See the Catch2 tests README . Command-line tool (audionaut-cli) audionaut-cli gives scripts, CI and AI agents headless access to .audium projects — no GUI, no audio device. It builds alongside the tests: cmake -B build -S Audionaut/Catch2Tests cmake --build build -j8 --target AudionautCli ./build/AudionautCli_artefacts/AudionautCli --help Every command takes --json to emit exactly one machine-readable result envelope on stdout ( {"ok": true, "result": ...} or {"ok": false, "error": ...} ) with all logging on stderr, plus --quiet . Exit codes: 0 success, 1 operation failed, 2 usage error, 3 feature unavailable in this build (e.g. analyze without Essentia). Option values may be given as --opt value or --opt=value . 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 # bar 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; needs the Demucs model audionaut-cli export song.audium -o mix.wav --sample-rate 48000 --bit-depth 24 A typical agent flow: create → import → analyze → auto-edit / assemble → export , checking ok in each --json envelope. Projects written by the CLI open in the GUI app and vice versa. End-user documentation lives in the User Manual . CLI invocations report anonymous usage statistics under the same strictly opt-in consent as the app (one cli_command event: verb and exit code) — nothing is sent unless consent was granted in the app's settings. Set AUDIONAUT_DISABLE_ANALYTICS=1 to switch the CLI's reporting off regardless (CI environments, scripts). The main Audionaut app also accepts the same verbs (Projucer-style): run the app binary with a verb and it executes headlessly and quits with the command's exit code, even while a GUI instance is open — a file argument or no arguments launches the GUI as usual. ./Audionaut.app/Contents/MacOS/Audionaut export ~/Music/song.audium -o ~/Music/mix.wav Note: the macOS app is sandboxed, so its in-app CLI can only reach entitlement-covered locations such as ~/Music ; the standalone audionaut-cli build has no such restriction. On Windows, the app is a GUI program — the shell prompt returns immediately and output interleaves with it; prefer audionaut-cli for scripting there. License Audionaut is dual-licensed under GPL3 (or later) and a commercial license — see LICENSE.md for details. Contributing Contributions are welcome — see CONTRIBUTING.md for how to get started and the required Contributor License Agreement ( CLA.md ). Support If Audionaut is useful to you, consider sponsoring its development — sponsorship directly funds development time and keeps the project sustainable. (131 points, 45 comments on Hacker News)
由 claude-code/sonnet 自動生成