New improved similarity search for library tracks and crates.
Improved Library Track Similarity Search
We improved the library track performance for delivering more accurate similarity search results.
Any library track that got analyzed with the AudioAnalysisV6
will now use the new improved similarity search via the LibraryTrack.similarLibraryTracks
field.
In case you did not yet upgrade to the latest AudioAnalysisV6
contact us for figuring the perfect upgrade path or re-enqueue your tracks manually using the Cyanite API.
Example Query Document
query LibraryTrackSimilarTracksQuery($libraryTrackId: ID!, $first: Int = 30) {
libraryTrack(id: $libraryTrackId) {
__typename
... on Error {
message
}
... on LibraryTrack {
id
title
similarLibraryTracks(first: $first) {
__typename
... on SimilarLibraryTrackConnection {
pageInfo {
hasNextPage
}
edges {
cursor
node {
distance
libraryTrack {
id
}
}
}
}
}
}
}
}
In addition we also deprecated the SimilarLibraryTrackNode.inDepthAnalysisId
field in favor of the SimilarLibraryTrackNode.libraryTrack
field.
We updated the corresponding documentation for the Retrieving Similar Tracks from your Library
guide.
Organize Library Tracks with Crates
When managing a big track library you might want to group certain tracks together. This is now possible by organizing library tracks into crates.
The new LibraryTrack.similarLibraryTracks
field also has a crateIdFilter
argument for only returning similar tracks from a given crate.
This allows creating a crate for each of your customers track libraries and ensures a similarity search experience only based on that customer's tracks.
Example Query Document
query LibraryTrackSimilarLibraryTracksQuery(
$libraryTrackId: ID!
$crateIdFilter: ID
) {
libraryTrack(id: $libraryTrackId) {
... on LibraryTrack {
__typename
similarLibraryTracks(crateIdFilter: $crateIdFilter) {
... on SimilarLibraryTrackConnection {
edges {
node {
libraryTrack {
id
}
}
}
}
... on SimilarLibraryTracksError {
message
code
}
}
}
}
}