Crossfading in Music Streaming Apps

Crossfading in Music Streaming Apps

I think it’s fair to say that based on functionality and widespread adoption, Spotify has the best music streaming app. If somebody interesting has a shared playlist – it’s on Spotify. If you want to connect some hardware to a streaming app – it’ll probably work easiest on Spotify. And because it’s the biggest, it probably has the best range of music and curated playlists on any of the music services.

Sure, Apple and YouTube Music have their advantages in some niche areas – be it hardware support or things like spatial audio. But in general, Spotify just works better.

However, as I’ve said previously, despite all that, I don’t use Spotify as my main music service.

Until fairly recently I was paying for Spotify in addition to YouTube Music, the service I do still use. So I had been using the full-featured version of the service quite a bit.

An aside: It was actually “Shuffle” that that was the straw that broke the camel’s back and ultimately moved me to stop subscribing. Spotify loves shuffle and it just drove me mad. I don’t mind it too much on playlists, but not even always then. And I hate it on albums. Ironically, a few days after cancelling, Adele called out Spotify on the same issue and they made changes for her! There were other reasons for cancelling though…

Right now, I have a second music subscription, this time with Apple Music. That’s because they offered me 6 months of it free because I bought a pair of Beats headphones (Powerbeats Pro) about two years ago. So I thought I’d give it a whirl especially as Apple Music is the one key Apple app that they actively develop for Android.

Crossfading is the work of the devil. Why do you like it?

I confess that I’m a bit of a sucker for crossfading. Again, to be clear, I mean exclusively for playlists, and even then, I want to control whether it’s available or not.

Crossfading is great for running, or just having uninterrupted music listening sessions – a party in your own kitchen. But it’s obviously wrong for certain types of music and so should be used with care. And a skilled DJ is probably always going to be better. Although AI…

However, I’ll return to the fact that I listen to a certain amount of music while I exercise, and I just want a non-stop stream. There’s no fun in listening to my own breathing for several seconds between tracks!

Based on the implementation, or lack of, crossfading on various streaming music apps, it does seem to be a technically challenging thing to do. Obviously the app needs two audio files in place at the same time – the current one and at least the start of the next one. It’ll want to employ some kind of beat matching where possible. Obviously it could be very clever and slow down or speed up the next track to match the beat, while pitch correcting, and then slowly speed down/slow up the track once the crossfade has happened. I’m not aware of any services that quite do this though.

Then there is the question of how the backend of the service works. If each track is it’s own thing, then crossfading might break many issues down the line. What about if you’re casting the audio to a third party device? In that instance the audio file isn’t going via my phone, it’s travelling direct.

And where is the crossfading implemented? Is it server-side which is probably the most powerful way to do it? But if you’ve built your system so that everything happens client-side (i.e. on your phone), you have differing resources to work with. My top of the line Pixel 6 Pro will do it easily, but your Android 7 powered ancient tablet may struggle. Lowest common denominator tends to win out.

Anyway, here’s what the services seem to be offering as of January 2022.

Spotify

Spotify does offer a really fully featured crossfading solution. They have something called Automix as well as crossfading. Automix is enabled on some specific Spotify playlists and lets you playback as though a DJ was in charge, mixing between tracks. I assume that a human probably did do some kind of software mix of the songs, determining in/out-points and fade levels, which are then played back in the app when the user turns it on. There may be beatmatching, speed changes and pitch correction. I don’t know.

But Spotify also offers a regular Crossfade with between 0 seconds and 12 seconds available. Obviously you’re not going to get much in the way of beat matching (it may be completely impossible depending on the two tracks you’re switching between), but you can at least keep the music going non-stop.

Finally, there is Gapless Playback which essentially cuts out any silence that may have been included in the tracks, meaning that one tracks immediately follows the next. You probably don’t want to listen to an album in order with this turned on, but for compilations and playlists it might work.

All of these features are available on Android and iOS, and obviously you could have combinations of the options available to you.

Spotify has clearly spent a lot of time getting this to work.

YouTube Music

YouTube Music doesn’t offer crossfading on any platform.

It’s sorely lacking in playback options. The only way you’re going to hear audio “mixed” is if it has been uploaded in a pre-mixed format.

It does have Gapless – at least on its own music (not your uploads), and only if you’re a Premium subscriber. Because that’s done server-side, it’s available on Android and iOS.

Apple Music

This is the oddest one.

Apple Music does have a Crossfade setting which you can set to Automatic, Manual (between 1 second and 12 seconds that you choose) or Off. And it works very nicely.

But only on Android!

That’s right users of Apple’s own devices running iOS don’t get crossfading!

Apple Music does have Gapless by default where the original album is gapless, but that’s not a user setting, and doesn’t apply for playlists where you would use crossfade.

The lack of crossfading on iOS is odd, and I assume down to how the iOS app is architected, or some fundamental limitation about what you can do with audio in iOS (odd, but I guess possible). Because there’s no way Apple would ordinarily offer a feature like that to Android users first.

Amazon Music

I only have the “Prime” version of this, but from I can tell, the app is the same whether you’re Prime or Unlimited – just the music selection changes.

Anyway, Amazon Music doesn’t have crossfade at all. It doesn’t seem to even have gapless playback, but I stand to be corrected on that.

Summary

The first thing to say is that I’ve been considering the services’ mobile apps here. Those tend to be the most developed versions of the apps, and are the most feature rich. Companies like Spotify put their apps on dozens of devices (TVs, game consoles, streaming sticks etc), and often the functionality is not always there on other devices. The same comes if you try casting or Airplaying your audio to another device. Things like crossfading may or may not work.

So unless you’re plugging your phone directly into the speaker system at your houseparty, the music may not be as gloriously mixed as it is in a house party on Euphoria.

There’s no getting away from the fact that YouTube Music is bad, and is behind the other leading streamers with the exception of Amazon Music which is worse. Apple Music is good – for Android users! Although obviously on iOS you have the nonsense that is spatial audio (I’ve no problem with it in some contexts, but in music I think it’s the equivalent of turning a 2D film into a 3D film in post. For some orchestral works which were recorded that way, it makes sense, but otherwise…)

And Spotify is obviously the best.

I do have other issues with Spotify – their app is trying to do too much, pushing me into podcasts I’m not interested in. And their support of someone who in my eyes is a big anti-vaxxer also means that I’m simply not comfortable with giving the company my money. Those issues mean that I’ll be sticking with YouTube Music – in large part because I have tens of thousands of my own tracks stored on the service, and the couple of extra quid I pay a month for an ad-free YouTube experience is incalculably valuable too.

If they’d just get a few developers to build out their music offering a bit more…

Later Update

Lots of radio folk in my Twitter timeline disagree with me over crossfading.

It’s a blunt tool, they say. It destroys some tracks which maybe start or end on a crescendo and will get faded at the wrong point.

James Cridland has written a rebuttal blog.

Steve Martin even posted this graphic to explain why it’s bad.

They’re right.

It’s not perfect. A good radio DJ can do a much better job. But that doesn’t mean that I don’t want crossfading on my music streaming services. And a bad job is better than a gap in my view.

In time, I’ve not doubt AI will solve this. It will look for cues in the music to work out the best way to “mix” two tracks together. Does the song naturally fade or reach an abrupt halt? What would be the best way to get into the next song – a slow fade, or at full volume from the first note?

I don’t doubt there are better things to do than a basic crossfade, but at the moment, the only alternative answer in many apps is a gap. And that’s bad.


Posted

in

Tags: