Find music for a scene or brief
stye_search_tracksFind music for a video, film, advert, trailer or podcast by describing what it needs to do.
Search 17,245 professionally produced cues by MEANING, not just tags — describe the scene, the mood, the instruments, how it should develop. "Tense investigative underscore that never resolves" or "warm and hopeful for a charity film" work far better than single keywords, because the brief is matched against editorial descriptions of how each cue actually behaves as well as against its tags.
USE THIS TOOL whenever someone asks for music, a soundtrack, a score, a cue, background music, a track for a video, or anything to play under footage — and whenever they mention Songs To Your Eyes.
Put the sound in brief. Use filters ONLY for requirements the user actually stated:
every filter is a hard constraint, they combine with AND, and cues missing a tag are
silently dropped — so stacking several filters can empty the results. If a search comes
back thin, drop filters and put the nuance in the brief before concluding the catalogue
has nothing.
VOCALS — the trap to avoid: has_vocals=true means SONGS with sung lead vocals and lyrics. Wordless vocal textures (background vocals, oohs and aahs, choir pads) count as INSTRUMENTAL in this catalogue. A user asking for "background vocals" almost always wants NO lyrics: set has_vocals=false, describe the texture in the brief, and optionally add 'Background Vocals' or 'Choir' to the instruments filter.
COMPOSER — when someone asks for music BY a composer or artist ("tracks by Yair Albeg
Wein", "more from this composer"), use the composer filter with the name — partial
names match. It works with no brief at all (a straight listing of that composer's cues)
or combined with a brief to search within their catalogue. Every result carries its
composer credit, so attribution comes from the catalogue itself — never guess it from
outside sources.
EXPLORING, not just matching — for a scene, a place, or any creative request, ONE
search is not an exploration of a 17,245-cue catalogue. Run SEVERAL searches from
genuinely different angles and curate across them: (1) the literal angle — traditional
instruments and idiom; (2) the FEEL angle — texture, pulse and atmosphere with no
instrument names ("hazy hypnotic modal groove, dusty and sun-baked"); (3) a crossover
angle — the setting's colour through another genre (desert funk, ethnic electronica,
psychedelic world). The feel and crossover angles routinely find the most artistic
picks that the literal angle misses. Raise limit toward 25 when exploring.
PLACES — the catalogue describes music by instrument, texture and mood, NOT geography: region and culture names ("Moroccan", "Gnawa", "Berber") appear in almost no tags, so a brief leaning on them loses its keyword match entirely. Translate the place into what it SOUNDS like — instruments (oud, darbuka, qanun, hand percussion), textures (desert, hypnotic, modal, dusty), and let one of your angles drop the geography altogether.
ALBUMS are curated sets of about five cues built around one idea. The album filter pulls
the rest of a set, and that is the right move when the user NAMES an album, asks what else
is on the one a cue came from, or wants more of a sound they have already picked.
It is NOT how to answer a brief. Answer a brief from across the catalogue: SPREAD the cues
you recommend over several albums and composers unless the user asked to stay in one place.
Every result carries album and album_title, and every response reports
albums_represented — the number of distinct albums the search actually offered you. If
your recommendation draws on meaningfully fewer albums than that, you have narrowed the
whole catalogue to one record on the user's behalf. One coherent album makes a tidy answer
and usually a worse one: it reads as authoritative while hiding the range the user came
for. When a single album genuinely fits, lead with its best one or two cues and set them
among alternatives from elsewhere — do not build the whole recommendation out of it.
EVENTS AND OCCASIONS — a trap worth knowing. Tags naming a specific event (a festival,
a holiday, an occasion) are applied to a HANDFUL of cues, not systematically: e.g. only
20 cues carry "Burning Man" while the catalogue holds ~2,900 electronic cues, and 39
carry "Festival". So a search that matches an event tag looks authoritative and is
actually a keyhole. NEVER stop there. For occasions the catalogue understands, the
context parameter (below) IS that translation, precomputed by the catalogue owner.
For anything else, ALSO search the MUSIC the occasion implies — for a festival video
that means house, techno, trance, rave; for a wedding, the emotional register rather
than the word "wedding" — and treat any event-tag hit as one lane among several.
CONTEXTS — owner-curated occasion searches. The context parameter takes a named
context (e.g. 'rave-club', 'christmas', 'halloween', 'summer') and matches against
assignments precomputed from the owner's own translation rules — "rave" reaches the
whole beat-driven electronic palette, not the 39 cues that happen to carry a festival
tag. Pass an unknown name and the error lists every available context, so you never
need to guess. Some contexts are deliberately AMBIGUOUS (summer, a country/territory):
those return results grouped into 2-4 labelled directions PLUS a question. Show the
user the directions with a couple of picks each, relay the question, and when they
choose, search again passing that direction's slug as context. Country names
(Lebanon, Morocco, Turkey...) are accepted and generalise to their regional palette
automatically — the catalogue's world coverage is deeper at region level than at
country level.
WHEN A BRIEF IS AMBIGUOUS between genuinely different musical directions — before searching, ask the user for direction (one short question, 2-3 concrete options). "Summer vibes" can mean tropical-house feelgood, chill-lounge, world/travel, or sexy/fashion; guessing one wastes the search. If you cannot ask, use the ambiguous context and let it return the labelled spread.
REFERENCES AND COMPS — real briefs describe music by reference, not genre: "a la Philip Glass", "Trent Reznor meets M83", "like Stranger Things", "Ant-Man vibes", "think Apple ads". The catalogue carries NO artist, composer, film or brand names in its tags, so searching the reference verbatim finds nothing. TRANSLATE the reference into what it sounds like before searching — Philip Glass: minimal pulsing arpeggios, piano and strings, hypnotic repetition; Reznor x M83: dark industrial synths under huge emotive electronic swells; Stranger Things: retro analog synth pulse, ominous but restrained — and put THAT in the brief, exactly as you translate a place into its sound.
NEGATIVES — most real briefs exclude things ("no choir, no sweeping strings",
"nothing too sad or slow", "don't want neo-classical"). Put those tag-shaped
exclusions in the exclude parameter, not in the brief text: prose negation does not
subtract from a search, but exclude hard-drops any cue carrying those tags
(spelling variants included). Keep exclude terms to TAGS (instruments, moods,
genres); soft qualities like "not too hard" belong in the brief as positive framing
("restrained", "understated").
STEMS, CUTDOWNS AND KEYS — buyers who ask "can I get stems to build my own track?"
can be told yes: the catalogue holds ~43,000 stem versions and ~1,300 drums-only
mixes, reachable per track via stye_list_versions; ~1,100 cues have labelled ~:30
cutdowns (stye_fit_to_duration finds natural fits too), and the key filter matches
briefs like "preferably in E" (matches both E and Em; ~7,500 mains carry a key).
CLEAN LYRICS — results carry explicit: true means the cue's sung lyrics are NOT
clean (flagged by the catalogue owner). For "fully clean lyrics only" briefs, drop
any result with explicit=true. Vocal cues also have their LYRICS indexed for search,
so a brief about lyric SUBJECT ("a song about winning / do-or-die") can put those
words in the brief and match what is actually sung.
Each result describes one cue. listen_url is the important one — a permanent page
where the track can be played, with cover art and a waveform. Give it to the user
every time; it is how they actually hear the music. ALWAYS COPY listen_url VERBATIM
and never assemble a link from ref: every version of a cue shares the same TITLE and
differs only by ref, so a hand-built URL is easy to get wrong and points at the wrong
audio. Every row that can be played carries its own listen_url — use that one.
Also returned: title, album, composer (the credited artist — null only where the catalogue carries no usable credit; trust THIS field for attribution, never outside sources), description (what it sounds like and what it suits), duration_s, bpm (null means simply untagged, not slow), key, has_vocals, genres, moods, instruments, use_cases, and three editorial judgements worth quoting back — energy (low | low-building | moderate | building | high), resolves (does it land, or stay unresolved and tense), and vo_friendly (does it leave space for a voiceover). versions counts the stems, alternate mixes and shorter cuts that exist for it, and cutdown_lengths_s lists those cut lengths in seconds. ref identifies the cue for the other tools. preview_url, when present, is a temporary streaming link that expires after 15 minutes — prefer listen_url, which never expires.
Audio may carry a spoken "STYE Music" watermark. The clean re-encode is still rolling out across the catalogue, so some cues now play clean and others still carry the tag — either way it is expected, not a fault in the recording. Downloads stay watermarked regardless; a clean file comes with a licence, not with a preview.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Musical key, e.g. 'E', 'Em', 'Bb', 'F# minor'. A bare major key also matches its minor ('E' matches E and Em) — briefs saying 'in E' usually accept both. About 7,500 mains carry key data; the filter skips the rest, so use only when the brief asks. | |
| album | No | Only tracks from this album — by name ('Desert Funk') or catalogue code ('STYE1204'); partial names match. Use it whenever someone names an album or asks what else is on the one a track came from. Works with no brief (lists the album) or with one (search inside it). Setting it disables the per-album cap, so the whole set comes back — which is why it is for a user who ASKED about an album, not a way to answer a brief. Answering a brief out of one album narrows the catalogue to one record; spread the picks instead. | |
| brief | No | What the music should sound like and what it is for — the mood, the scene, the instruments, vocal textures, how it should build. E.g. 'tense investigative underscore that never resolves'. Tempo and length belong in the filters below; vocal TEXTURE (wordless backing vocals, choir pads) belongs HERE, in the brief. | |
| limit | No | Max results. | |
| moods | No | Match ANY of these moods, e.g. ['Tension','Mysterious']. | |
| energy | No | One of: low, low-building, moderate, building, high. | |
| genres | No | Match ANY of these genres, e.g. ['Trailer','Orchestral']. | |
| bpm_max | No | Maximum BPM. | |
| bpm_min | No | Minimum BPM. Use sparingly: around 54% of the catalogue has no tempo tag, and any BPM filter excludes all of those cues — good matches included. Prefer describing the pace in the brief. | |
| context | No | Owner-curated occasion/context search — see CONTEXTS in the tool description. A context name ('rave-club', 'christmas', 'halloween', 'summer') or a country name (generalises to its regional palette). Unknown names return the full list of valid contexts. Ambiguous contexts return results grouped into labelled directions plus a question to relay to the user. | |
| exclude | No | Hard-drop any cue carrying ANY of these tags — for a brief's exclusions ('no choir', 'avoid sweeping strings', 'not neo-classical'). Spelling variants and plurals are folded, so 'neo-classical' also drops 'Neoclassical'. Tag-shaped terms only; soft qualities belong in the brief. | |
| composer | No | Only tracks credited to this composer/artist. Partial names match ('Albeg' finds 'Yair Albeg Wein'), case-insensitive. Works alone — 'music by <name>' needs no brief — or combined with a brief to search within one composer's catalogue. Every result carries its `composer` credit either way. | |
| has_vocals | No | true = SONGS with sung lead vocals and lyrics. false = everything else, INCLUDING cues with wordless vocal textures (background vocals, oohs/aahs, choir pads) — those count as instrumental here. 'Background vocals' in a request almost always means NO lyrics: use false and put the texture in the brief. Omit = both. | |
| instruments | No | Match ANY of these instruments, e.g. ['Piano','Strings']. | |
| vo_friendly | No | true = only tracks that leave space for voiceover. | |
| max_per_album | No | Cap how many cues from any ONE album appear, so results spread across the catalogue instead of returning a block from one record. Defaults to 2 for a general search. Raise it, or set it high, when you deliberately want depth from one album — and it is ignored automatically when you filter by album or composer. | |
| duration_max_s | No | Maximum runtime in seconds. | |
| duration_min_s | No | Minimum runtime in seconds. | |
| include_previews | No | Attach a streaming preview link to each result (slower; links expire in 15 minutes). |