find_sound
Search Ableton Live's library for presets and instruments by describing the sound you want. Get ranked candidates with paths and categories to load directly.
Instructions
Find an instrument or preset in Live's library by what you want it to sound like.
Returns:
Dictionary with the root that was searched and why, the words that were searched
for, the ranked candidates each carrying ``item_path``, ``uri`` and ``category``,
how far the walks got, and the next call.
Note:
Nothing here has been listened to: the ranking reads the preset's name and the
browser category in its uri, so load one and listen before believing it fits.
``status`` is coverage, not fit: an empty ``candidates`` under ``complete`` does
mean no name there answers, while ``incomplete`` makes the list a lower bound.
Measured 2026-09-17 against Live 12.4.6, ``sounds`` completes, ``drums`` completes
at the depth this tool sends, and ``instruments`` cannot be searched to the end for
presets, so a negative from that root is never evidence of absence.
Each word costs one browser walk and blocks Live's main thread, so three are
searched and the rest named in ``words_not_searched``. ``considered`` is the sum
of items those walks examined, not the size of the root and not the size of the
library, so it exceeds either when two words search the same place. Both word
lists describe the walk, not the library: the ranking scores every intent word,
and shortened forms, against the names returned, so an unsearched word still
appears in ``matched``.
Measured 2026-09-17 against Live 12.4.6, "rhodes" and "moog" match no preset name in
``sounds``, and "kick" none in ``drums`` though a folder "Kick" matches under
``kind="any"``.
``category`` is derived from the uri's fragment rather than read from Live and is
null where the uri carries none; ``also_in`` names the other categories it was
filed under. To load one, call ``load_device`` with the candidate's ``load_with``
block, the target ``track`` and ``confirm=True``, preferring ``item_path``: a
``uri`` is walked for again and can run out of budget. Loading an instrument
silently replaces the one on that track, so read the chain with get_devices first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | What to keep. 'preset' is the default and is what a sound is. 'device' with root='instruments' answers which instruments exist at all, rather than which preset to load. | preset |
| root | No | Browser root to search. Empty picks one from your words: a drum word searches 'drums', everything else searches 'sounds'. The reply says which was chosen and why. | |
| limit | No | How many candidates to return. | |
| intent | Yes | The sound you want, in your own words and in any order: 'warm bass', 'dark cinematic strings', 'punchy kick'. The phrase is split into words and each one is searched for separately, which is what the browser's own search does not do. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||