Skip to main content
Glama
io.github.AudialAI/audial-mcp

io.github.AudialAI/audial-mcp

Official

audial-mcp

AllMCPs Verified

Powered by Audial — run Audial's hosted audio tools from any MCP client: split stems, analyze audio, find a song's sections, tempo and bars and add audio features, tags or timed lyrics to that analysis, master tracks, build sample packs, convert audio to MIDI, generate music, turn a one-shot into an editable Audial Synth or Serum 2 preset, and sing lyrics in a reference voice. See the API reference for details on what each tool calls.

mcp-name: io.github.AudialAI/audial-mcp

Install

You need an Audial account (https://audialmusic.ai?utm_source=github&utm_medium=readme&utm_campaign=mcp) and uv. There is no API key to copy: the first time a tool runs, a sign-in page opens in your browser. Approve it and the tool carries on.

Claude Code

claude mcp add audial -e AUDIAL_RESULTS_DIR=~/Audial -- uvx audial-mcp

Claude Desktop, one click

Download audial-mcp-<version>.mcpb from the latest release and double-click it. Claude Desktop fetches what it needs, so there is nothing else to install or configure.

Claude Desktop / Cursor / any client with a JSON config

{
  "mcpServers": {
    "audial": {
      "command": "uvx",
      "args": ["audial-mcp"],
      "env": {
        "AUDIAL_RESULTS_DIR": "~/Audial"
      }
    }
  }
}

Signing in

The sign-in is saved on your computer (~/.audial/credentials.json, readable only by you) and shared with the audial command line and Python SDK, so audial login in a terminal signs the MCP server in too. If you have not approved within two minutes the tool returns the sign-in link instead; approve it and ask again. The account, sign_in and sign_out tools show and change who is signed in, and each connected computer is listed, and can be disconnected, under Apps & API Keys in your profile at audialmusic.ai.

On a server or in CI, where nobody can sign in, set AUDIAL_API_KEY to a key created on that page. A key set this way takes priority over a saved sign-in.

Related MCP server: media-gen-mcp

Tools

Tool

What it does

stem_split

Split a track into vocals, drums, bass, other (optionally retime / rekey)

analyze

BPM, key and other characteristics

segment

Song sections, tempo and bars from the mix, in about half a minute; returns an analysis_id

audio_features

Energy, danceability, loudness, mode, key and tatum, for the song and each section

tag_audio

Genre, moods, instruments and artist tags for the mix and each part, plus a written description

get_lyrics

Lyrics as timed lines (word timings in the saved file)

master

Mastering, optionally matched to a reference

generate_samples

Sample pack from an analysis, or from a file in one call

generate_midi

Audio to MIDI

generate_music

Text to music, covers, remixes, lego and understand with the Audial music model

sound2vital

One isolated sound → editable Audial Synth (Vital) preset. Not for loops or melodies

sound2serum

One isolated sound → editable Xfer Serum 2 (.SerumPreset) preset. Not for loops or melodies

text2vox

Lyrics + reference voice → sung vocal and MIDI

pipeline_status

Look up a pipeline by id: its state, each step, and the outputs so far

service_status

Which tools have a worker awake right now, and what a cold start will cost

list_results

Browse previous results in your results folder

Analysis and add-ons

segment analyses the mix in about half a minute: no stems needed. It returns the sections (with their phrases) and a tempo map, plus an analysis_id. Beats and bars aren't listed one by one: grid describes them -- where each constant-tempo piece starts, its BPM, and its bar and beat. Every beat time is start + k × 60 / bpm. Most tracks have one piece.

Pass the analysis_id to audio_features, tag_audio, get_lyrics or generate_samples to add that result to the analysis, whenever you like. Nothing is uploaded again. Each of them also takes a file_path instead, and then runs segment on it first.

  • Audio features need nothing more, so they can run straight after the analysis.

  • Tags, lyrics and the sample pack read the track's stems. Audial makes them automatically after each analysis, so right after a new one these tools wait a few minutes for them.

  • If a tool analysed a file and the next step failed or timed out, the error gives the new analysis_id: call the tool again with it, rather than with the file.

An analysis counts as one run. Everything you add to it (features, tags, lyrics, a sample pack) is included.

generate_samples on a file runs as an Audial pipeline: it prepares the track (analysis and stems together), then builds the pack, as one job. Each step is reported as it starts and finishes ("prepare completed in 41 s; sample-pack running"). The pipeline id comes back as the result's execution_id -- pass it to pipeline_status to check on a job whose call timed out. segment with features (kept for older integrations) is a pipeline as well.

Per-note lyrics

text2vox lines lyrics up with a melody. lyrics_mode="per_note" is the mode that gives exact control: the lyrics are pipe-delimited, one token per MIDI note, and a hold keeps the previous syllable going through the next note.

Token

Meaning

grace

Sung on this note

-

Hold: continue the previous syllable through this note (the documented form)

+

Hold as well

empty

Hold as well -- what a double pipe produces

amazing|-|-|grace|-|how|sweet|the|sound

That sings "amazing" across notes 1-3 and "grace" across notes 4-5, and needs a MIDI file with exactly nine notes. There is no rest token: a note that should be silent should not be in the MIDI. The token count must equal the note count, and the first token must be a syllable -- a lyric string that breaks either rule comes back as a tool error naming the note it is about ("note 1 has no syllable; the first note needs one (position 1)"), before anything is uploaded.

Cold starts

Audial's workers scale to zero, so the first job after an idle period spends extra time starting one and loading the model -- a few minutes on a GPU tool; every job after it is fast. The analysis and each add-on (audio_features, tag_audio, get_lyrics) run on workers of their own, so the first add-on after a quiet spell can start up for a minute or more even when segment was quick. Audial reports that phase on the job it is already polling, and every tool here relays it as a progress notification and a log line:

Warming up the machine — the first request takes a few minutes longer than usual
(about 3 min); every run after this is faster
Working on your job…

It is the same sentence the Audial website, CLI and plugins show. service_status answers the same question before you start anything, so a long wait can be explained in advance.

What leaves your machine

Audio and text you pass to a tool are uploaded to Audial's API (https://api.audialmusic.ai) over HTTPS and processed on Audial's servers; results are downloaded into AUDIAL_RESULTS_DIR (default ~/Audial). Nothing else is sent.

A tool given an analysis_id uploads nothing: it works on the audio Audial already has for that analysis. Audial makes and keeps the track's stems with each analysis, like your other results. To fill in artist tags, tag_audio has Audial's servers look up the track's title and artist in a public music database; that lookup gets the title and artist, never the audio.

Two other files are read if they exist, because the Audial SDK looks for them: ~/.audial/.audial_config.json and a .env in the directory the server was started from. Credentials from your MCP client's config always win: audial-mcp snapshots its environment before the SDK loads either file, so neither can redirect your credentials or the API host.

Every tool except list_results calls the Audial API, which requires an active Audial subscription on the account; without one the tool returns the API's subscription message.

Configuration

Variable

Required

Default

AUDIAL_API_KEY

no

browser sign-in

AUDIAL_USER_ID

no; only with an older API key that does not start with aud_

AUDIAL_RESULTS_DIR

no

~/Audial

AUDIAL_JOB_TIMEOUT_S

no

900

AUDIAL_API_BASE_URL

no

production API

License

MIT. Source: https://github.com/AudialAI/audial-mcp

Available Tools

19 tools
accountShow the Audial account in useA
Read-only

Show whether this computer is signed in to Audial, and as whom.

Use when a tool reports a credentials problem or the user asks which account is in use. Reads local settings only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
emailNo
sourceNoWhere the credentials come from: 'sign-in' or 'api-key'.
summaryYes
signed_inYes
analyzeAnalyze audioA
Read-only

Analyze a track: BPM, key, loudness and other characteristics.

Use this first whenever the user asks for tempo, key or loudness. It is the fastest tool (seconds), does not count as a run, and changes nothing. The answer is in metadata and the same data is saved to the results folder.

NameRequiredDescriptionDefault
file_pathYesFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
audio_featuresAudio featuresA

Measure energy, danceability, loudness, mode, key and tatum, for the song and each section.

Give the analysis_id from segment: nothing is uploaded and it is included in that analysis's run. A file_path runs segment first (one run). Needs no stems, so it can run straight after segment. Energy and danceability run 0-1: energy reflects loudness, rhythmic activity and low end; danceability, how strong and regular the beat is. Both are measured per section, so a drop reads higher than its breakdown. Loudness is in LUFS. The values are in metadata (song, sections) and saved to the results folder.

NameRequiredDescriptionDefault
file_pathNoFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded. For a track that has not been analysed yet: segment runs on it first (one run). Give this or analysis_id.
analysis_idNoThe analysis_id a segment result returned (in its metadata and summary). Reuses that analysis: nothing is uploaded and it does not count as another run. Give this or file_path.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
generate_midiAudio to MIDIA

Transcribe an audio file to MIDI.

Use to get notes out of audio. On a full mix, run stem_split first and transcribe the stem you want. Counts as one run. MIDI files go to a new results folder; the source is unchanged.

NameRequiredDescriptionDefault
bpmNoOverride the detected tempo for note quantisation.
file_pathYesFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
generate_musicGenerate musicA

Generate music with the Audial music model.

Text to music, covers, remixes, lego (re-render with one track emphasised), or analysis (understand). Use for new or transformed music, not to edit an existing mix: that is master or stem_split. Takes a few minutes and counts as one run, and audio goes to a new results folder.

NameRequiredDescriptionDefault
bpmNoTempo hint in beats per minute.
seedNoSeed for reproducible output.
lyricsNoLyrics with optional section tags like [Verse] and [Chorus]. Omit for instrumental.
promptYesStyle description: genre, mood, instruments, vocal character. Tempo and key words in the prompt steer the model more than the numeric bpm/key fields, which are hints, not constraints.
key_scaleNoKey hint, e.g. 'G major'.
task_typeNotext2music (default), cover, remix, lego, or understand.text2music
batch_sizeNoNumber of variations, 1-8.
track_nameNoTrack to emphasise for lego: vocals, drums, bass, guitar, piano, strings, synth, other.
source_fileNoLocal audio file; required for remix, lego, understand.
audio_formatNomp3, wav, flac, opus or aac.mp3
instrumentalNoGenerate without vocals.
audio_durationNoLength in seconds (10-600).
reference_fileNoLocal audio file; required for cover.
repainting_endNoRemix end time in seconds (-1 = end).
time_signatureNoe.g. '4/4'.
vocal_languageNoLanguage code for vocals, e.g. 'en'.en
negative_promptNoWhat to avoid, comma-separated.
repainting_startNoRemix start time in seconds.
audio_cover_strengthNo0-1 fidelity to the original for cover/remix.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
generate_samplesGenerate a sample packA

Extract a sample pack (one-shots and loops) from a track.

Use when the user wants drum hits or loops taken from a finished track. With the analysis_id from segment, the pack is built from that analysis's sections and the stems Audial made for it: nothing is uploaded and it is included in the analysis's run (right after a new analysis it waits a few minutes for the stems). With file_path it runs the sample-pack pipeline: prepares the track (analysis and stems together), then builds the pack; one call, counted as one run, each step reported as it starts and finishes. If that call times out the job keeps running: pipeline_status finds it. Samples go to a new results folder.

NameRequiredDescriptionDefault
genreNoGenre hint.
job_typeNoSample pack job type accepted by Audial (default engine choice when omitted).
file_pathNoFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded. Give this or analysis_id.
componentsNoWhich components to sample, e.g. ['drums', 'bass'].
analysis_idNoThe analysis_id a segment result returned (in its metadata and summary). Reuses that analysis: nothing is uploaded and it does not count as another run. Give this or file_path.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
get_lyricsGet lyricsA

Transcribe a track's lyrics as timed lines.

Give the analysis_id from segment: nothing is uploaded and it is included in that analysis's run. A file_path runs segment first (one run). Lyrics read the vocal stem, which Audial makes automatically after each analysis: right after a new analysis this waits for it (a few minutes). metadata.lines has one {start, end, text} per line in seconds on the track's timeline, lyrics the whole text and section_lyrics one entry per section. Word timings are in the saved lyrics.json. An instrumental comes back with is_instrumental true.

NameRequiredDescriptionDefault
file_pathNoFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded. For a track that has not been analysed yet: segment runs on it first (one run). Give this or analysis_id.
analysis_idNoThe analysis_id a segment result returned (in its metadata and summary). Reuses that analysis: nothing is uploaded and it does not count as another run. Give this or file_path.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
list_resultsList previous resultsA
Read-only

List previous Audial results in the results folder, newest first.

Use when the user asks where an earlier output went. Reads the local folder only: no account needed and nothing is sent anywhere.

NameRequiredDescriptionDefault
toolNoFilter by tool name, e.g. 'stem_split'. Omit for all tools.
limitNoMaximum number of jobs to return, newest first.

Output Schema

NameRequiredDescription
resultYes
masterMaster a trackA

Master a mix, optionally matching a reference track.

Use for a finished stereo mix, not for separate stems. Pass a reference track when the user names one. Takes a few minutes and counts as one run. The master goes to a new results folder; the source is unchanged.

NameRequiredDescriptionDefault
file_pathYesFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded.
reference_fileNoOptional reference track whose loudness and tone the master should match.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
pipeline_statusPipeline statusA
Read-only

Look up an Audial pipeline by id: its state, each step, and the outputs so far.

Useful when a generate_samples call on a file, or a segment call with features, timed out: the pipeline keeps running on Audial's side and this says how far it got.

NameRequiredDescriptionDefault
pipeline_idYesId of a pipeline, as returned in `execution_id` by generate_samples on a file or by segment with `features`.

Output Schema

NameRequiredDescription

No output parameters

segmentSegment audioA

Find song sections, tempo and bars (about half a minute).

Use for song structure. Send the mix: no stems needed, and it counts as one run. The result has the sections (with their phrases) and a tempo map. Beats and bars are not listed one by one: grid describes them -- where each constant-tempo piece starts, its BPM, and its bar and beat. Every beat time is start + k * 60 / bpm, and most tracks have one piece. The analysis_id it returns adds audio_features, tag_audio, get_lyrics or generate_samples to this analysis without another run. For tempo and key alone, analyze is quicker.

NameRequiredDescriptionDefault
edmNotrue: dance section names (INTRO, UP, CHORUS, DOWN, OUTRO); false: song section names (INTRO, VERSE, UP, CHORUS, OUTRO). Default: from the genre, else from the audio.
genreNoGenre hint for the section names, e.g. 'Tech House', 'Pop' or 'Drum N Bass' (a name Audial does not know returns the list).
featuresNoOptional, kept for older integrations: also compute these in the same call (mode, energy, loudness, danceability, tatum, tags, lyrics). The call then waits for them, minutes for tags and lyrics. Simpler: audio_features, tag_audio or get_lyrics afterwards with the analysis_id.
file_pathYesFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
service_statusService statusA
Read-only

Which Audial tools have a worker awake right now, and what a cold one will cost.

Audial's GPU workers scale to zero. A tool reported warm: false will spend expectedColdStartMs starting a worker before it does any work -- a few minutes, once -- on top of the job's own expectedRunMs. Worth checking before starting a long job, and worth telling the user about with the notice text when something is cold: otherwise the wait looks like a hang. Nothing here starts a job or costs anything.

NameRequiredDescriptionDefault
toolNoAudial tool to report on: stem_split, analyze, segment, audio_features, tag_audio, get_lyrics, master, generate_samples, generate_midi, generate_music, sound2vital, sound2serum or text2vox. Omit for all of them.

Output Schema

NameRequiredDescription

No output parameters

sign_inSign in to AudialA

Sign in to Audial through the user's browser. Opens an approval page and waits for it.

Not needed before other tools: they start the same sign-in when nobody is signed in.

NameRequiredDescriptionDefault
switch_accountNoSign out first and sign in again, to change or repair the account.

Output Schema

NameRequiredDescription
emailNo
sourceNoWhere the credentials come from: 'sign-in' or 'api-key'.
summaryYes
signed_inYes
sign_outSign out of AudialA

Sign out of Audial on this computer and disconnect it from the account.

Only when the user asks to sign out or switch accounts. The next job asks them to sign in again. Results already downloaded stay where they are.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
emailNo
sourceNoWhere the credentials come from: 'sign-in' or 'api-key'.
summaryYes
signed_inYes
sound2serumResynthesize a one-shot into a Serum 2 presetA

Turn one isolated sound into an editable Xfer Serum 2 preset.

Not for loops or melodies, which give a poor preset. If the result's summary says the match is weak, tell the user and suggest trimming the input to one note.

NameRequiredDescriptionDefault
file_pathYesOne isolated sound: a single note, chord stab or hit, ideally 1-4 s and dry, 20 s at most. Not a loop, melody, drum pattern or anything with several notes in sequence: those produce a poor preset even under 20 s. To use a loop, trim it to one note first. The result is an editable Xfer Serum 2 (.SerumPreset) preset that reproduces its timbre. No plugin needed -- open it in Serum 2.1+.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
sound2vitalResynthesize a one-shot into a synth presetA

Turn one isolated sound into an editable Audial Synth preset.

Not for loops or melodies, which give a poor preset. If the result's summary says the match is weak, tell the user and suggest trimming the input to one note.

NameRequiredDescriptionDefault
file_pathYesOne isolated sound: a single note, chord stab or hit, ideally 1-4 s and dry, 20 s at most. Not a loop, melody, drum pattern or anything with several notes in sequence: those produce a poor preset even under 20 s. To use a loop, trim it to one note first. The result is an editable Audial Synth (.vital) preset that reproduces its timbre.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
stem_splitSplit stemsA

Split a track into separate instrument stems, optionally retimed and rekeyed.

Use for a full song or mix when the user wants vocals, drums, bass or an instrumental on their own. For tempo and key alone use analyze; for sections use segment. Takes a few minutes and counts as one run. Stems go to a new results folder; the source is unchanged.

NameRequiredDescriptionDefault
stemsNoStems to extract from: vocals, drums, bass, other, full_song_without_vocals. Default: vocals, drums, bass, other.
algorithmNoSeparation algorithm. Default 'primaudio'.primaudio
file_pathYesFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded.
target_bpmNoRetime the stems to this tempo (beats per minute).
target_keyNoTranspose the stems to this key, e.g. 'A minor' or 'F# major'.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
tag_audioTag audioA

Tag a track: genre, moods, instruments and artist tags for the mix and each part, plus a written description.

Give the analysis_id from segment: nothing is uploaded and it is included in that analysis's run. A file_path runs segment first (one run). Tags read the track's stems, which Audial makes automatically after each analysis: right after a new analysis this waits for them (a few minutes). The tags are in metadata (genre, song_tags, description) and saved to the results folder.

NameRequiredDescriptionDefault
file_pathNoFull path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded. For a track that has not been analysed yet: segment runs on it first (one run). Give this or analysis_id.
analysis_idNoThe analysis_id a segment result returned (in its metadata and summary). Reuses that analysis: nothing is uploaded and it does not count as another run. Give this or file_path.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes
text2voxSing lyrics in a reference voiceA

Synthesize a sung vocal (and MIDI) from lyrics, a melody and a reference voice.

Needs both a reference clip of the voice and a melody, as MIDI or audio. lyrics_mode decides how the lyrics are lined up with the melody's notes; "per_note" is the one that gives exact control. See the lyrics_mode and lyrics descriptions. Takes a few minutes and counts as one run. Audio and MIDI go to a new results folder.

NameRequiredDescriptionDefault
seedNoSeed for reproducible output.
lyricsYesLyrics to sing. With lyrics_mode 'per_note' this is pipe-delimited, one token per MIDI note, e.g. 'amazing|-|-|grace|-|how|sweet|the|sound'; otherwise it is ordinary text.
midi_fileNoMIDI melody (.mid). Give this or melody_audio_file.
nfe_stepsNoSynthesis steps; more is slower and cleaner.
lyrics_modeNoHow the lyrics line up with the melody. 'auto' (default): ordinary text, one word per MIDI note, aligned for you (word_timestamps_file helps). '1to1': the text is passed to the synthesizer untouched. 'per_note': exact control -- the lyrics are pipe-delimited with one token per MIDI note, in order. In per_note mode a token is either a syllable sung on that note ('grace') or a HOLD, which keeps the previous syllable going through this note: write a hold as '-' (preferred), '+', or an empty token (a double pipe). So 'amazing|-|-|grace|-|how|sweet|the|sound' sings 'amazing' across notes 1-3 and 'grace' across notes 4-5, and needs a MIDI file with exactly 9 notes. There is no rest token: a note that should be silent must not be in the MIDI. The token count has to equal the note count and the first token has to be a syllable, never a hold.auto
pitch_shiftNoSemitones to shift the melody.
cfg_strengthNoGuidance strength.
strict_pitchNoForce exact pitch to the melody.
no_pitch_bendsNoDisable pitch bends.
reference_fileYesShort clip of the reference voice (timbre).
reference_textNoTranscript of the reference clip, if known.
bend_smoothing_msNoPitch-bend smoothing window in ms.
leading_silence_sNoSilence before the first note, seconds.
melody_audio_fileNoAudio whose melody is transcribed and followed, if no MIDI.
word_timestamps_fileNoOptional JSON word timings.

Output Schema

NameRequiredDescription
toolYes
filesYes
summaryYes
metadataYes
output_dirYes
execution_idYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.7.0
    • Addedaudio_features
    • Changedgenerate_samples6 fields changed
      • addedInput schema / properties / analysis_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The analysis_id a segment result returned (in its metadata and summary). Reuses that analysis: nothing is uploaded and it does not count as another run. Give this or file_path.",
        +  "title": "Analysis Id"
        +}
      • addedInput schema / properties / file_path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / file_path / default
        Added value: +null
      • changedInput schema / properties / file_path / description
        Previous value: -"Full path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded."New value: +"Full path to a local audio file (.wav, .mp3, .aif, .aiff, .flac, .m4a, .ogg, .aac). ~ is expanded. Give this or analysis_id."
      • removedInput schema / properties / file_path / type
        Removed value: -"string"
      • removedInput schema / required
        Removed value: -[
        -  "file_path"
        -]
    • Addedget_lyrics
    • Changedpipeline_status1 field changed
      • changedInput schema / properties / pipeline_id / description
        Previous value: -"Id of a pipeline, as returned in `execution_id` by segment or generate_samples."New value: +"Id of a pipeline, as returned in `execution_id` by generate_samples on a file or by segment with `features`."
    • Changedsegment5 fields changed
      • removedInput schema / properties / analysis_type
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Analysis type accepted by Audial's segmentation.",
        -  "title": "Analysis Type"
        -}
      • removedInput schema / properties / components
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Components to analyze, e.g. ['vocals', 'drums'].",
        -  "title": "Components"
        -}
      • addedInput schema / properties / edm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "true: dance section names (INTRO, UP, CHORUS, DOWN, OUTRO); false: song section names (INTRO, VERSE, UP, CHORUS, OUTRO). Default: from the genre, else from the audio.",
        +  "title": "Edm"
        +}
      • changedInput schema / properties / features / description
        Previous value: -"Features to compute per segment."New value: +"Optional, kept for older integrations: also compute these in the same call (mode, energy, loudness, danceability, tatum, tags, lyrics). The call then waits for them, minutes for tags and lyrics. Simpler: audio_features, tag_audio or get_lyrics afterwards with the analysis_id."
      • changedInput schema / properties / genre / description
        Previous value: -"Genre hint that improves section detection."New value: +"Genre hint for the section names, e.g. 'Tech House', 'Pop' or 'Drum N Bass' (a name Audial does not know returns the list)."
    • Changedservice_status1 field changed
      • changedInput schema / properties / tool / description
        Previous value: -"Audial tool to report on: stem_split, analyze, segment, master, generate_samples, generate_midi, generate_music, sound2vital, sound2serum or text2vox. Omit for all of them."New value: +"Audial tool to report on: stem_split, analyze, segment, audio_features, tag_audio, get_lyrics, master, generate_samples, generate_midi, generate_music, sound2vital, sound2serum or text2vox. Omit for all of them."
    • Addedtag_audio
  2. 9 tool updatesv0.5.0
    • Addedaccount
    • Changedgenerate_music3 fields changed
      • changedInput schema / properties / source_file / description
        Previous value: -"Local audio file; required for remix, extract, lego, complete, understand."New value: +"Local audio file; required for remix, lego, understand."
      • changedInput schema / properties / task_type / description
        Previous value: -"text2music (default), cover, remix, extract, lego, complete, or understand."New value: +"text2music (default), cover, remix, lego, or understand."
      • changedInput schema / properties / track_name / description
        Previous value: -"Track to extract/replace for extract/lego: vocals, drums, bass, guitar, piano, strings, synth, other."New value: +"Track to emphasise for lego: vocals, drums, bass, guitar, piano, strings, synth, other."
    • Addedpipeline_status
    • Addedservice_status
    • Addedsign_in
    • Addedsign_out
    • Addedsound2serum
    • Changedsound2vital1 field changed
      • changedInput schema / properties / file_path / description
        Previous value: -"A short one-shot (<= 20 s) audio file. The result is an editable Audial Synth (.vital) preset that reproduces its timbre."New value: +"One isolated sound: a single note, chord stab or hit, ideally 1-4 s and dry, 20 s at most. Not a loop, melody, drum pattern or anything with several notes in sequence: those produce a poor preset even under 20 s. To use a loop, trim it to one note first. The result is an editable Audial Synth (.vital) preset that reproduces its timbre."
    • Changedtext2vox2 fields changed
      • changedInput schema / properties / lyrics / description
        Previous value: -"Lyrics to sing."New value: +"Lyrics to sing. With lyrics_mode 'per_note' this is pipe-delimited, one token per MIDI note, e.g. 'amazing|-|-|grace|-|how|sweet|the|sound'; otherwise it is ordinary text."
      • changedInput schema / properties / lyrics_mode / description
        Previous value: -"auto (default) or an explicit lyric alignment mode."New value: +"How the lyrics line up with the melody. 'auto' (default): ordinary text, one word per MIDI note, aligned for you (word_timestamps_file helps). '1to1': the text is passed to the synthesizer untouched. 'per_note': exact control -- the lyrics are pipe-delimited with one token per MIDI note, in order. In per_note mode a token is either a syllable sung on that note ('grace') or a HOLD, which keeps the previous syllable going through this note: write a hold as '-' (preferred), '+', or an empty token (a double pipe). So 'amazing|-|-|grace|-|how|sweet|the|sound' sings 'amazing' across notes 1-3 and 'grace' across notes 4-5, and needs a MIDI file with exactly 9 notes. There is no rest token: a note that should be silent must not be in the MIDI. The token count has to equal the note count and the first token has to be a syllable, never a hold."
  3. 10 tool updatesv0.1.1
    • First observedanalyze
    • First observedgenerate_midi
    • First observedgenerate_music
    • First observedgenerate_samples
    • First observedlist_results
    • First observedmaster
    • First observedsegment
    • First observedsound2vital
    • First observedstem_split
    • First observedtext2vox

TDQS

A4/5.0

Scored across 19 tools

Disambiguation4/5

Most tools have sharply distinct jobs, and descriptions actively redirect between near-neighbors (e.g. 'for tempo and key alone, analyze is quicker' vs segment; sound2vital vs sound2serum differ only by target synth but are explicitly named). The main soft spot is analyze vs audio_features, which both report key/loudness/mode-like data, and audio_features/tag_audio/get_lyrics share the same analysis_id-or-file_path input shape, so an agent must read descriptions carefully to pick correctly.

Naming Consistency3/5

Names are all lowercase snake_case, but the verb convention is mixed: verb_noun (get_lyrics, list_results, generate_samples, sign_in), bare noun/verb (segment, analyze, master, account), and a 'X2Y' pattern (sound2vital, sound2serum, text2vox). It stays readable, but there is no single predictable pattern an agent can rely on to infer an unlisted operation.

Tool Count4/5

19 tools is on the heavy side, but the domain is genuinely broad (analysis, stems, mastering, MIDI, music generation, presets, vocals) and each processing tool maps to a distinct output artifact. The auth/status cluster (account, sign_in, sign_out, service_status, pipeline_status, list_results) adds some overhead but each serves an operational purpose.

Completeness4/5

Coverage of the audio lifecycle is strong: cheap analysis, segmentation, features, tags, lyrics, stems, sample packs, mastering, MIDI, generation, presets, vocal synthesis, plus auth, worker status, pipeline polling and local result listing. Gaps are minor but real: no cancel/delete of jobs or results, and no direct fetch of a single saved result by id beyond pipeline_status/list_results.

Maintenance

ActivityNo data
ResponsivenessOutdated data

Related MCP Connectors

Related MCP Servers