LastLoop - Visualizing multiple LastFM listening histories
By: Roman Graebsch
Student advisor: Dominikus Baur
is the project behind a bachelor-thesis about "Visualizing multiple LastFM
listening histories". Its is an Java application running within the Brwoser, enabling the user to easily compare different LastFM
There are already various tools out there which enable users to analyze their own listening habits (e.g.: Strings and Tangles, LoomFM
Listening Trends, Tube Tags, Last.FM Explorer...), although none of which allows you to easily compare more than two different histories to each other. LastLoop
wants to enable just this, using elaborate visualization techniques.
v0.4 online (19.08.2010)
finally got a name, and a new home: http://www.cip.ifi.lmu.de/~graebsch/
Go to the Site to get started watching the Intro Video (to be added), or use the App!
New features in v.04:
- Improved stability and responsiveness, genereal Quality control (various Bugfixes, tweaked UI, added tooltips...)
- Genre cheboxes: left click to hide a single genre, right click to hide/unhide all
- Feedback button: Click on the Feedback button and write a short text about what you found out, press Enter: Screenshot and information will be sent via email to evaluate!
- Expandable User Panel: Expand the User Panel to gain more detailed infos about search results, songs in total, highlighted/hovered Songs etc. *
v0.3 online (10.08.2010)
to look at Version v0.3.
New Features in v0.3:
- Colouring of different genres, Genre information loaded using Background Worker Thread
- Search for Songs -> Included GUI Element to Search for Artist, Title or Album Names.
- Multithreaded loading of UserSongs (adding of User does not block Application)
- More sophisticated Interaction- > switch Inter User Visualization Areas (show all/show UserSpecific/use Filter)
- More sophisticated Interaction- > be able to switch Position of User in Visualization and UserGUI
- Left click: Set Song information, right Click: Release Song information
- User GUI: Adding + Deleting of Users, switching Intra User Visualization of Songs, new: Specific Area for each User
- TimeWindow GUI: Calendar View with various interaction methodes (via TimeSlider, using MouseWheel, Right-Click + Drag on Visualization)
- Hover - Highlighting Song next to Mouse Cursor (in Time-Axis, not Screen distance) -see Artist, Album and Title of the Song
- InterUser visualization: new Datatypes, streamlined for speed purposes
- Interaction: Filter! Left click and Drag Area in which you want to see InterUser vis only. * Storage: Users and TrackLibrary are stored on HDD when Applet is restarted at a later time.
- Too view the applet correctly, make sure you accept the signature of the applet
- Clear your JavaVM cache (only clearing the browser cache is NOT sufficient!).
- Make sure the newest Java version is installed in your brwoser (Java SE6 UI 21)
ToDo - Roadmap Listening Volume
Next important steps until 24.08.
- Introductionary Video
- polish Webpage
- advertise LastLoop
Some more Features
- more Quality Control
Looking into the different dimensions of the visualization
Amount (Cnt overall time; densitiy in comparison to others)
Length of listening history (just compare relevant parts?)
How similar is listening time? (Predominat time listening to music)
Who is first to listen to a Song? Who is most often first? Who „follows“/ independant
Indication as to how similar Listening is ( Same song listened / #Overall Songs each user) (?)
Variability of tracks
similarity in Genre (just a specific genre overlapping?)
Taste development in same direction?
e.g. rock → indie → indietronic) over same years
e.g. start out same, develop different
The sketch shows a first impression of the visualization. Colours are just random at this point. Songs are representated as black dots für each user. Limegreen arcs show the occurance of the same song between different users, pink arcs show the occurance within one user, violet arcs show these of other songs.
Implementation Details and Planning
It is planned to implement ListeningVolume
as a Java Applet, able to run in a webbrowser.
Programming is done in Java, the Visualization itself mostly uses the Processing 1.1 library for rendering (see http://processing.org/
listening histories can easily contain over 100 000 entries (for one user!), each containing the song and the time it was played (among other informations).
! The application has to cache these datasets per user, since requesting the data from LastFM
takes a while,
- When looking towards the visualization and performance, the data format which is used plays an important role.
A time oriented approach might prove to be a good idea, since the visualization will mostly change along the time axis via zomm/pan interactions. All the songs of one user are therefore saved using a TreeMap
, using a <Timestamp,SongID> as Key,Value pair. This allows to easily get the proper songs to be visualized.
Visualisierung + Listening Histories: