33 lines
852 B
Go
33 lines
852 B
Go
|
|
package capabilities
|
||
|
|
|
||
|
|
// SonicSimilarity provides audio-similarity based track discovery.
|
||
|
|
//
|
||
|
|
//nd:capability name=sonicsimilarity required=true
|
||
|
|
type SonicSimilarity interface {
|
||
|
|
//nd:export name=nd_get_sonic_similar_tracks
|
||
|
|
GetSonicSimilarTracks(GetSonicSimilarTracksRequest) (SonicSimilarityResponse, error)
|
||
|
|
|
||
|
|
//nd:export name=nd_find_sonic_path
|
||
|
|
FindSonicPath(FindSonicPathRequest) (SonicSimilarityResponse, error)
|
||
|
|
}
|
||
|
|
|
||
|
|
type GetSonicSimilarTracksRequest struct {
|
||
|
|
Song SongRef `json:"song"`
|
||
|
|
Count int32 `json:"count"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type FindSonicPathRequest struct {
|
||
|
|
StartSong SongRef `json:"startSong"`
|
||
|
|
EndSong SongRef `json:"endSong"`
|
||
|
|
Count int32 `json:"count"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type SonicSimilarityResponse struct {
|
||
|
|
Matches []SonicMatch `json:"matches"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type SonicMatch struct {
|
||
|
|
Song SongRef `json:"song"`
|
||
|
|
Similarity float64 `json:"similarity"`
|
||
|
|
}
|