The Spotify desktop client has seen a massive regression since 2008 or 2009. It's incredible how they managed to make it so unresponsive. Scrolling in a playlist is like playing a game at 10 fps. It's uncomfortable and not worth it. Ads are worse as well. I've seen countless malware ads in the bottom banner.
Add to that the massive start-up time for the Windows client. A fresh instance Spotify from a rebooted machine takes ages to gain full functionality. If you quit in the middle of a good playlist, most of the time you'll be able to continue playing from where that playlist left off. If you opened Spotify to find a song or move to another playlist, you'll be waiting a while.
I just started Spotify with a stopwatch:
2:26 for the main Browse to completely render
2:42 for the live search window to give suggestions
2:52 (+10 seconds) for the search to return a result
I once thought it was because of the massive local library that had to be loaded and sorted into Spotify, but I've done away with local files to try to speed up the start up. The results on my laptop are not any better. Maybe it's because I've been updating the same client since 2012?
Should a music player be anywhere near as heavy as Chrome? A web browser is a pretty immensely complicated thing (CSS, DOM rendering, Javascript JIT compiler, etc.).
Similar criticisms have been made of iTunes over the years (though I find it's not bad in the current version). Things like laggy scrolling are a bit understandable there, since they've defaulted to the grid of album covers view for a while. But Spotify looks like it's all just columns of text and a few thumbnails on the side?
Considering that a good many "music player" are basically written atop browser rendering engines... they're equivalent in some ways. Plus, they have the added overhead of checking tens of thousands of files for changes (if they do so on each start as some do).
I assume this thing is just a web app rendered in their "browser"? So doesn't it need to do all the things you list? Needs css to layout the DOM, needs to parse and execute javascript.
I'm a recent convert from grooveshark, so I've been using the spotlight web player and I find it a pretty nice web app to be honest. I haven't dealt with any of the actual desktop clients yet, so don't know if anything I said above is true.
> I assume this thing is just a web app rendered in their "browser"? So doesn't it need to do all the things you list? Needs css to layout the DOM, needs to parse and execute javascript.
From a users perspective, that is an implementation detail and doesn't matter. A users only cares if his music player feels slow or not.
It would take a bit more than using a hard disk rather than an SSD to create a 3 minute load time. It must be downloading the entire program over the internet every time.
Something is wrong there. I just tried the same tasks on my system; from clicking the shortcut to the Browse view rendering was 5 seconds, the live search displays suggestions almost as fast as I can type more characters, and the full results appear within a second. I am running it off an SSD, but that's not enough to account for all that time. I don't have a guess what it is, but something else is going on.
The recent removal of the system tray icon is anti-user. It provided users with easy access to Play/Pause from the system tray, but that meant users spent less time in the app, so the system tray icon was removed completely.
As for aero tiles... That's a Win8 thing? I guess it's a valid complaint. I think you can set global keyboard shortcuts for those actions, if that helps.
Aero is a vista+ thing. Hover over a playing vlc in the taskbar and you see skip/pause/play.
Foobar is classic to the cost of UX. We've figured out for a long time now bigger buttons are important, there's no need for separate pause/play especially if stop is right there.
It doesn't need a slew of crappy gradients and fancy shit, Just drag the interface forward a decade that's all. Usable with a touch screen should be a minimum now.
Ah, thank you. ncmpcpp looks great (and I imagine I can connect it to an mpd instance running on a separate computer), but it's really important for me to not have a window in my alt+tab list.
I'll try XMMS, I have tried it before but it never "clicked". I'll give it another shot, thanks!
You see, I was a very avid fan of winamp(2) about 10 years ago. Nothing else came close. Then onto linux, xmms did the trick (as all I needed was a winamp2 replacement). Then as my collection grew, my priorities change, I was after speed. So mpd was thing. In the past few years I haven't had a personal collection, now it's more often listening to music on grooveshark/youtube. After grooveshark went down, I got spotify (paid subscription), and I find myself being _stunned_ how bad, how slow, how ugly, how anti-UX it is. I think I may go back to having the collection on my HDD once again with mpd as that is still really fast. But that'll be difficult, as I'm often on the go and want to listen to stuff on my cell phone (where spotify is okay actually).
I have exactly the same experience as you. My solution is Google Music, where I basically just upload all my own music and I can listen to it on my phone. It's a bit of a hassle to keep the two synced, but not as much hassle it is to be listening to music in a browser window that takes up loads of RAM, as if playing an mp3 is some intractable problem.
It's 2015 and I can't "alt-tab" into spotify in order to pause/play by pressing space; I have to click somewhere in the upper half of the interface in order to "refocus", or the spacebar just scrolls down. Which is useful for something, I guess.
Though this is on Ubuntu, and Spotify is still a beta app on that platform last I checked. I don't think I've had this problem on Windows.
Check out the Arch Linux wiki on this. Spotify apparently plays nicely with the rest of your desktop and you should be able to set up media key short cuts.
I made a script that plays/pauses Spotify through dbus, which I usually execute by opening dmenu. :)
My keyboard has media keys, but I thought I would prefer short textual commands to having to move my hand to the upper right of my keyboard (and probably miss the key if I wasn't looking?).
Yeah media keys are annoying and not present on lots of keyboards. You could map this script via your window manager to something like special-F5 through to special-F8 to back-play/pause-stop-forward...
In Ubuntu Unity, you can just click on the sound icon in the top right corner of the screen and click pause. Or you can use the pause button on your keyboard, if you have one.
As someone who switches often between the mac and windows version this kills me. The mac version will continue after closing but the pc version just cuts the music completely.
This is simply a fundamental difference between OS X and Windows. Typically in OS X an application remains open after closing its last window, whereas in Windows this is typically the signal to quit the application entirely. Try minimizing in Windows, that's the appropriate equivalent.
The Windows experience is the same if the window is from an application that is running in the systray. In that case clicking the X closes the last window but leaves the application running.
I think daheza was saying that the removal of the systray caused the same actions (closing a window) to no longer do the same thing (get this window out of my way, but keep playing music) across operating systems when they used to in the past.
In Windows you used to be able to set the close action to minimize to tray (so effectively it did the same as OSX). This isn't a non-standard thing in Windows either, plenty of applications offer that behaviour. But a recent update of Spotify removed this and it is insanely annoying. I keep closing it just out of muscle memory and it's infuriating.
Hmm - I haven't really noticed any unresponsive-ness but I also am a paid subscriber, I wonder if the ads are responsible for the slowness?
The spotify mobile app has some odd behavior from time to time. The UI will continue to respond to my actions but nothing actually happens for 20 seconds, during that time i'll click on several different songs attempting to get them to play.
Finally, for whatever reason, the app springs back to life an begins to execute the actions out of some sort of queue leading to several songs playing. It seemed very odd to queue song plays in such manner. I would've assumed it would be last one wins rather than
"Song 1" - play for 2 seconds
"Song 2" - Play for 2 seconds
"Song 3" - play for 2 seconds
I may have clicked "Play song 2" 15 seconds ago before the song is actually played.
Overall, I love spotify though. I use it everywhere.
Spotify and SoundCloud are testaments to how users will endure whatever awful UX you give them as long as they're getting enough value from your thing.
The soundcloud mobile app is not that bad, at least on Android. It has the best audio scrubbing of any app I've used. The UI is super simple and made to work at a distance, e.g. while mounted in a card holder.
I absolutely hate the soundcloud app compared to the spotify app. Constant crashing, locks my phone up, random pauses during playback. Android, Samsung Galaxy S4. The UI is fine I just wish it didn't break every other song.
Speaking of the mobile app, the lockscreen UI on Android is absolutely infuriating while driving... The "Skip Song" and "Close" buttons are right next to each other and far too small. Between that and the features they've been gutting from the desktop app I've gone back to Google Play Music now.
I've frequently been unable to pause or change the volume of the music for tens of seconds because the user interface stalled. Completely inexcusable for an app that is ostensibly for playing music.
On the good side, since all the webviews are right there in the app as renamed zip files, I suppose they could easily be edited to cut out some of the bottlenecks?
Back in Windows 98 days, it took a few seconds to load a screen of a native app sometimes. Now our computers are orders of magnitude faster, and webapps can still take a few seconds to load a screen. Progress?
The thing that hadn't changed is humans - it was and it's still acceptable for an application to take a second or another to load.
Technical details had changed, but I can't really judge if those changes were drastically innovative or we're just redoing the same shit over and over, and can't tell if world has gone better or worse. I guess such judgements are highly subjective.
I can't say I've experienced any of the complaints about slowness that the other people have mentioned but this regression has really annoyed me. You could search for a song within a playlist and now you can't. I have no idea why they would remove it.
When the industry props you up as the only avenue for access to a large collection of streaming music, you don't have to compete on terms of stability, usability or features anymore.
They did a refresh recently (just a few weeks ago) that installed a new renderer both for the playlist content view and for the playlist list view.
That resulted in a big performance boost, at least on my Core i7 MacBook Pro. With older machines I can guess that the performance might still not be that good.
However, this refresh also removed the ability to filter the playlist content view (cmd+F). The worst part of losing that feature is trying to find stuff in "Local Files". Very awkward.
the mobile app has several modes in which it'll stop playback, and you need to pull it out of your pocket, and hit buttons or re-select your damn playlist before it starts your music again. also really simple shit like 'random or 'repeat' are impossible to find.
which is pretty much a giant fucking failure for a mobile app that's used by people in the car, bluetooth, people on the go, etc.
i wish i could say mobile itunes stayed useable, but it didn't either. we're basically choosing from the worst of the best, these days.
Nice technical read, but to be honest, the moment I find another app that does what I need I will gladly leave Spotify behind. Apart from the general slugginess of the app, the number of features that have been removed over the last couple of months is staggering. Just some examples, in case someone from Spotify in a position to fix this is reading this:
* Searching in playlists was removed
* Searching in local files was removed (and the local file support has always been crap anyway, please work together with Last.fm to properly match files)
* Creating a new playlist in a folder was removed (you now have to create and move the playlist)
* Sorting playlist folders was removed.
* The option to turn off your 'volume normalisation' was removed. Because your algorithm is really broken and severely compresses the music, removing any dynamic range, this is the biggest showstopper for me. Check your forums, tens if not hundreds of people already left because of this.
* Apps were removed (tbh, I can live with this)
Oh, another one, please give us an option to turn off 'Spotify Connect'. It prevents my Android phone from entering deep sleep, and thus it is a battery drain. You don't need to fix the battery drainage, just give me an option to turn the feature off.
Yes its a shit-show. They even had a (hidden) working equalizer in the OSX version, but decided that this too was a feature that should be removed.
I still have no idea how to find a specific album in an artist's page, but of course that is a minor concern, compared to their ability to "to work with whatever frameworks they need, without the need to coordinate tooling and dependencies with other squads".
The one thing Apple got right is to always optimize for user experience, never for engineering convenience. Native code, no garbage collection - still pays off today.
What would be a good cross-platform tech stack that satisfies those needs, and isn't C++? Anything with a QT binding I suppose?
This is driving me crazy. I managed to stumble across this feature via cmd+f one day and as quickly as I find it, they remove it. Seriously?
The only way this feature could be used was via a keyboard shortcut, it wasn't a something cluttering the UI or adding additional cognitive load in a menu for a user - and it was damn handy.
The day where the update removed this feature I wanted to find the product manager at Spotify and yell WTF at their face.
I believe that the main reason for not being able to disable 'Spotify Connect' is that the functionality is being used to prevent people from sharing Spotify accounts. This became particularly clear in the last version of Spotify when they made it impossible to set the Spotify client in 'Offline' mode if the phone was already connected using 'Spotify Connect' (the 'Offline' setting is being grey out). Now you have to set the phone in 'Flight mode' and then start up the Spotify client and set the Spotify client to 'Offline' mode (and then disable 'Flight mode' if you want to use Internet while listening in 'Offline' mode). So my guess is that they will never make it possible to disable 'Spotify connect'.
Starring songs was also removed and individual songs you "Save to Your Music" get bundled in with every song from every album and artist you've saved or followed and the songs from some playlists it seems. It's a complete mess.
Spotify connect is the most frustrating problem for me. I use it at work on my laptop and it drains the battery on my phone, tablet and my partners phone (as we share an account).
I really like the approach that Spotify take to working on new features, the squads idea is quite good. I think it is important that people occasionally break out of their cliques and work with new people, I have found based on personal experience that working with the same people day-in-day-out will eventually give you tunnel vision. You stop learning from those around you, eventually the hive-mind becomes one and there is little free-thinking. Breaking out and working with another squad I think could be beneficial to Spotify.
This is where the praise ends. As a Spotify Premium user, I love the service, but the interface as many others have pointed out has really gone downhill. I don't know who is leading the UX squad over at Spotify, but the app needs considerable work. High startup times, incredible amounts of frame rate lag and removal of the system tray icon. What is going on over there? I have also noticed that the app can play a song quickly, but browsing and searching is incredibly slow (even on a fast connection).
I'm not going to applaud Spotify for the direction their desktop-client has taken UX-wise, but I did find this an interesting read about how they organize both their code and teams.
I always assumed parts of the Spotify-client had to be HTML/JS based, but I had no idea it was done to such an extensive degree.
> I would bet that the Spotify desktop client is among the top 25 most intricate uses of JavaScript in the world.
If this is really true, "intricate" probably means "needlessly complex" because the interface, while by no means bad, is nowhere near as sophisticated as many JS apps I have seen and worked on. Off the top of my head, I would be willing to bet GMail, Google Spreadsheets, and Facebook are all vastly more "intricate" than the Spotify client based purely on number of features.
While I'm appalled by some of the recent changes Spotify has made, I'm really impressed by how easy it is to work on their desktop client. I can't even imagine how nice things must be when you have the real source, automatic live-reload, and don't have to muck around with concatenated or minified JS/css/handlebars files. This setup can't be good for memory usage, but it rocks for development!
For anyone who's curious, it's easy to take a look under the hood from the Spotify installation folder. (Windows users can find it at %APPDATA%/Spotify/)
The Apps directory is full of *.spa files. These are zip files; if you extract them to folders with the same names and delete the zips, the application will still work, but you'll be able to edit the code.
The zlink directory is the most useful. This holds the main UI and much of the logic that powers it. Search through main.js in this directory for the Session.prototype.isDeveloper declaration. If you force it to return true, the Spotify UI will refresh when you press F5 inside it. Now you don't have to close and reopen every time you make a change! This will also add some miscellaneous UI embellishments (they aren't terribly useful and can be disabled by hardwiring logic elsewhere in main.js).
Initially, I thought the about directory would be a handy sandbox to mess around in, but then I realized that you can easily add new apps! Integrating them into the UI takes a bit of effort, but you can easily get to them by putting the app URI into the search bar (spotify:app:___). (Each app's URI is defined within the its js file. Make sure you give it a unique name in its manifest, too.)
Additionally, you can open cef.pak and devtools_resources.pak with a text editor and mess around (though they're not terribly useful).
NB: If you're really motivated, it shouldn't be too hard to set up a complete development environment for this. I was able to quickly dump most of the concatenated files to zips - all I needed to do to finish was to cut off some of the module wrapper code and reformat directory paths. I quit when I accomplished my goals of shuffling the UI around, but if you're interested, I have a simple concatenated files dumper at https://gist.github.com/GeorgeHahn/0deef2fb0d392ef507dd.
It takes a bit of mucking around, but it's not too hard to achieve a legacy-UI feel (volume on the left, no lyrics button, de-uglified media control buttons, compact playlist/track lists, etc). Of course, this will get ruined the next time Spotify updates, so you should block updates and make backups if you want to keep your changes.
It's been like this for some time – I remember I was able to inspect elements within the page some time ago.
One of the problems though – the user experience of the app is rather unpleasant. It's extremely laggy and noticeably non-native – using incorrect keyboard shortcuts, and so on.
I'm sure it's possible to do it better, but the UX of the app used to be great and is slowly declining, which is a real shame.
I got a HDPI display for my windows machine a few days ago. What I am wondering now is why Spotify doesn't support this? If it runs on chromium, which does support hdpi displays, why doesn't spotify? I have I have to choose for a really small spotify client or a real blurry one. Reading this, it would not seem to hard to make it work. It works fine on OSX.
Yeah, the 32-bit Linux version (the 64-bit version has the new UI IIRC) is the way the Spotify client used to look before they switched over to WebKit. I wish it was possible to go back to that on Windows - it was much snappier and didn't have lots of pointless padding between song titles.
From the two computers I've used with spotify clients on the Linux version is far snappier and more responsive (as in responds to commands sometime within the current minute) than the OSx version.
According to their blogs etc the main purpose of the Linux version is internal use by spotify developers working on Linux workstations - it is only released to the public because, "why not?". I wonder if this is why the Linux version is 'behind' the windows/OSx versions but actually works better. I.e. they dogfood it more but don't feel the need for constant UI 'improvements'.
First off, great Quora answer. I wonder: if the 'notifications' squad comes up with an idea like 'users should be able to disable notifications', do they have to collaborate with the 'settings' squad?
He's still there, and is doing low level stuff and hacks in Gothenburg. I heard he wrote much of the initial, highly optimized code for Spotify Connect.
I don't think the move from the C/C++ client was something he liked, tbh :)
I am using Spotify 0.9.17 on Linux, and it is blazing fast. Starts up and is ready in under 0.5 seconds. Compared to the new "improved" JS version on my OS X it is an order of magnitude better.
I can still search in playlists! And i get the Top Lists for all the contries instead of just a few (Spotify decimated the avaiable contries in top lists in the JS version).
Anybody who spent some time on https://community.spotify.com will agree that Spotify does not give a damn about the opinions of their most passionate users (the ones that actually want to improve the experience by participating in the forum!).
Especially since Spotify significantly increased font size and line spacing for no obvious reason [1] and no option to change it back even when this was a (from my perspective) widley demanded feature, I have lost confidence in the community process.
i'm so confused as to why Spotify removed the ability to search within a playlist recently. such a useful feature is now gone, really leaves a sour taste in my mouth.
Can we please stop linking to Quora articles? Just post it on pastebin or something similar. It's silly to post to a place where you need to signup in order to read the material.
If you feel like the Spotify desktop application is slow, you can try and use play.spotify.com instead—it's almost the same, and you can even use AdBlock on it.