| Audio-WHAT? |
... in which we explain
what audioMappr! actually is. |
So, what is this audioMappr! -thing?
In essence, audioMappr!
combines the GoogleMaps API and the Audioscrobbler Database
in order to visualize the music taste distribution of people
all over the world.
Audioscrobbler is the API behind the playlist-sharing community
Last.FM and offers a large variety of XML-data for each user
that is registered in the community. Last.FM gives every member
the ability to upload information about their favourite music
and thereby creates social music networks.
GoogleMaps is a JavaScript-based API that makes world maps
accessable through websites. With GoogleMaps, one can look at satellite
pictures of pretty much every corner of the world, get directions
to waypoints, and find places.
Also, as a little gimmick, audioMappr!
uses GoogleMaps' GeoCoder to retrieve latitude and longitude information
of the capitals of the countries that are drawn to display some extra information
on the data that are presented.
Powered by these three technologies, audioMappr! can help to simplify
research in fields like Ethnomusicology, Sociology, and Music
Information Retrieval.
But let's not forget about the fun aspect of this Web Service ;-)
|
|
| Motivation |
... in which we explain
how audioMappr! is useful. |
Ethnomusicology tries to research the differences in music
taste among different ethnicities and nationalities.
Although it is a highly fascinating field, research can
sometimes be tedious as it is limited to classic research
methods, i.e. surveys, market studies, and work with
participant of studies in general. In addition, researchers
do not seem to regard internet users as a specific community
that can help conducting research in Ethnomusicology.
The way people access music nowadays as changed dramatically
ever since more or less legal peer-to-peer networks
and online music stores allow to download pretty much any
musical piece any time with a minimum amount of costs.
On pretty much every private computer, digital music can
be found, so pretty much any person that has access to a
computer has access to digital music.
audioMappr!
is not just a class homework. With both authors being very
interested in any research on music, Ethnomusicology
and Music Information Retrieval,
audioMappr!
is built to suit the needs of researchers as well as music
lovers. Our framework can help Ethnomusicologists to conduct
research on users of digital music media and provides
a visualization of social music networks as they occur in the
online playlist-sharing community Last.FM. To the best of our
knowledge, quite some research has been conducted on music
genre preferrence in different ethnicities and nationalities,
but most of them are of static nature and none of them aim
at providing a real-time tool for it's visualization.
audioMappr!
is the first tool to accomplish that task.
In addition to that, having a map like that is just too cool to be true!
|
|
| Responsibilities |
... in which we explain
who worked on audioMappr! and what those people did. |
audioMappr!
is a joined idea by Bastian Tenbergen and Dan Schlegel.
Dan was in charge of the Database engine that retrieves the data that
is then displayed on the GoogleMap. Essentially, this is the core of
audioMappr!.
One of the most important problems that needed to be solved was that AudioScrobbler
does only provide a list of XML-files for every user instead of a direct
access to the database or a dump thereof. Hence, Dan implemented a search algorithm
that traverses the friends-list of every Last.FM user and keeps track of those users
that have already been parsed by our database engine and those ones that still need to be visited
(which is a heuristic search problem with unkown search depth and unknown branching factor
and hence a significant problem in the real of Machine Learning).
In order to accomplish this task, Dan wrote several XML-parsers to handle the amount of
XML-files retreived from AudioScrobbler and to update the mapping database correctly.
Bastian was in charge of the mapping engine. Seemingly easy, just to display the output
of the database engine, there were a few obstacles in his way. The biggest obstacle was
probably that Bastian was totally unaware of both the Google Maps API as well as of
JavaScript. Also, in the process of learning both, he discovered that
it is not possible in GoogleMaps to color specific countries. So, Bastian
had to find a way to do that. The solution were specifically colored polygone overlays
that hover exactly over the country they represent. The problem with that, however, was
that latitude and longitude data of the exact borders of all countries of the world
are not freely available. GIS-formatted data were, though. So, Bastian used a couple
of free conversion tools to re-format the GIS data into GPS data, and converting those,
using a shapefile, into the GoogleMaps-compatible KML-format. He then wrote a number of
XML tools to create individual country and territory files from the resulting KML-world-file.
|
|
| Architecture |
... in which we explain
how audioMappr! is working. |
audioMappr!
consists of two basic components: The core DB engine and the mapping engine.
The core DB engine has been developed by D. Schlegel. It is running a asynchronous service that queries the
Audioscrobbler database. It parses XML data for every user on
genre preferrence and artist playcount. Since Audioscrobbler does not provide
a user list or database-dumps, audioMappr!'s
DB engine starts with one known user and parses the friends-tree
XML file. The DB service runs permanently as a deamon, terminating
when enough users have been parsed for every country, when no new users
are encountered anymore or never (i.e. runs always, permanently updating the DB).
The mapping engine instantiates a custom GoogleMap and was written by B. Tenbergen.
It displays every country that has been parsed by the core DB engine
on the custom map and colors it with the color corresponding to the genre or artist
that most users from that country listen to.
The mapping engine has a database itself and consists of longitude/latitude pairs of border line polygons
for every country that can be displayed with audioMappr!.
The database is necessary because GoogleMaps does not allow
coloring the countries on a map. Instead, the mapping engine creates overlays
on the basis of the longitude/latitude data for each country, which are colored.
Please note that the country border database contains data about political countries
borders as they were valid in 1995.
Please also note the copyright information.
|
|
| Implementation |
... in which we explain
how to get the code of audioMappr!. |
There is not so much an API to audioMappr!,
but a collection of tools that help setting up the database.
Feel free to download and use the code according
to your gusto, as it is published under the GNU Public License.
Please note that this does not hold for the country border database.
If you wish to use this DB, please contact one of the authors.
Here is a copy of the license.
Use the below links to get to audioMappr!'s maps:
GenreMappr!
• • •
ArtistMappr!
Below, you can find a list of the code that we wrote to
create this project.
• audioMappr! code binary
• audioMappr! code source
• audioMappr! code binary & source
• audioMappr! API download
• audioMappr! API online
Here is the project proposal presentation that we gave in class:
• audioMappr!.pdf
Look at the version history, which contains some information
on pitfalls, problems, known bugs and problem solutions that
we encountered during our work on audioMappr!.
|
|
| Own Web Services |
... in which we explain
what Web Services you can query from audioMappr!. |
audioMappr!
is not just a framework that consumes the WebServices by AudioScrobbler and Google,
it actually provides you as a developer with the data that we filtered out from
AudioScrobbler. This way, you are not only able to view a visualization of the music
preferences of the countries in the world, but also make use of the XML-file that we
provide to consume these data in a machine-friendly way.
Also, GoogleMaps developers might be very interested in using the KML-country database
that we use to color the specific countries on the map. With the help of our database,
everyone can display information or data per country on a GoolgeMap, by just reading
the files from our database and manipulating it.
Both services that we provide are freely available to every individual or group for
private or academic use. Seriously, everyone can have it! However, since we would like
to know who is using what, you need to contact either Dan Schlegel, Bastian Tenbergen, or both
and ask for details. Also, you must obey to the copyright information.
When using our Web Services, make sure that the purpose you intend to use them for are of
non-commercial and/or academic use only. You are not allowed to use the free Web Services to acquire any sort of profit.
Please contact the others for commercial versions.
|
|