Santa Barbara, California: FASTLab is happy to announce the release of the SndsLike music search engine and recommender system development framework. SndsLike is a suite of programs for building song databases and performing song similarity searches for applications in music discovery and automatic playlist generation. As an example, the first figure below shows a screen-shot of the SndsLike demo application in which the search key (the song at the top of the list) is a soft acoustic song by the Indigo Girls, and the results are other soft acoustic songs found in the test database. In the figure below that, the search key was a punk song by the band Green Day and the results are similar high-energy punk songs. This is the essence of “sounds like” music-similarity search, and there are several ways in which the SndsLike song search functionality can be integrated into a customer’s on-line music search tool or music subscription service web site.
SndsLike Demo App with search results for a soft folk song
SndsLike Demo App with search results for a fast punk song
The SndsLike software suite allows a content owner (an on-line music subscription service or a production music provider, for example) to create a database that can be used to match songs based on their acoustical features. The SndsLike system provides similar functionality to song search engines such as Pandora™ or MusicGenius™—without the need to have human listeners generate the song metadata manually, or to collect millions of user playlists. In contrast with other music search engines, SndsLike can be used with non-mainstream music collections, and importing new tracks into an existing data set is both fast and inexpensive (and can even be fully automated).
SndsLike is the only commercial-grade music search engine that derives all of the metadata used in the search from software analysis of the music content. The SndsLike music analysis process produces over 400 analysis parameters (known as “features”) that capture the rhythm, tempo, “feel,” and instrumentation of a song. These features are stored in a database and are used to compute how similar a pair of songs is. If other metadata sources (e.g., good-quality genre tags, mood labels, or user feedback) are available, these can be integrated with the content-derived song features to further improve or filter the song search results.
The process of building and using a SndsLike song database consists of several steps, which are controlled using the system management user interface shown in the figure on the right. The steps in the process of database population, processing and deployment are:
Once these steps have been completed, the run-time search engine is relatively simple. A SndsLike search server loads the data file produced by the steps above and waits for requests (typically from a web server script) to perform song searches based on text strings (search by song or artist name) or song IDs (search by musical similarity). The end-user application will be the customer’s playlist browser (something like the demo shown above) with the additional SndsLike similarity-search functions that enhance the user’s music discovery experience.
We also have experience using the SndsLike search functionality with other types of musical data sets (sound effects or song stems, for example); please feel free to contact us for details of such customized music search systems.
The SndsLike suite consists of a number of tools; it is the 5th generation of high-performance music search tools developed and delivered by FASTLab starting in 1999. The main database management and population tools are written in the python language (for flexibility and portability); these call optimized C++ back-end functions for the compute-intensive audio signal analysis and statistical number-crunching. The search engine server is a high-performance C++ program that can easily be shared by multiple web servers, or can itself be replicated for even higher query throughput.
The SndsLike tools support both host-based and cloud-based production environments and integrate with popular databases such as MySQL and PostgreSQL. The SndsLike system was developed with performance in mind and supports data sets with up to tens of millions of songs; both the analysis and search are easily parallelized for scalability. The SndsLike analysis and search tools can be run either on the customer’s servers, or on FASTLab’s cloud-based server farm. Additional technical details and API documentation are available on the FASTLab web site at http://FASTLabInc.com.
The SndsLike API documentation and sample code is available based on a simple mutual NDA.
On a modern CPU (anything from a laptop to a cloud server), the analysis engine takes on the order of 10 seconds to analyze a song (does not depend on the style). This assumes that the source file is a WAV or MP3 file, and that the analysis engine uses a standard database such as MySQL. This means that even very large data sets (or very dynamic data sets) can be analyzed with good response times using multi-core cloud-based server farms.
The performance of the similarity search API is dependent on the size of the data set (scales with O(logN)), and can be further optimized by pre-computing search results (i.e., storing the nearest matching in the database), and by pruning the weighting metric (has a small impact on the ordering of the search results). The search system scales very well to high volumes, since it can be parallelized to run in parallel on many servers.
There are several options for licensing and using the SndsLike system. Customers can purchase a license to use SndsLike for an unlimited number of songs and searches, or they can opt for a “pay as you go” model running the system on FASTLab’s server farm and being billed only for actual usage. The full SndsLike source code can also be licensed from FASTLab. Please contact us for demo and license terms.
Stephen Travis Pope, FASTLab
T: (+1-805) 895-6252
E: stp - at - FASTLabInc.com
W: http://FASTLabInc.com