Find music for a video, film, advert, trailer or podcast by describing what it needs to do.
Search 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.
ONE SEARCH RETURNS ONE FULL PAGE — there is no pagination. Repeating a search with the
same arguments returns the SAME cues, so never search again just to get more of the
same: set `limit` high enough on the first call (default 15, up to 25). One
well-chosen page usually holds enough range to answer; a second search earns its cost
only when it takes a genuinely different angle or a changed brief.
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 and NAME THE TEXTURE IN THE BRIEF — "background
vocals", "choir", "vocal hooks", "group singing" in the brief text are detected
server-side and applied as a hard requirement, so every result really carries that
texture. Do not re-search if the page is short: a short page means the catalogue's
honest supply of that texture.
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 the whole 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 ~1,900 electronic cues, and 39 carry "Festival". (Those two tag counts are
literals and were re-checked on 2026-09-04; the electronic figure is read from the
catalogue.) 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 ~42,000 stem
versions and ~2,700 drums-only stems, reachable per
track via stye_list_versions; ~980 cues have a
labelled :30 cutdown (stye_fit_to_duration finds natural fits too), and the `key` filter
matches briefs like "preferably in E" (matches both E and Em;
~7,000 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.
LYRICS ARE SEARCHABLE, BUT BY WORDING, NOT BY THEME — and the distinction matters
because the catalogue is overwhelmingly instrumental. 328 cues have lyrics on file, and
those lyrics ARE in the full-text index, so a brief containing words that are actually
sung will match them. What this path does NOT do is match by lyric SUBJECT: "a song
about winning" finds cues whose lyrics contain "winning", not every cue about victory.
Put the likely WORDING in the brief, and treat a lyric hit as a bonus on top of the
musical match rather than as a filter — 328 of the catalogue is a keyhole, the same
trap as an event tag above.
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.
PUT IT ON ITS OWN LINE AS PLAIN MARKDOWN, and never wrap it in raw HTML. Observed
2026-09-10 in a portrait Claude window: every link came back preceded by a literal
"<br>" — the assistant reaching for an HTML line break, which renders as visible
text rather than as a break. The data is clean; this is a presentation habit, and
saying so here is the only place it can be corrected for every client at once.
Also returned: title, album, composer (the credited artist — trust THIS field for
attribution, never outside sources), description (what it sounds like and what it
suits), duration_s, bpm, key, has_vocals, genres, moods, instruments, use_cases,
keywords (extra catalogue tags beyond those three lists — tempo bands like
'Mid Tempo', placements like 'TV Score'), 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.
A field that is absent from a row means the catalogue has no data for it — an absent
bpm means simply untagged, not slow; an absent composer means no usable credit; an
absent cutdown_lengths_s means no timed cutdowns exist. Never treat absence as a
fault in the result.
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.
ConnectorNo auth