Ask HN: Why can't modern smartphones play music smoothly?
As computing power grows, smartphones should theoretically encounter fewer and fewer stutters. However, at least on the phones I've used, which are iPhone8 Plus and Pixel 7, stutters still exist during music playing (even with the phone put in sleep mode). And I don't think it's only the case for the phones I've used.
The sources of the stutters I can come up with are:
1. all available LITTLE cores are busy and at least a task wake up in the meantime. 2. the CPU scheduler doesn't schedule properly (from the user experience perspective). 3. music player doesn't advice itself as latency-sensitive app.
It's easy for modern smartphones to have ready_to_run_tasks (daemons) > available_cpus, and a CPU scheduler which ignores latency-sensitive apps can easily preempt the music player.
To sum up, user experience is probably the utmost thing that modern phones care, how can things like "stutters during music playing" happen? Can't we just defer those daemon tasks?
(maybe this is why my collegue got a MP3 player instead) I'm perplexed how you're talking about this like it's a common problem people have had, something that's been ongoing for years. There is no stuttering problem on audio playback on any of the smart phones you've listed. And there hasn't been any stuttering problem since the initial launch of the first generation iPhone. The last time I remember any stuttering on any phone I've owned was maybe the Motorola Rokr twenty years ago. You must have some sort of accessory problem. this was my take on reading it as well. my first thought was that it sounds like a bluetooth device. the only time I ever have issues is because of how shitty bluetooth is. when I use wired headphones, I never have issues Even bluetooth now days is often fine if not buying bargain basement products. I use pretty much exclusively bluetooth for audio between PCs/phone/TV and both earphones and speakers, and my car's stereo is the only bluetooth connection I have that ever has connection/lag issues at all (and even then it's infrequent enough that I still choose it over plugging a USB cable in between phone and car). Yeah, but bluetooth is different in how it can stutter and cause interrupts than just signal strength. I have seen multiple common "speaker" devices where multiple devices have paired to it so that while it is streaming from one device, gets confused when another paired device is rediscovered and it tries to connect. The confusion of trying to decide if the current stream should continue or allow new device to take over is irritating. I had one device that would suddenly connect at random times and music would suddenly start playing from an app that was previously not playing until the bluetooth device "woke up" or whatever happened. I hate bluetooth for all of the little paper cut issues it has. Not one of them are killer, but together just ruins its likeability. My solution to this is only allowing a couple pairings per Bluetooth end device My wife's van, for example, can store a few connections - but only "likes" to keep its most recent (so ... in her vehicle, while my phone is 'paired', it never connects) The only thing I have with more than 1 or 2 pairings are my [nice] Bose headphones ... and those are only paired to 'my' devices (two laptops (home & work), my cell, and my wife's cell (because she likes to steal them to use when mowing)) Bluetooth soundbar? Only connects to my laptop Bluetooth earbuds? Only connects to my phone Bluetooth wall speaker? One connects to my wife's phone, the other to mine I've got a mid-range Redmii Android at the moment and it's perfectly fine. I don't remember any stuttering on this or previous phones. Use my Pixel 6a daily to listen music either via cable or BT, and I have never encountered any problem. Something is fucked up with Apple Music streaming playback; it may be Bluetooth specific or may not be. In nearly every song I stream, whether it's from my iCloud library or Apple Music itself, there's a stutter at exactly the 15 second mark in whatever song it is; the stutter is different every time but when it occurs is consistent. There are also inconsistent stutters throughout songs. iPhone 13 and 2nd gen AirPods Pro, if it's relevant. I've filed a feedback but Apple feedback is a black hole these days. I have the same issue. Not with every song but often enough. The worst for me was an issue where occasionally my entire computer would slow down with no evidence from Activity Monitor that something was eating cycles or taking memory.
I finally traced it down to Apple Music while in fullscreen and using multiple monitors, which was my preferred setup. Filed a ticket with Apple feedback and it's still open with no response. I’d get a single stutter seconds into playback of a new song fairly often when playing lossless on Apple Music on my iPhone, without Bluetooth. I suspect that the stutter happens when it decides to change audio tracks to a higher bit rate stream, but that’s me talking out of my rear. That particular problem went away once I turned off lossless in Apple Music settings. Same here. The stutter is quite annoying, and easily reproducible. It only happens when streaming lossless music; does not happen when playing downloaded music. Amazon Music Unlimited has no stutter whatsoever when streaming lossless files. Perhaps Apple wasn't quite ready to offer Lossless, knew the stutter was there, and released it anyway. I experience the same type of issues with Spotify on my iphones. it's followed me through every Spotify upgrade and across every iPhone i've owned. What "modern smartphone" cannot "play music smoothly"? If you mean, "can't stream smoothly" - check your connection and your service choice (eg Paramount+ always seems to have problems for me ... regardless of the connection or device) But "play music smoothly" has been a core feature (with nary a problem) since the first iPhone Every one I have had runs all the audio I have ever wanted to run with no issue - 4G, 6S+, 8+, 11, SE, 14, and 15 My dad's and mother-in-law's Pixel 7 also have no issues Turn off any multi-hundred watt 2.4Ghz transmitters you might have in the house. Like the microwave. I jest, but at the same time I don't. Like everyone else on this thread, I'm like "stutters? What is it, 1999 and I'm using a Pentium II to play my 28kbps MP3?" Ergo, if you're not using a hard-wired headphone connection, my only thought in this modern age is radio interference. I have high quality files in Music.app, episodes in Overcast, and have Spotify audio quality settings on "Very High" and I do not encounter skips on my iPhone 15 Pro. I don't think my pixel 6pro stutters unless there are Bluetooth issues. I used it cycling and listening music for many hours, and if music was cached, no issues. Sometimes there are issues with Bluetooth and streaming, but I think I can tell these apart from other stutter. Same. No issues with my Pixel 6 or 7. Have just had occasional Bluetooth blips to my Buds. I have more challenges using my Pixel Buds with a Bluetooth dongle on my PC. Android had audio latency issues for a long time, and I think they were originally related to the fact that Linux also had high latency audio. I was under the impression that these were much better now: https://android-developers.googleblog.com/2021/03/an-update-... I haven't heard about issues with latency in iOS audio, but the iPhone 8 is certainly not "modern". Are you using bluetooth headphones? Which apps are you using to play the audio? Yes, I was using Bluetooth headphones at the moment. I don't have the app name at hand, but I know that the app is also a file manager. So there's probably jitter in my headphones, or the app was not suppose to do music playback smoothly because that's not its main usage. I’ve been using an iPhone since 3GS up to the 12 where I’m typing this reply on. I never had problems with stuttering when playing music either through wired headphones or Bluetooth. Is all. One of the media players I used (on Android) had a bug in which it was susceptible to getting put to sleep when in the background - it would promptly be reawakened by the player service, but that would cause a glitch each time (especially at the transition between tracks). Once I removed the player from the power optimization list, the glitches evaporated entirely. Maybe something to look into, since it's a different cause than the three on your list? Sure, I'd try remove the app from the power efficiency restricted app list, which by default are enforced on all apps. It's mostly because I believe none of the phones run real-time operating system. Smooth audio is actually quite hard to achieve. Usually it works like this - audio driver has a buffer that the device is ought to fill with waveform data in a given amount of time. Then that buffer is shifted to the DAC and goes to your speaker. If during that process something happens like an interrupt that takes takes enough time that the process filling the buffer can't finish on time you get clicks and stutters. Filling a buffer sounds simple, but it may involve DSP processing like filtering, mixing multiple channels etc. that also costs processing power. Some operating systems "solved" this by setting buffer high enough that such interruptions would minimise stutters but that is at the expense of the latency (the delay between filling the buffer and then buffer being transferred to the speaker through DAC). Audio in Android is very much still broken (though I am not on latest Android). Don't know about iPhone. The problem is unlikely going to be solved as if you make sure audio can run in real time and be stable, you encounter other problems that make phone use problematic. Everything has trade offs. That's why I used to prefer having separate device for playing music, optimised for this task. I don't think any of my phones, iPhone or Android, have had hardware-related issues during music playback. I have had: - faulty 3.5mm jacks on certain headphones causing intermittent cutout - buffering pauses for remote libraries/streaming (eg. YouTube or Spotify) - Bluetooth/codec issues, where the proper codec isn't negotiated and "headset" mode stays on That being said, I don't stream FLAC and my library is <10,000 songs. Maybe you've got a big library? Nope, mine is a playlist with only 3 local-stored tracks. Yes, I loop these 3 tracks all the time. I would be more quick to check those three files rather than blame the entire modern (iPhone 8 Plus is modern now?) smartphone industry. Ok, lets have them, what 3 tracks do you have on infinite repeat? Can’t say I’ve heard this. Audible app over Bluetooth to my car has issues between chapters/tracks. But it’s probably fair to blame Audible’s software for not handling this edge case very well (since I don’t encounter the same when switching tracks in other apps in the same setup). Maybe your issues are something similar, and specific to a particular case you have rather than a general issue with modern smartphones. Could also be your car, I know mine has issues and sometimes even errors out to a Windows XP message[1]. Although since you mention Audible, it might be about the length of the tracks or something like that. Also bluetooth is generally a shitshow. I get stutters on my Apple Watch ultra, but I’m not sure I’ve ever noticed it on an android phone or iPhone in a very long time. On the watch I suspect it’s some kind of Bluetooth/encoding bottleneck because the processor seems totally capable of smooth audio playback, but I’m not certain it can mediate the connection, encoding, and transferring flawlessly. I use Android, not iPhone, but the only time I have stuttering issues is when I'm using Bluetooth headphones/earphones or speakers. When I'm using the physical jack, there is never an issue. So my assumption has always been that the problem is Bluetooth. Perhaps RF interference or something. Summarising my experience as user and developer of music applications on mobile and mobile-like devices. Those are bugs. There is usually no real reason for stutter, silence, distortion and certainly not performance reasons. This was kind of trivial on Galaxy S hardware. Besides Bluetooth radio interference, as other commenters noted, stutter happen because of kilometres deep bug ridden code base. The only time any of my couple Android phones of the last 14 years have stuttered when the browser was hogging CPU while I was browsing some messed up JS site (very rare) or maybe once every two years when it needed a reboot. Probably less than every two years. > how can things like "stutters during music playing" happen? Good question. It's nice that streaming works at all, but a lot of things have to be working underneath. I wonder how a DJ would set things up, even if that's not my use case. What MP3 player did your colleague get? Feels like a you problem. I have no recollection of experiencing this on any iPhone I’ve had and I listen to music running, at my desk, etc for hours every day, with my phone being my primary music driver (I keep my headphones bluetoothed to it) I've been using Android phones as an audio playback device since the original G1 and have never had a single audio stutter from simple music playback. Even when switching wifi networks, driving on cell coverage, Bluetooth or hardwired headphones etc... There are other similar stuttery experiences with top of the line latest iPhone too. Walk into Apple store and try opening an Email app on top end phone, or try swipe-scrolling a PDF to see how smooth it is. 1- Click an unread (demo) email that conains images. Watch as text size loads way too small, the emails load, then text bounces to correct size after the images are fully loaded. A very unsmooth experience, all told, that could be characterized as a stutter. 2- Search the iPhone for "pdf" to find a pre-loaded demo PDF document. Open it. Now swip-down (flick) to let it scroll "smoothly". You get 120 Hz smoothness, but then it "hiccups" now and then, even in a pretty small file given the device resources. So, stuttery. Yeah, not perfect. But, really good overall, considering it replaces a desktop in the hand for many tasks. Still, it would be amazing for all the little things were ironed out. Some day I think it will happen. But as others comment, there's a lot that has to occur behind each detail. There are other obvious bugs that have also been out for months or years in other software from other companies, some used quite a bit and some less so. I think it gives a window into how bottlenecked some orgs are, by one factor or another. Never had any problems like that, using iPhones since 3G I'll throw in another speculation: maybe the battery management is causing the OS to pause CPU usage for a bit? If this is the case, it's weird then. Why releasing CPU for only a glimpse saves battery? Perhaps it's like my car. It doesn't know when it turns off the engine that I actually need it in a second, so shutting down at a light ends up being brief and inconvenient. Are you using bluetooth headphones? Radio interference is far more common than any scheduling issue. No issues with Spotify on my iphone 14 Do you use AirPods? Are you low on storage? You have to take enshittification into account. My phone is probably thousands of times more powerful than a computer from 2 decades ago, yet I still chose to get an iPod recently, and my listening experience on that has been significantly better. I could go on for hours about this topic, but I'll keep it brief. Application specific devices are always going to beat smartphones. Smartphones can do everything, but they can't do anything -well-.