OpenUtau MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenUtau MCP Make a new song at 128 BPM and sing さくら さくら on A4 A4 B4 with my Japanese voicebank."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenUtau MCP
Lets Claude (Claude Desktop / Claude Code) operate OpenUtau 0.1.576 on Windows: write melodies and lyrics in English and Japanese, pick singers and phonemizers, check pronunciation, play, and export WAV/MIDI.
Two parts:
Part | What it does |
| ~60 tools. Live tools talk to the plugin; |
| Starts automatically inside OpenUtau and serves a local control API on |
Requirements
Windows, OpenUtau 0.1.576 (default install:
C:\Program Files\OpenUtau)Python 3.11+ and uv (or pip)
.NET 10 SDK to build the plugin (only the runtime is needed to run OpenUtau)
Related MCP server: soundgrep
Install
1. Python server
git clone <this repo> openutau-mcp
cd openutau-mcp
uv venv -p 3.11
uv pip install -e ".[kanji]"The kanji extra installs pykakasi, which turns kanji lyrics into hiragana. Without it kanji are kept and a
warning is returned.
2. Build and install the plugin
If you have no .NET 10 SDK, install one into your user folder (no admin, no system changes):
Invoke-WebRequest https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
.\dotnet-install.ps1 -Channel 10.0 -InstallDir $env:USERPROFILE\.dotnet-sdk10 -NoPathBuild against your installed OpenUtau (so the types match the running app) and copy the DLL:
& $env:USERPROFILE\.dotnet-sdk10\dotnet build plugin -c Release
# OpenUtau somewhere else? add -p:OpenUtauDir="D:\Apps\OpenUtau"
New-Item -ItemType Directory -Force "$env:USERPROFILE\Documents\OpenUtau\Plugins\OpenUtauMcp"
Copy-Item plugin\bin\Release\net10.0\OpenUtauMcp.Plugin.dll "$env:USERPROFILE\Documents\OpenUtau\Plugins\OpenUtauMcp\"Restart OpenUtau (it loads plugins only at startup). The OpenUtau log shows
OpenUtau MCP bridge listening on 127.0.0.1:51128. In the piano roll, Batch Edit → OpenUtau MCP: bridge status
shows the same as a toast. The plugin adds nothing to the phonemizer list and changes no track.
3. Register with Claude
Claude Code
claude mcp add openutau -- "C:\path\to\openutau-mcp\.venv\Scripts\openutau-mcp.exe"Claude Desktop — edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"openutau": {
"command": "C:\\path\\to\\openutau-mcp\\.venv\\Scripts\\openutau-mcp.exe"
}
}
}Optional environment variables: OPENUTAU_EXE (path to OpenUtau.exe), OPENUTAU_DATA_DIR (default
Documents\OpenUtau), OPENUTAU_MCP_PORT (default 51128; set the same variable for OpenUtau to move the plugin).
Optionally copy skill/SKILL.md into your Claude skills folder (e.g. .claude/skills/openutau/SKILL.md) for
step-by-step workflows. skill/mix_stems.py (copy it next to SKILL.md) is the helper the skill uses to line up,
level, pan and mix exported WAV stems into one stereo file.
Usage
Ask Claude things like:
"Is OpenUtau ready?" →
openutau_status"Make a new song with my Japanese voicebank at 128 BPM and sing さくら さくら on A4 A4 B4."
"Add an English track with my English voicebank and sing 'Hel-lo world' as quarter notes from C4."
"Check the pronunciation of part 1." →
list_phonemes(has_oto: false= no sample for that phoneme)"Export a WAV to my desktop."
Basics: 480 ticks = one quarter note; pitch C4 = 60; note positions are relative to their part; one tool call = one
undo step in OpenUtau.
Lyrics
Japanese: one mora per note.
きゃりーぱみゅぱみゅ、ちゃっと→ きゃ り + ぱ みゅ ぱ みゅ ちゃ っ と (ー holds the previous vowel as a+note);夜空→ よ ぞ ら.English: one word per note; hyphens mark syllables, extra syllables become
+notes.Hel-lo, beau-ti-ful world!→ hello + beautiful + + world.
Phonemizers
Voicebank | Phonemizer |
Japanese UTAU (CV / VCV / CVVC) |
|
English ARPAsing |
|
English VCCV |
|
English X-SAMPA |
|
English lyrics on a Japanese bank |
|
Tool groups
App:
openutau_status,launch_openutau,close_openutauLive (bridge): project (
get_project,new_project,open_project,save_project,import_tracks,undo,redo), tempo/time signature/key, catalog (list_singers,list_phonemizers,list_expressions), tracks, parts, notes (list_notes,add_notes,edit_notes,replace_lyrics,delete_notes,set_note_expression), lyrics (assign_lyrics,set_lyrics), melody + lyrics in one call (add_melody, e.g.A4:1 A4:1 B4:2 r:1),fit_part(shrink/grow a part to its notes),rank_phonemizers(best phonemizer for a singer), pitch curves (set_pitch), expression curves (get_curve,set_curve,clear_curve),refresh_singers,list_phonemes, playback (play,pause,stop,seek), export (export_wav,export_midi)Files (OpenUtau may be closed):
ustx_create,ustx_summary,ustx_set_tempo,ustx_add_track,ustx_set_track_singer,ustx_add_voice_part,ustx_add_notes,ustx_list_notes,ustx_edit_notes,ustx_delete_notes,ustx_set_vibrato,ustx_assign_lyrics,ustx_add_melody,ustx_fit_part,ust_import,ust_exportVoicebanks:
list_voicebanks,get_voicebank,search_otoUtilities:
note_to_midi,midi_to_note,beats_to_ticks,ticks_to_beats,split_lyrics
Security
The plugin listens on 127.0.0.1 only. Every request must carry X-OpenUtau-MCP: 1 and no Origin header,
otherwise it gets 403, so web pages in your browser cannot drive it. open_project / new_project refuse to
discard unsaved changes unless force=true.
Tests
.venv\Scripts\python tests\e2e_test.py # file, voicebank and utility tools over stdio
.venv\Scripts\python tests\e2e_test.py --live # also drives the running OpenUtau (needs the plugin)The live test opens its own temporary project; it refuses to run if OpenUtau has unsaved changes. If
tools/ustxcheck is built (dotnet build tools/ustxcheck -c Release -o .build/ustxcheck), the file test also checks
that OpenUtau's own loader accepts the written .ustx files.
License
MIT — see LICENSE. Not affiliated with the OpenUtau project.
Available Tools
70 toolsadd_melodyB
Add a melody with its lyrics in one call. melody: space-separated PITCH:BEATS (r = rest). lyrics are split like set_lyrics and must give one lyric per sounding note (use "+" for held syllables). / メロディと歌詞を一度に追加します。melody は「音名:拍」(r = 休符)。歌詞は set_lyrics と同じ規則で分割され、 音の数と一致する必要があります(伸ばす音節は「+」)。
Inputs: part (required), melody (required), lyrics, language, +1 more.
add_notesC
Add notes to a voice part (positions relative to the part); the part grows if needed. / ボイスパートに音符を追加します(位置はパート相対)。必要ならパートを延長します。
Inputs: part (required), notes (required).
add_partC
Add an empty voice part to a track (position/duration in ticks; 7680 = 4 bars of 4/4). / トラックに空のボイスパートを追加します(位置・長さはティック、7680 = 4/4 で4小節)。
Inputs: track (required), name, duration, position.
add_trackC
Add a track. Setting a singer also applies its default phonemizer and a suitable renderer unless given. Phonemizer may be a full type name, class name or tag ("EN ARPA", "JA VCV & CVVC"). / トラックを追加します。歌手を指定すると既定の音素化器とレンダラーも設定されます。 音素化器は型名・クラス名・タグ("EN ARPA" など)で指定できます。
Inputs: name, singer, renderer, phonemizer.
assign_lyricsB
Split text into lyrics and lay out new consecutive notes from start_tick. durations / tones may be one value or a list (the last value repeats). / テキストを歌詞に分割し、start_tick から連続する新しい音符を作ります。 durations・tones は単一値かリスト(最後の値を繰り返し)。
Inputs: part (required), text (required), tones, language, +2 more.
beats_to_ticksA
Quarter-note beats to ticks (1 beat = 480). / 拍数(四分音符)をティックに変換します(1拍 = 480)。
Inputs: beats (required). Returns: result
clear_curveB
Reset an expression curve of a part to its default. / 表情カーブを既定値に戻します。
Inputs: abbr (required), part (required).
close_openutauA
Close OpenUtau. Refuses if there are unsaved changes unless force=true (force discards them). / OpenUtau を終了します。未保存の変更がある場合は force=true が必要です(変更は破棄されます)。
Inputs: force.
delete_notesB
Delete notes by index; no indices = delete all notes in the part. / 番号で音符を削除します。indices を省略するとパートの全音符を削除します。
Inputs: part (required), indices.
edit_notesC
Edit notes in place by index (position, duration, tone, lyric, tuning, vibrato); pitch curves are kept. / 番号で指定した音符をその場で編集します(位置・長さ・音高・歌詞・微調整・ビブラート)。ピッチ曲線は保持されます。
Inputs: part (required), edits (required).
export_midiC
Export the project as a MIDI file. / プロジェクトを MIDI ファイルに書き出します。
Inputs: path (required).
export_wavA
Render the mixdown to a WAV file, or one WAV per track (per_track=true). Can take minutes. / ミックスダウンを WAV に書き出します。per_track=true でトラックごとに書き出します。数分かかることがあります。
Inputs: path (required), per_track.
fit_partB
Resize a voice part to end on the first bar line after its last note. / ボイスパートの長さを、最後の音符の後の最初の小節線までに合わせます。
Inputs: part (required).
get_curveA
Read an expression curve of a part (e.g. dyn, pitd, tenc, brec, genc, voic): [tick, value] points, min/max/default. / パートの表情カーブを読みます(dyn・tenc・brec など)。
Inputs: abbr (required), part (required).
get_projectB
Summary of the open project: file, saved state, key, tempos, time signatures, tracks, voice parts. / 開いているプロジェクトの概要(ファイル、保存状態、キー、テンポ、拍子、トラック、ボイスパート)。
Inputs: no named parameters.
get_voicebankB
Details of a voicebank: info, oto sets and alias count. / 音源の詳細(情報、oto セット、エイリアス数)。
Inputs: voicebank (required).
import_tracksC
Import the tracks of another project file into the open project. / 別のプロジェクトファイルのトラックを現在のプロジェクトに読み込みます。
Inputs: path (required), import_tempo.
launch_openutauA
Start OpenUtau (optionally with a project). If it is already running with the bridge, opens the project there. / OpenUtau を起動します(プロジェクト指定可)。起動済みならそのプロジェクトを開きます。
Inputs: project_path.
list_expressionsB
Project expressions (abbr, name, type, min, max, default). / プロジェクトの表情パラメータ一覧。
Inputs: no named parameters.
list_notesB
Notes of a voice part: index, position, duration, tone, lyric, tuning, vibrato. / ボイスパートの音符一覧(番号、位置、長さ、音高、歌詞、微調整、ビブラート)。
Inputs: part (required).
list_phonemesB
Phonemes OpenUtau produced for a part (note index, lyric, position, duration, phoneme, has_oto). Use it to check pronunciation. / パートについて OpenUtau が生成した音素一覧。発音の確認に使います。
Inputs: part (required).
list_phonemizersA
Installed phonemizers (type, name, tag, language, author); filter by language such as "EN" or "JA". / インストール済みの音素化器一覧。language("EN"・"JA" など)で絞り込めます。
Inputs: language.
list_singersA
Singers OpenUtau has loaded: id, name, type, location, default phonemizer, supported renderers. Singers without a default phonemizer get a "suggested_phonemizer" (a guess: confirm with rank_phonemizers). / OpenUtau が読み込んだ歌手一覧(ID、名前、種類、場所、既定の音素化器、対応レンダラー)。 既定の音素化器が無い歌手には "suggested_phonemizer" を付けます。
Inputs: no named parameters.
list_voicebanksB
Voicebanks in the Singers folder and AdditionalSingerPath (id as OpenUtau uses it, name, author, default phonemizer). / Singers フォルダーと AdditionalSingerPath の音源一覧(OpenUtau と同じ ID)。
Inputs: no named parameters.
midi_to_noteB
MIDI number to note name (60 = C4). / MIDI 番号を音名に変換します(60 = C4)。
Inputs: midi (required). Returns: result
new_projectA
Start a new empty project. force=true discards unsaved changes. / 新規プロジェクトを作成します。force=true で未保存の変更を破棄します。
Inputs: force.
note_to_midiB
Note name to MIDI number (C4 = 60). / 音名を MIDI 番号に変換します(C4 = 60)。
Inputs: note (required). Returns: result
open_projectA
Open a project file (.ustx, .ust, .vsqx, .mid, .musicxml, .svp, ...). force=true discards unsaved changes. / プロジェクトを開きます(.ustx .ust .vsqx .mid .musicxml .svp など)。force=true で未保存の変更を破棄します。
Inputs: path (required), force.
openutau_statusA
Is OpenUtau running, is the bridge reachable, and how to fix it if not. Call this first. / OpenUtau が起動しているか、ブリッジに接続できるか、できない場合の対処法。最初に呼んでください。
Inputs: no named parameters.
pauseB
Pause playback. / 再生を一時停止します。
Inputs: no named parameters.
playB
Start playback (from tick, optionally until end_tick, optionally one track only). / 再生します(tick から、end_tick まで、track 指定でそのトラックのみ)。
Inputs: tick, track, end_tick.
rank_phonemizersA
Find the best phonemizer for a singer by trying each installed classic phonemizer on sample lyrics and counting how many of the sounds it asks for exist in the voicebank (score 1.0 = every sound has a sample). language: "EN", "JA" or omitted for both; text: your own lyrics instead of the built-in samples. Nothing in the project changes. / 各音素化器でサンプル歌詞を音素化し、音源にサンプルがある音の割合で順位付けします (1.0 = すべての音にサンプルあり)。プロジェクトは変更しません。
Inputs: singer (required), text, language.
redoA
Redo the last undone edit. / 取り消した編集をやり直します。
Inputs: no named parameters.
refresh_singersA
Rescan the Singers folder so newly installed voicebanks appear without restarting OpenUtau. / Singers フォルダを再読み込みし、新しく入れた音源を OpenUtau の再起動なしで使えるようにします。
Inputs: no named parameters.
remove_partC
Remove a voice part. / ボイスパートを削除します。
Inputs: part (required).
remove_tempoB
Remove the tempo change at a tick (not tick 0). / 指定ティックのテンポ変更を削除します(tick 0 は不可)。
Inputs: tick (required).
remove_trackC
Remove a track and its parts. / トラックとそのパートを削除します。
Inputs: track (required).
replace_lyricsB
Write lyrics onto consecutive notes starting at note index start (one item per note, no splitting). / 音符番号 start から順に歌詞を書き込みます(1要素 = 1音符、分割なし)。
Inputs: part (required), lyrics (required), start.
save_projectB
Save as .ustx to path, or to the current file if path is omitted. / .ustx として保存します。path 省略時は現在のファイルに上書き保存します。
Inputs: path.
search_otoB
Search oto.ini aliases of a voicebank (substring match). / 音源の oto.ini エイリアスを検索します(部分一致)。
Inputs: query (required), voicebank (required), limit.
seekC
Move the playback cursor. / 再生位置を移動します。
Inputs: tick (required).
set_curveA
Draw an expression curve through [tick, value] points (part-relative ticks), straight lines between them; values are clamped to the curve's range. Use for dynamics (dyn), DiffSinger tension (tenc), breathiness (brec), gender (genc), voicing (voic), pitch deviation (pitd, cents). / [ティック, 値] の点を直線で結んで表情カーブを描きます。
Inputs: abbr (required), part (required), points (required).
set_keyB
Set the project key: 0 = C ... 11 = B, or a name like "F#" / "Bb". / プロジェクトのキー:0 = C 〜 11 = B、または "F#"・"Bb" などの音名。
Inputs: key (required).
set_lyricsC
Split text into lyrics and write them onto existing notes from start_index. / テキストを歌詞に分割し、start_index 番目からの既存の音符に書き込みます。
Inputs: part (required), text (required), language, start_index.
set_note_expressionB
Set a note expression (e.g. vel, vol, atk, dec, gen, bre, clr) on notes; no indices = all notes; value null = reset to default. / 音符の表情(vel・vol・atk など)を設定します。indices 省略で全音符、value=null で既定値に戻します。
Inputs: abbr (required), part (required), value (required), indices.
set_pitchA
Replace the pitch curve of notes (scoops, falls, drifts, overshoot). At least 2 points. snap_first=true makes the first point start from the previous note's pitch, overriding its y (a normal slide); use false for a scoop or any start you set yourself. Examples: scoop up into a note (snap_first=false): [{x:-40,y:-20},{x:60,y:0}]; fall at a phrase end on a 600 ms note: [{x:-40,y:0},{x:40,y:0},{x:420,y:0},{x:600,y:-30,shape:"i"}]. / 音符のピッチ曲線を置き換えます(しゃくり・フォール・揺れ)。点は2つ以上。
Inputs: part (required), points (required), indices (required), snap_first.
set_tempoB
Set the tempo at tick 0, or add/replace a tempo change at a tick. / テンポを設定します(tick 0)。tick を指定するとその位置にテンポ変更を追加・置換します。
Inputs: bpm (required), tick.
set_time_signatureA
Set the time signature at bar 0, or add a change at a bar (e.g. 3/4 = 3, 4). / 拍子を設定します(bar 0)。bar を指定するとその小節に拍子変更を追加します(例:3/4 は 3, 4)。
Inputs: beat_unit (required), beat_per_bar (required), bar.
split_lyricsB
Preview how text is split into one lyric per note (language auto / ja / en). / テキストが1音符ずつの歌詞にどう分割されるかを確認します(auto / ja / en)。
Inputs: text (required), language.
stopB
Stop playback. / 再生を停止します。
Inputs: no named parameters.
ticks_to_beatsC
Ticks to quarter-note beats. / ティックを拍数に変換します。
Inputs: ticks (required). Returns: result
undoB
Undo the last edit. / 直前の編集を取り消します。
Inputs: no named parameters.
update_partC
Rename, move (position / track) or resize a voice part. / ボイスパートの名前変更・移動(位置・トラック)・長さ変更。
Inputs: part (required), name, track, duration, +1 more.
update_trackB
Change a track: singer, phonemizer, name, renderer, volume (dB, -24..12), pan (-100..100), mute, solo. / トラックを変更します:歌手、音素化器、名前、レンダラー、音量(dB)、パン、ミュート、ソロ。
Inputs: track (required), pan, mute, name, +5 more.
ust_exportB
Export one voice part of a .ustx as a classic .ust (gaps become R rests; Shift_JIS by default). / .ustx のボイスパートを UTAU の .ust に書き出します(隙間は休符 R、既定は Shift_JIS)。
Inputs: ust_path (required), ustx_path (required), part, encoding.
ust_importC
Convert a classic UTAU .ust (Shift_JIS unless Charset= says otherwise) into a new .ustx file. / UTAU の .ust(既定は Shift_JIS、Charset= 行があれば従う)を新しい .ustx に変換します。
Inputs: ust_path (required), ustx_path (required), singer, overwrite, +1 more.
ustx_add_melodyD
add_melody for a .ustx file. / .ustx ファイル版の add_melody。
Inputs: part (required), path (required), melody (required), lyrics, +2 more.
ustx_add_notesB
Add notes to a voice part in a .ustx file (the part grows if needed). / .ustx ファイルのボイスパートに音符を追加します(必要ならパートを延長)。
Inputs: part (required), path (required), notes (required).
ustx_add_trackC
Add a track to a .ustx file. / .ustx ファイルにトラックを追加します。
Inputs: path (required), name, singer, phonemizer.
ustx_add_voice_partC
Add an empty voice part to a .ustx file. / .ustx ファイルに空のボイスパートを追加します。
Inputs: path (required), name, track, duration, +1 more.
ustx_assign_lyricsC
Split text into lyrics and add consecutive notes to a voice part in a .ustx file. / テキストを歌詞に分割し、.ustx ファイルのボイスパートに連続する音符を追加します。
Inputs: part (required), path (required), text (required), tones, +3 more.
ustx_createC
Create a new .ustx file (one track, no parts). singer = voicebank id or name. / 新しい .ustx ファイルを作成します(1トラック、パートなし)。singer は音源 ID か名前。
Inputs: path (required), bpm, name, singer, +2 more.
ustx_delete_notesC
Delete notes by index from a .ustx file (no indices = all). / .ustx ファイルの音符を削除します(省略で全部)。
Inputs: part (required), path (required), indices.
ustx_edit_notesC
Edit notes by index in a .ustx file (position, duration, tone, lyric, tuning, vibrato). / .ustx ファイルの音符を番号で編集します。
Inputs: part (required), path (required), edits (required).
ustx_fit_partD
fit_part for a .ustx file. / .ustx ファイル版の fit_part。
Inputs: part (required), path (required).
ustx_list_notesC
List the notes of a voice part in a .ustx file. / .ustx ファイルのボイスパートの音符一覧。
Inputs: part (required), path (required).
ustx_set_tempoB
Set the tempo at tick 0 or a tempo change at a tick in a .ustx file. / .ustx ファイルのテンポ(tick 0)またはテンポ変更を設定します。
Inputs: bpm (required), path (required), tick.
ustx_set_track_singerB
Set the singer (and phonemizer: given > voicebank default > Japanese presamp) of a track in a .ustx file. / .ustx ファイルのトラックの歌手(と音素化器)を設定します。
Inputs: path (required), track (required), singer (required), phonemizer.
ustx_set_vibratoB
Set vibrato fields on notes in a .ustx file (no indices = all notes). length > 0 turns vibrato on. / .ustx ファイルの音符にビブラートを設定します(省略で全音符)。length > 0 で有効。
Inputs: part (required), path (required), vibrato (required), indices.
ustx_summaryB
Summary of a .ustx file (tempos, tracks, voice parts). / .ustx ファイルの概要。
Inputs: path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 70 tools
The surface is split into two near-parallel families — live-editor tools (add_notes, edit_notes, set_curve, play) and .ustx file tools (ustx_add_notes, ustx_edit_notes, ustx_assign_lyrics) — with identical purposes distinguished only by whether the project is open in the app. On top of that, lyric entry has five overlapping variants (replace_lyrics, set_lyrics, assign_lyrics, add_melody, split_lyrics), so an agent can easily pick the wrong layer or the wrong lyric tool.
Almost everything is snake_case verb_noun (add_track, remove_part, set_tempo, get_curve), and the ustx_/ust_ prefixes act as readable namespaces. Minor deviations exist: new_project instead of create_project, noun-only tools like pause/stop/seek/undo, and converter-style names (ticks_to_beats, note_to_midi) that break the verb pattern.
70 tools is heavy for a DAW integration and is inflated mainly by duplicating ~15 operations for offline .ustx editing alongside the live-editor equivalents. A single mode-switched or file-path-parameterized surface could halve the count; as listed it is well past the reasonable 3-15 range.
Coverage is genuinely broad: project lifecycle (new/open/save/launch/close), tracks, parts, notes, expressions and curves, pitch curves, playback, WAV/MIDI export, voicebank and oto inspection, and UST import/export. Gaps are minor — no explicit part-level get beyond list_notes, and no project settings/track-level expression defaults tool — but agents can work around them.
Maintenance
Related MCP Connectors
Generate full songs with vocals, instrumentals and sound effects from text. One server for Suno, Google Lyria, Mureka, MiniMax, ACE-Step, YuE and ElevenLabs. Your agent can quote the credit cost before generating, start a song, wait for it to finish and return download links. Sign in with OAuth; optional daily credit caps; retries never charge twice.
A film studio inside your own Claude: your Claude plans, writes, makes, checks and finishes films, pictures, voices and music with you, on your own provider keys.
Notes, tasks, habits, journal and 6 more tools Claude can read and change, with undo. Free.
Browser DAW for AI assistants: build multitrack songs with MIDI, effects, stems and generation.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language control over Ableton Live for generating musical patterns, melodies, and full song arrangements. It also provides tools for sample searching and mixing assistance through an OSC-based connection with Claude Desktop.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables semantic search of local audio samples by describing sounds, MIDI generation, stem separation, and other music production tools from Claude Desktop.2MIT
- FlicenseNot gradedqualityDmaintenanceControls OpenUtau (vocal synthesis software) from Claude Desktop, enabling project creation, editing, and live note manipulation via a bridge plugin.3-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to generate, inspect, and micro-tune OpenUtau .ustx project files and DiffSinger neural expression curves.5MIT