Skip to main content
Glama

match_sound

Read-onlyIdempotent

Rank your Ableton library by how closely each preset or rack sounds to a reference audio file, so you can find matching instruments or loops. Provide a stem, loop, or one-shot and get ranked candidates ready to load.

Instructions

Rank the library by how close each item sounds to a piece of audio you have.

Returns:
    Dictionary with the descriptor taken from the file, the ranked candidates each
    carrying its name, kind, category, library and score, and the call that loads
    the one you pick.

Note:
    A score orders this one answer, lower being closer: not a percentage or a distance,
    and scores from two files do not compare. The order inside one answer is weaker than
    it looks: ``elsewhere_in_the_file`` ranks a second stretch of the same recording to
    show how weak; ``also_elsewhere`` says a candidate came back in both, the one
    reading here that is evidence, not ordering. Measured 2026-09-19 over five separated
    stems in 20 s windows, two windows of one stem shared about one name in ten and the
    descriptor moved by three to six times the whole width of the top thirty. Ranked
    over the whole library, the top candidate shared the probe's family 1 time in 7 at
    20 s and 6 of 20 on 1.5 s slices: a bass stem answers with drum kits and a guitar
    stem with pads; given ``instrument``, the same audio answers with basses and plucked
    guitars. Name the family when you know it: this is a shortlist, not a ranking.

    What is compared is Ableton's preview render of each item, so a busy-riff preview
    describes itself differently from a held-chord one, and nothing here speaks for
    playable range, velocity response or a single note's attack. The match is timbral
    with level removed, so a quiet and a loud take of one sound match exactly; pitch is
    not matched, so a bass line at 50 Hz and the same line at 100 Hz are near
    neighbours. ``analysed`` says where the window landed, with peak and RMS; a silent
    stretch answers ``nothing_to_match``, and without an index this answers
    ``no_index``. To load one, set ``track`` in its ``load_with`` block and call
    ``load_device``: the handle is a name, not a path, so the browser search can return
    more than one item. Check before confirming.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the audio to match: a stem, a loop, a one shot. Any format the system decoder reads, which is WAVE, AIFF, MP3, Ogg, FLAC and ALAC. Not an Ableton factory sample: those are encrypted and nothing outside Live reads them.
kindsNoWhat to rank. 'loadable' is the default and means presets and racks, the things that go on a track. 'clips' ranks loops instead.loadable
limitNoHow many candidates to return.
windowNoWhich part of the file to describe. 'loudest' is the default and finds the loudest stretch of 'seconds', which is what a stem needs: an instrument that plays a verse and rests through the chorus is silent for most of its own file. Loudest is not busiest: measured over five stems, the loudest window of a pad and of a keys part held no onsets at all. 'whole' averages everything, including the rests. 'at' takes 'seconds' from 'start_s'.loudest
secondsNoHow long a stretch to describe, for 'loudest' and 'at'. Ignored by 'whole'.
start_sNoWhere to start, for window='at' only.
instrumentNoWhat kind of instrument this is, when you know. Set it whenever you do: a stem is usually named or obvious, and telling the tool is worth far more than any ranking. 'drum_kit' is a whole kit and 'drum_hit' is one cymbal or snare, which are never interchangeable. Empty ranks the whole library and is measurably the worse answer.
category_containsNoNarrow further inside the family by browser category text, case insensitive. Empty keeps the whole family.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the annotations by disclosing the score's meaning (lower is closer, not comparable across files), the weakness of ordering within one answer, the use of Ableton's preview render, and error cases like nothing_to_match and no_index. It also explains the load_with block and the name-not-path caveat – all behavioral traits not captured by readOnlyHint or idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: a one-sentence summary, then Returns, then a Note with measurement caveats and usage warnings. Every sentence carries substantive information; there's no fluff. The length is justified by the tool's complexity, though it could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given eight parameters and an output schema, this description covers everything an agent needs: return format, error cases, how to load the result, and extensive behavioral caveats backed by concrete measurements. It even explains how to safely confirm the selection ('Check before confirming'). No critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all eight parameters (100% coverage), so the baseline is 3. The description adds value by explicitly urging users to set the instrument parameter ('worth far more than any ranking') and by describing how window affects matching (loudest vs whole, with measurement context). This enriches the agent's understanding of parameter choices beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Rank the library by how close each item sounds to a piece of audio you have.' This is a specific verb (rank) and resource (library) with a clear input, clearly distinguishing it from siblings like find_sound or analyze_audio. The purpose is unmistakable and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The note section gives clear guidance: set the instrument family when known, warns the result is 'a shortlist, not a ranking,' and explains matching behavior (timbral, level-removed, pitch-agnostic) and how to load the selected item. It doesn't explicitly name alternative tools, but the context is rich enough for an agent to know when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.