Product Announcement: FASTLab’s SndsLike Music Search Engine
a PDF of this product announcement
Santa Barbara, California, August, 2012: 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
There are more search demonstrations here.
What is SndsLike?
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
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.
How does one set up the SndsLike search engine?
process of building and using a SndsLike
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:
- Set up empty song database tables using the provided SQL files.
- Generate a list of the song files to be imported (most popular sound
file formats are supported).
- Run batch (or incremental) analysis, probably on a server farm in
many parallel threads. This step populates the song feature database.
- Prune the song database and perform statistical normalization.
- Export a database dump file for use by the run-time system.
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.
What is the implementation?
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
The SndsLike API documentation and sample code is
available based on a simple mutual NDA.
What's the performance of analysis and search?
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
How is SndsLike licensed?
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
Stephen Travis Pope, FASTLab
T: (+1-805) 895-6252
E: stp - at - FASTLabInc.com