Skip to main content

Changelog 2021-03-08

Laurin Quast

Laurin Quast

Engineer

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
}
}
}
}
}

Lean more about Crates