Did Someone Say On Demand?

Wednesday, 29 January 2014
by Nick Calafato
filed under Announcements and Tips and Tricks
Comments: 63

We’ve always strived to make Last.fm as relevant to your music life as possible. Whatever you’re listening to and wherever you’re listening to it from – we know about it. There has however been one gap; the inability to play whatever you want by whoever you want directly on Last.fm. This has now changed.

We’ve teamed up with Spotify to bring their entire catalogue, on demand, to the world’s leading music recommendation service. Whether it be your own profile page, artist pages or album pages – if Spotify has it, you can play it and control it on Last.fm via the Spotify playbar at the bottom of the screen. Using your Spotify account (premium or free) you can listen to any track simply by pressing the play button. This will load all tracks on a Last.fm page as a playlist in Spotify.

This new feature brings a depth to Last.fm like never before and gives you a much richer listening experience. The availability of over 20 million tracks at your fingertips allows you to listen to full albums as well as rediscover your scrobbling history – listen to your loved tracks, past charts and more.

This latest collaboration builds on an already successful partnership between the two services, which includes the highly successful Last.fm app on Spotify.

As with any new integration there are of course some known issues, so please bear with us! You can find out about them here and you can leave your feedback in the forums here

We’re hugely excited to bring this new functionality to Last.fm and can’t wait to see what you think.


Welcome to your new home!

Monday, 24 June 2013
by Paul Blunden
filed under Announcements and Design
Comments: 2

We’re always striving to give you the best possible experience from the moment you arrive on Last.fm. It’s important to us that the most interesting content is easy to find and looking sharp. Last week, we released an update with some significant improvements to the user home page, one of the most useful but overlooked pages on Last.fm.

The redesigned home page features the same great content, but reorganised and given a much needed facelift. Your recommendations are now featured front and centre, with bigger images and a neat new layout. There’s also a new library section in the right hand column that gives an overview of your personal stats and recent activity. The changes aren’t all on the surface though; your new releases, events, and free downloads recommendations are now better quality, displayed more intelligently (based on your recent listening habits) and programmed to shuffle on each visit to the page. It’s never been easier to discover new music!

So, what if you’ve just joined Last.fm? Some of the most exciting changes are only apparent when you’ve got a brand new account. In this case, the redesigned home page helps to welcome you to the world of Last.fm with a simpler design and clear messaging about how to get your first recommendations and start scrobbling.

The improvements for new users don’t stop there – we’ve also updated our sign-up experience. Back in April we introduced a new account setup process which includes 3 simple steps. New users are guided through starting their library, setting up scrobbling, and completing their profile, before arriving on their home page with music and event recommendations ready and waiting. You can always revisit these steps, so if you haven’t seen them yet, check them out – the library builder is a lot of fun to play with!

In the coming weeks we’ll be making further improvements to the new home page, including the ability to dismiss recommendations. As always, we’re keen to hear your feedback on the changes we make and new features we introduce – please leave your feedback on the forums.

Love Music, Love Last.fm, Love Music Videos!

Tuesday, 21 May 2013
by Nick Calafato and Announcements
Comments: 10

We know how much everyone loves music videos and so we thought it was about time we did a better job of surfacing these on Last.fm – making sure we continue to deliver the most complete music resource experience at your fingertips.

So today we’re pleased to announce a brand new partnership with our good friends over at MUZU.TV, who will help us bring you over 90,000 music videos across Europe (with more countries to come very soon).

You’ll be able to play these videos from both the Artist page, where they’ll be accessible in the same order as the Top Tracks, and also on every Track page where there is video available. So lots of places on the site to get your music video fix!


Does it scrobble? Absolutely. We’ve made sure that scrobbling is automatically configured whenever you watch through the MUZU.TV player on Last.fm (for logged in users), and so the more videos you watch, the better your Last.fm music recommendations become. We’ll also be adding scrobbling to the MUZU.TV site soon, so you’ll also be able to scrobble MUZU.TV wherever you watch.

We’re super excited to have partnered with MUZU.TV – helping us bring you a richer experience.


Update: Last.fm on Xbox LIVE

Tuesday, 9 April 2013
by Michael Horan
filed under Announcements
Comments: 32

In 2009 Last.fm was proud to partner with our friends at Microsoft to bring music discovery to Xbox Live. Today we’re excited to announce a new update to the Last.fm app on the Xbox 360 platform.

The new Last.fm on Xbox LIVE application brings a dramatic facelift simplifying the interface, adding features and including our Originals video library for all to enjoy.

Key Features
• Exclusive Last.fm video content
• Kinect voice and gesture control
• Fine tune your favourite stations
• Full-screen high-quality artist images
• Train Last.fm to discover music you’ll love
• Share your music taste with friends

The radio options have not changed – you can still listen to artist radio, tag radio, and personal stations (my library, my mix, my recommended), but now it’s easier to jump down the rabbit hole of discovery and launch related stations. Every track that plays shows relevant tags which can launch into a new radio experience. During playback, an artist info button helps you discover similar artists and allows you to launch a new station based on their unique sound.

We’ve also added a “fine-tune” option, accessible during playback of personal stations, which allows you to filter what you listen to. Want only your hip-hop recommendations, or heavy metal library tracks? You can do that! It’s a new and powerful way to give you greater control over what you hear!

We are also displaying full-screen artist images during playback, giving a cleaner and more beautiful visual experience. Tune in to your favourite station and let Last.fm take you on the best personalised music experience.

With the inclusion of Last.fm’s Originals video content, there are more ways to discover new music. Including exclusive performances and intimate interviews, Originals delivers a blend of new and established artists in unique settings. See live recordings by artists like Big Boi, Emeli Sandé, Minus the Bear, Bastille and Two Door Cinema Club. See exclusive interviews with Phoenix, Olly Murs, Jake Bugg, Ramona Falls and Jason Aldean. It’s a veritable buffet of amazingness.

Turn your TV into the world’s smartest jukebox with Last.fm, Xbox LIVE and Kinect. Discover new music from Last.fm’s 18 million tracks and watch hundreds of exclusive videos featuring the world’s hottest artists. The more you listen the smarter it gets.

To learn more about Last.fm on Xbox LIVE, visit our hardware and group page.

Announcing Last.fm Unplugged

Monday, 1 April 2013
by sunil
filed under Announcements
Comments: 27

Hello dear users! Fresh on the heels of the all new desktop scrobbler and Scrobbler for iOS, we’ve been hard at work on a new service that we’re announcing today – Last.fm Unplugged!

We realise that despite mobile internet and smartphones, a lot of people often listen to tracks on other services that do not support scrobbling or are in places where it is not possible to scrobble via our many clients. That is why we decided about eighteen months ago to develop a new service which can process all other scrobbles.

We’re in the process of partnering with Moleskine to produce a Last.fm branded notebook with a special Last.fm micro pencil. Unfortunately this isn’t available yet but until then all you need to do is print out this template, fill out the songs that you listen to and send your completed sheets to Last.HQ!

Examples of what you might like to use Last.fm Unplugged for include:

  • Setlists at gigs and festivals
  • Songs heard on the traditional radio (please don’t attempt to fill out your Unplugged notebook while driving!)
  • Elevator music
  • Street performers
  • Humming or whistling to yourself

Once we receive your sheets, we’ll then attempt to scan them – and if that fails, use our troop of monkeys to manually enter your scrobbles. Scrobbles must be handwritten in order to prevent scrobble fraud. You’ll never miss another scrobble thanks to this game changing new service!

For all developers out there, Last.fm Unplugged is written in a combination of Visual Basic 6 and Lisp – combining the rapid turnaround time of BASIC languages with all the power of a list processing language.

You can download the template here.

All Our Tools Are Belong To You!

Tuesday, 19 February 2013
by marcus
filed under Code and Announcements
Comments: 14

Welcome to the second part of our Open Source series. Today we’re releasing moost, a C++ library with all the nice little tools and utilities our MIR team has developed over the past five years. If you’re a C++ developer yourself, you might notice that moost sounds quite similar to boost, and that’s on purpose. moost is the MIR team’s boost, there is hardly a project in our codebase that doesn’t depend on one or more parts of moost.

There are a lot of different things in moost. Some are really simple, yet very helpful in day-to-day work, like the which template that allows you to use pairs (and containers storing pairs) more easily with standard algorithms; or stringify, a function template that turns complex objects into strings. Other parts are slightly more sophisticated: for example, moost contains the framework that is shared by all our backend services, and that allows you to write a daemonisable service with logging, a set of standard options and even a service shell that multiple users can connect to when the service is running, all in a few lines of code.

As our backend services are inherently multi-threaded, there’s also a bit of threading support in moost. For example, the safe_shared_ptr template is immensely useful for resources that are shared between threads and need to be updated atomically.

If you’re working with large, static datasets, you’ll probably find the memory mapped dataset classes interesting. They allow you to build large datasets (like gigabytes of data) of vectors, multimaps or dense hash maps that can be simply mapped into memory — and thus shared between different processes — and accessed very much like a constant standard container.

moost also contains an abstraction for loading shared objects and instantiating objects defined inside these shared objects. It will take care of all the magic involved to avoid resource leaks.

There are more bits and bobs in there, like a simple client for the STOMP protocol, hashing and message digest functions, wrappers for key-value stores, template metaprogramming helpers and even a complete logging framework. So check it out, play with it and if you’ve got some nice tool to add, please contribute!

There’ll be more code coming up later this week that makes use of moost, so if you’re looking for some hands-on examples, stay tuned!

To be continued…

Build me, please!

Monday, 18 February 2013
filed under Announcements and Code
Comments: 8

Here at Last.fm we love Open Source. Most of the time we’re just using a lot of Open Source Software, sometimes we’re contributing changes or fixes back to existing projects, and sometimes we release our own software to the public. This week, we’ll be releasing some exciting projects to the C++ community. The first of these projects is a build system we’ve conceived for our C++ codebase and which has helped us a lot — and it might be useful for you, too!

Last.fm’s MIR team is responsible for maintaining more than a hundred libraries, tools and backend services, most of which are written in C++, although some projects are in Python, Perl or Java. Back in 2011, all these projects had to be built from one giant Subversion repository, they contained hard-coded relative paths to other projects they depended on, yet as developers we would still have to know all the dependencies and build them in the correct order to actually build the project we were interested in. Also, every project contained a lot of boilerplate code and over time, this code changed, so it could be substantially different between any two projects. All of this made it quite painful to build projects or set them up for continuous integration, let alone distribute them to our production servers.

As we were thinking about migrating our codebase to Git, we wondered whether there was an easier way to build our projects. Our ideal solution at that point would have been a tool that allowed us build, test, install and package every project, regardless of the language it’s written in, with exactly the same command. We couldn’t find anything like that and so we decided to write our own tool, which we called mirbuild (for hopefully obvious reasons).

mirbuild is a meta-build-system, which means it’s basically delegating the actual build process to other build systems, but hides this behind a common interface. It is just a set of Python libraries, so the actual build scripts are written in Python. For a simple project, such a build script (usually called build.py) looks like this:

  #!/usr/bin/env python
  from mirbuild import *
  project = CMakeProject('libcyclone')
             namespace = ['cyclone', 'version'])

As you can guess from the class name, this project uses CMake under the hood. But if you just want to build the project, you don’t have to care. You just run

  ./build.py build

and it “just works”. But mirbuild does a bit more than just forwarding commands to CMake. For example, it will create a file that controls compile flags and include and link paths of project dependencies. It will also create a version header for your project if you ask it to do so.

Here’s are some of mirbuild’s features:

  • supports CMake (C/C++), Python, Thrift (C++/Python) and “simple” projects
  • can build, test, install and clean up projects
  • can resolve dependencies between projects
  • can create Debian packages
  • can build different configurations (release, debug, coverage) of a project
  • can run code coverage analysis tools

Over the last one and a half years, mirbuild has saved us from a lot of grief and it has made building projects a lot of fun. Thanks to mirbuild, we’ve also simplified our continuous integration framework and have now got all our production packages built on disposable virtual machines (but that’s a different story). If you’re maintaining lots of C++ code and aren’t happy with how you’re building it, check it out, it’s on Github.

To be continued…

Last.fm Desktop Scrobbler Released!

Thursday, 31 January 2013
by michaelc
filed under Announcements and Code
Comments: 26

Hello, scrobble fans! Were you wondering where your desktop app updates had gone? Well wonder no longer! With the last major version released back in 2007 (those were the days, eh?) you’d be forgiven for thinking there weren’t any more coming, but we’ve actually been hard at work on an update to bring us crashing into 2008, a little late.

We released this new desktop scrobbler as a beta a little under a year ago and have been spending the time since getting it ready for launch. A couple of weeks ago (15th Jan) that launch day finally arrived and we pushed it out to everyone on Windows, Mac, and Linux! If you’ve not already got it you can head over to our download page for a fresh copy.

Here’s a Youtube.com video of us reaching 200,000 authenticated users on the new app: https://www.youtube.com/watch?v=vy_VwcGazE4. Just look at how much fun we’re having!

The app comes with a new design and some features we hope you’ll really love. There’s a now playing tab where information about your currently scrobbling track will show up, including related artists, tags, biography, and scrobble statistics. Tracks played from radio stations will also show you a little context as to why the track is being played. A scrobbles tab where you can see a history of what you’ve been scrobbling and find out more about those tracks. A profile tab where you can see your scrobble charts. A friends tab where you can see what your friends are listening to and start their library radios. There’s also a radio tab where you can start all your usual Last.fm radio stations including a history of your recent ones.

We’re looking at the app as a baseline with which we can add and improve upon. There’s been a few ideas bubbling away that we can’t wait to add, but for now the focus is stability. With a large change such as this there are bound to be teething troubles and we’ve been taking your feedback on the client support forum and making sure we address problems and implement anything we might have missed that you loved in the old app.

A reminder that, like our iOS and Android apps, the desktop Scrobbler is open source and hosted on our Last.fm github page (both the liblastfm and lastfm-desktop repositories make up the desktop app) where you’ll also be able to find other things Last.fm have open sourced. If you’d like to get involved with development then head over there and fork us!

It’s been a long road getting to this point and I’d like to thank all the client team members, contributors, and believers past and present for making it happen. You know who you are and you’re all very wonderful!

Last.fm Scrobbler for Linux

We at Last.fm love Linux. Not only does it power almost all of the server machines that bring Last.fm to you, it is also the operating system of choice of many of our developers at Last.HQ. For our desktop application Last.fm Scrobbler, Linux is a first class supported operating system. The source code is available on GitHub if you want to have a go at building it yourself, but we also provide ready built packages for those of you who are using Debian or Ubuntu. Just go to http://apt.last.fm and find out how to install them. Today we release an updated set of packages featuring the latest version of Last.fm scrobbler (2.1.33).

We are also proud to release official packages of Last.fm Scrobbler for the Raspberry Pi today. If you have not heard about Raspberry Pi, it is an ambitious project to bring better teaching of programming and the technology behind computers to children. The Raspberry Pi Foundation is a charity that has designed and developed a mini computer that costs less than £40 and allows not only children to dive into the world of computer programming. Being so cheap, the Raspberry Pi has also attracted many hackers to make new things based on this mini computer. Media centre solutions are already very popular, which is not surprising because the Raspberry Pi has a network interface and video and audio outputs. We now contribute our Last.fm client application to the Raspberry Pi universe. If you have a Raspberry Pi and are running the Raspbian operating system on it, then head over to http://apt.last.fm quickly and install Last.fm Scrobbler for Raspberry Pi!

Scrobbler for iOS

Wednesday, 19 December 2012
by Michael Horan
filed under Announcements and Tips and Tricks
Comments: 38

Ten years ago was a boon-time for MP3s. I remember ripping my first CD, thrilled with the prospect of storing my ever-expanding collection on a computer instead of taking up precious space in my cramped apartment. The shelves of CDs started collecting dust, my Discman gave way to MP3 players, iTunes was born and then the iPod allowed me to carry 1,000 songs in my pocket!

Eleven years later, I have transferred my music library between many computers, over dozens of portable devices and now in the ether of a cloud. My digital library has been a constant companion, traveling the world and growing with me. I love my library!

Recent developments in streaming services are making the maintenance of a digital collection obsolete. Seemingly endless libraries are available for monthly rental, and internet radio services like Last.fm offer unlimited personalised streaming. There are so many new ways to listen to music now, that I sometimes forget about my carefully curated digital library.

It is with this in mind that the Scrobbler for iOS was created.

Introducing the Scrobbler for iOS, an iPhone and iPad application that not only natively scrobbles, but gives you several ways to re-discover your digital library.

We’ve long known that scrobbling iPhones has not always been a seamless process, so we wanted to create an application that alleviates this pain. We also wanted to offer our users with something new, so we built playlisting services that get applied to your digital library. For the first time, the algorithms that power Last.fm Radio can now be applied to the libraries you’ve spent years curating.

Every track in your library can be used to discover other, similar tracks. We use the power of machine tags and the knowledge of social tags to help you re-connect with the music you love.

Download the app here and join the group to keep up to date with announcements, forums and help.

So this is Christmas, and what have we done?

Tuesday, 18 December 2012
by davidaw
filed under Trends and Data
Comments: 3

Well since you asked, we’ve been playing with some Christmas scrobbling data to see how our users’ listening habits change around the festive season. I created a data set of Christmas tracks based on the top tracks tagged with “christmas” which were released before scrobble 0 in 2002. This gave me list of “all time Christmas greats” which are unlikely to be particularly affected by annual variation. These include:

  • Mariah Carey – All I Want for Christmas Is You
  • Bing Crosby – White Christmas
  • Wham! – Last Christmas
  • Frank Sinatra – Have Yourself a Merry Little Christmas
  • Band Aid – Do They Know It’s Christmas?
  • Dean Martin – Let It Snow! Let It Snow! Let It Snow!
  • Brenda Lee – Rockin’ Around The Christmas Tree
  • Bobby Helms – Jingle Bell Rock
  • The Pogues – Fairytale of New York
  • Andy Williams – It’s the Most Wonderful Time of the Year

I think you’ll agree that they’re all songs that you hear a lot of during December and not a lot during the rest of the year.

With that in place, I attempted to answer an age old question suggested to me by our good friend and Last.fm founder RJ, “Does Christmas really get earlier every year?” – a question which refers to the perceptual creep of seasonal products, music and decoration further and further towards the summer each year. I normalised the scrobble volume in the run up to Christmas by the Christmas Eve volume for each year to yield a comparable listening curve for each year. I chose the point at which listening volume becomes 50% of the December 24th volume to call “the start of Christmas”, then compared that date across all the years for which we have complete and reliable scrobble data (2005-2011).

The result was a weak trend in the opposite direction, suggesting that in fact Christmas might in fact be getting later each year by as much as one day each year. This graph shows the difference between the listening curve for 2005 and 2011:

During the initial graphing for the above, Elliot noticed that without the 7-day moving average the graph looked a little like a Christmas tree on its side with the day-of-week variation creating the branches. Pursuing this I made a concept for a “Scrobble tree”, which I then handed to Graham – one of our design team – and he worked his magic to produce this awesome Christmas card.

If that’s not enough festive cheer for you, then you should check out last.fm/christmas created by web developer Marek. It shows data about the current Christmas music being listened to and a live indicator of what percentage Christmas it is right now.

Merry Christmas everybody!