
Efficient music players remain elusive - ingve
http://www.tedunangst.com/flak/post/efficient-music-players-remain-elusive
======
jnordwick
The dirty secret in software development: most think they how to write
efficient software when they need to, but very few can.

Sometimes the excuse is that cpu and memory are cheap as if resources aren't
under constant pressure from the hundreds of processes that all pretend they
are the only one on the machine.

Many also don't know how to draw simple, low-overhead abstraction boundaries.
Everybody wants to make the most generic code planning for things that will
never happen or at least not in the way they think. You can't call out most
people on this because this one piece of code they are working on is always
the exception.

And most developers don't know how to optimize as they write code. They often
don't understand the problem or have enough mechanical sympathy to understand
what code you should probably be careful with and should be made quick to
start off with. They probably don't understand the cache system enough to know
why that linked hash table is probably the wrong data structure. Hash means
fast to them, and to them this is all premature optimization even when the
correct solution is probably no more difficult than what they are doing.
Calling something premature optimization is often used to shut down discussion
of how their code can be improved.

The field is too in love with horribly inefficient frameworks. Writing network
code and protocols is now considered too low level for people. Many are too
caught up it what is tech-cool. They're like the holistic medicine
practitioners of software and they don't even know it.

~~~
ClassyJacket
"Sometimes the excuse is that cpu and memory are cheap as if resources aren't
under constant pressure from the hundreds of processes that all pretend they
are the only one on the machine."

Does anyone know if there's a generalized name for this problem? It's the same
one where your teacher gives you "only two hours of homework tonight" but
forgets you have four other classes all doing the same thing.

~~~
Daishiman
Parkinson's Law

~~~
ClassyJacket
"Originally, Parkinson's law is the adage that "work expands so as to fill the
time available for its completion", and the title of a book which made it
well-known. However, in current understanding, Parkinson's law is a reference
to the self-satisfying uncontrolled growth of the bureaucratic apparatus in an
organization."

Hmm, I can see how they're related, but it doesn't seem to be quite what I'm
talking about. I'm more referring to the overuse of resources by individual
elements assuming or acting as if they're the only thing using it, like in the
above examples of a teacher acting like their class is your only one, or a
thread consuming resources like no others are active.

Parkinson's law more seems to be the _result_ of the effect that I'm talking
about (among others, like procrastination).

~~~
vtbassmatt
Tragedy of the commons?

------
ravirajx7
Have you tried foobar?
[http://www.foobar2000.org/download](http://www.foobar2000.org/download)

~~~
masklinn
Ditto for foobar, it's complete but not obnoxious and tends to focus on what's
important. It's probably the one thing I miss when using my (OSX) laptop, OSX
players seem to be either obnoxiously turdy (à la itunes) or exercises in
minimalist style which end up inconvenient to use.

I don't know how CPU-efficient it really is though, and that seems to be Ted's
main concern.

My only annoyance with it is that (AFAIK) there still isn't a 64b version of
it, though that problem is so common on windows it's hardly worth mentioning.

~~~
SyneRyder
> _OSX players seem to be either obnoxiously turdy (à la itunes) or exercises
> in minimalist style which end up inconvenient to use_

I miss Audion, from the folks at Panic (makers of Coda & Transmit):

[https://web.archive.org/web/20120524030742/http://www.panic....](https://web.archive.org/web/20120524030742/http://www.panic.com/audion/)

It had a similar spirit to Winamp, so much that AOL/Nullsoft looked into
acquiring them. As did Apple before iTunes existed, as documented in The True
Story Of Audion:

[https://panic.com/extras/audionstory/](https://panic.com/extras/audionstory/)

~~~
lloeki
I liked using VOX for some time because of its FLAC and BS2B support, but
dropped it because of iTunes Match and Apple Music convenience. Now I see they
introduced a FLAC digital locker too, but the price is steep.

[https://vox.rocks](https://vox.rocks)

------
robotmay
I'm surprised not to see any mention of Clementine ([https://www.clementine-
player.org/](https://www.clementine-player.org/)) here. I switched over to it
last year and it's lovely. The interface is nothing special but it's quick and
efficient, and the library updates are immediate (I assume it uses
libnotify/equivalents). On Windows it idles at 70MB of RAM and 0.2% CPU whilst
playing FLAC files for me. Similar stats on my Linux laptop too, from what I
remember. Great audio codec support and it has various features for cloud
streaming services, though I don't use those.

I'd recommend trying it out, I think you'll be surprised by how nice it is to
use.

~~~
xjwm
I'm a huge fan of Clementine. It reminds me of what Amarok used to be...back
before the newfangled KDE 3 version bloated it.

~~~
catdog
Clementine is really nice (for the nyanalyzer cat alone ;)). It started as a
fork of Amarok 1.4., no wonder it feels familiar.

------
pdimitar
On Windows, AIMP 3 is king. Especially for those of us who are nostalgic about
Winamp 2.95 which was for many years the best simplistic music player that got
the job done and got out of the way.

AIMP 3 takes 30MB of RAM even with 20+ GB playlist, on a machine with two
sound cards, playing music 10-12h a day, and I've never seen it going even
above 2% of CPU.

That being said, the author's sarcastic tone is fully justified. Everybody
picks a favorite language and defends it, as if it is their parents under
fire. I am all for Elixir and I love it, but I already had to write Golang
several times because I needed more raw speed, being one example.

Don't be fanboys, fellow programmers. You're paid to do jobs, not being cool.
Too many forget that.

~~~
unwind
What does a "20+ GB playlist" mean?

That it contains more than 20 GB of song data? If so, I fail to see how that
relates to the memory needed to talk about the songs.

If it's instead 20 GB of actual song meta information, then I'm both and
impressed by and a bit scared of your music collection. :) And also impressed
by the software's ability to deal.

~~~
pdimitar
Means I have 20+ GB of music. Metadata can't be that big. :O

If you find a DB that can cope with 20GB without sweating much, give me a
shout! ;) You might become rich if you make one, too!

~~~
CuriouslyC
The actual amount of data in that 20GB that needs to be handled by the player
for that playlist is probably on the order of a few bytes bytes per MB. If we
round up to 100 bytes per MB, you're still only looking at a few MB of
metadata.

------
ccozan
While everyone else here is proposing to try different players, I liked the
idea, found at the end of the article, to certify a program for efficiency. We
move our digital life on the mobile and efficiency is quite crucial.

Android can show how much a app / internal program consumes in mW so I wonder
if Google is collecting this data in order to classify apps based on this.

~~~
jwildeboer
Linux (powertop) and MacOS also have ways to measure and show this. Windows
doesn't have that? Where's my surprised face.

~~~
csydas
Not that I'm a huge fan of it, but Windows 10 (and I think 8) has it under the
battery use section in their secondary control panel. It's not quite as
accessible, it seems, as macOS' power usage that is readily available in the
Finder bar, but it is present.

------
LeoPanthera
I'm a big fan of mpd[1]. It's a headless music player you can run on pretty
much anything with audio out. You can then control it from a client, of which
many are available for nearly any conceivable platform.

[1]: [https://www.musicpd.org](https://www.musicpd.org)

~~~
tazjin
I don't think OpenBSD people are interested in the kind of service that has to
start as root and drop privileges just to play music ;-)

~~~
kirab
Doing it like that is sadly the most compatible (and easiest) way to open a
privileged port (below 1024)

~~~
majewsky
MPD runs on 6600 by default, so that shouldn't be a problem. I run it on my
homeserver under a separate audio user, who's also in the pulse group to use
PulseAudio on the attached speakers.

~~~
pdimitar
If you write a small step-by-step on that scenario, you'd bne making quite a
few people happy, me included.

~~~
DSMan195276
Running MPD as a separate user is pretty easy, there's lots of ways to do it
and MPD doesn't care as long as it has access to your music and can open the
socket (Neither of which require root by themselves). The easiest way is to
just modify the user in mpd.conf and let mpd change to the user when it
starts. But you can also just start it manually as another user, or change
user in the init-script/system-service/etc.. mpd doesn't care how you do it.

PulseAudio on the other hand throws a fit. For reasons unknown to me,
PulseAudio basically doesn't support running as a system-wide instance, so
things get pretty messy if you want sound to come from multiple users (IE.
Your user, and your mpd user). If you only ever use one user on your system,
I'd recommend just running mpd under that user - I believe that's what I did
to get it working on my computer. Of course, if you're not using PulseAudio
then this isn't an issue in the first place.

~~~
bblough
My understanding is that the preferred way to launch PulseAudio is to launch
it as part of your X session so it runs as your user. MPD supports launching
in the same way. So done this way, everything runs as your user and therefore
plays nicely together.

This is the approach I took, and I think it works very well.

~~~
DSMan195276
Yeah, you could do that. There's not really much difference between launching
it with X and just configuring mpd to run as your user, though launching with
X might be easier to setup in some cases.

The only problem with that approach is it means that mpd is tied to your X
session. I quit or restart X every once in a while and it's nice to have my
music keep going during that time. But obviously that's not a use-case
everyone cares about since most people don't have a reason to leave X.

------
JdeBP
To see what M. Unangst is getting at in part here, one has to read some of xyr
prior articles:

* [http://www.tedunangst.com/flak/post/mplayer-ktracing](http://www.tedunangst.com/flak/post/mplayer-ktracing) ([https://news.ycombinator.com/item?id=13704163](https://news.ycombinator.com/item?id=13704163) [https://news.ycombinator.com/item?id=13624174](https://news.ycombinator.com/item?id=13624174))

* [http://www.tedunangst.com/flak/post/rough-idling](http://www.tedunangst.com/flak/post/rough-idling) ([https://news.ycombinator.com/item?id=10254828](https://news.ycombinator.com/item?id=10254828))

* [http://www.tedunangst.com/flak/post/browser-ktrace-browsing](http://www.tedunangst.com/flak/post/browser-ktrace-browsing) ([https://news.ycombinator.com/item?id=11830969](https://news.ycombinator.com/item?id=11830969))

* [http://www.tedunangst.com/flak/post/accidentally-nonblocking](http://www.tedunangst.com/flak/post/accidentally-nonblocking) ([https://news.ycombinator.com/item?id=11847529](https://news.ycombinator.com/item?id=11847529))

* [http://www.tedunangst.com/flak/post/firefox-vs-rthreads](http://www.tedunangst.com/flak/post/firefox-vs-rthreads) ([https://news.ycombinator.com/item?id=11470042](https://news.ycombinator.com/item?id=11470042))

~~~
vanderZwan
This is the kind of thing where I wonder if a shaming award wouldn't help.
Imagine an award, let's say every half year, with a top twenty (one for each
of the three big platforms) of needlessly inefficient popular software
programs. Ideally with these kinds of breakdowns to back up the claims.

------
timthelion
Everyone here is going on about cpu efficiency. When the joke is, that a 10
year old MP3 player can play music all day on a batery the size of a nickle
because it's not decoding using a CPU but using a decoder built into an ARM
package. The CPU is actually off most of the time when your mp3 player is
playing.

~~~
clarry
The earliest MP3 players required hardware decoders, but it didn't take long
for these devices to get faster CPUs that could do the decoding. This in turn
enabled firmware updates (either official or unofficial, e.g. rockbox) to
bring in support for new audio formats.

~~~
naikrovek
An updateable firmware does not necessitate a software decoder. Hardware
decoders can (and do) have their own firmware, and can support additional
formats if they were designed with that in mind.

Also you can have a hardware decoded MP3 path, and a software decoded OGG
path, for example. They can coexist.

Most real hardware wasn't designed to be on the market long enough for any of
this to come to pass, though, and you're probably 100% correct.

------
cessor
I came here simply to mention foobar2000, and I am happy that many people
before me did. Some mentioned they missed it on Linux.

I am a Windows user myself, but I feel "ncmpcpp" is a good alternative on
linux (apparently that's an Ncurses Music Player written in CPP). Simple,
console list interface with good features.

~~~
megawatthours
foobar works perfectly and with no noticeable performance difference on linux
in wine, and is imo miles better than any of the native linux apps.

------
beefsack
Audacious[1] set to the classic skin has been my media player of choice for a
number of years now since Winamp went crap and I moved away from Windows. It's
basically the same as the old Winamp[2], including shortcut keys.

It's simple but works perfectly; I don't understand why music players nowadays
are such clunky monstrosities when the music should do all the talking.

[1]: [http://audacious-media-player.org/](http://audacious-media-player.org/)

[2]: [http://i.imgur.com/eOasdkx.jpg](http://i.imgur.com/eOasdkx.jpg)

~~~
aerique
_It 's simple but works perfectly; I don't understand why music players
nowadays are such clunky monstrosities when the music should do all the
talking._

Same here, I never understood why people were initially so enthousiastic about
iTunes or other players after Winamp that tried to hide your audio files
behind a convoluted GUI and that abstracted the files on disk into a crappy,
opaque database.

For me a directory tree with well-named directories and files is still the
least-worst solution and also has been, over time, the most dependable one.
(On Android I use Music Folder Player due to this. iPhone I don't know, I
don't have one.)

~~~
AdmiralAsshat
> For me a directory tree with well-named directories and files is still the
> least-worst solution and also has been, over time, the most dependable one.

This. My Music is very meticulously organized on the file-system level. Every
single folder (sans Soundtracks and Videogame music) is organized like so:

My Music -> Artist -> Year - Name -> Track # - Title e.g. My Music -> Black
Sabbath -> 1971 - Paranoid -> 01 - War Pigs.mp3

That's it. That's all I need. I've had it this way since 1998, and it still
works, across myriad computers, file systems, and operating systems. One of
the reasons I stayed with Winamp so long is that I could simply right-click on
a folder and click "Play in Winamp", and I was all set.

All of these other apps that try to organize my music for me inevitably fail,
because the tags are rarely complete or consistent. Trying to backup all my
music to Google Play Music has shown that, time and time again.

These days I'm happy that I was finally able to get that functionality back
with Audacious.

~~~
tomc1985
The problem is that when you use a library-based solution for management, you
need to stay on top of tags.

I frequently like to create playlists based on the ID3 genre tag, so a folder-
based approach doesn't really work. Folders also complicate things when you're
trying to maintain separate music collections -- like a folder for ripped
music vs storebought.

------
drngdds
This article is pretty silly.

\- Spotify is primarily for streaming Spotify songs. It shouldn't be
inefficient, of course, but you're looking in the wrong place if you just want
to play your audio files.

\- Groove: Windows built-in programs are rarely great, why expect otherwise
from Groove?

\- Come on, dude. You can't just write something off because the homepage has
a trendy design. And Shoutcast is ancient technology! I'm pretty sure I used
Winamp with Shoutcast on my Pentium 4 and it worked fine.

\- Foobar2000 has been around forever! It was fast and efficient ten years
ago, and that hasn't changed.

This guy should have done a little more research.

~~~
dungle6
Wonder why you're downvoted. This is entirely true. Bitching about efficiency
of music players on Windows without mentioning foobar2000 (which isn't exactly
obscure) is pretty fucking silly.

------
djhworld
One thing I have noticed about Spotify is it appears to make a lot of requests
to various services, some outside of Spotify, if Little Snitch is to be
believed.

For example, I've seen it make calls to

* Google Tag Manager

* Facebook

* CDNS - presumably for image content

I've blocked most of them.

------
rayiner
I suspect the big problem here is not decoding efficiency per se, but the
music player keeping the CPU from going into the deepest sleep states. With
Spotify it's likely the web-browser underpinnings (anything based on Chrome
will suck down your battery even when it's doing nothing).

~~~
chadgeidel
I can't believe that no one else commenting here is picking up on this. It's
not about "tight code" or "fast code" \- it's about CPU utilization and
battery usage.

------
Spearchucker
Windows still ships with Windows Media Player, which is what I use now. No
idea how it rates in terms of efficiency but it does what I need better than
any of the players he reviewed, and then some.

Specifically love being able to find music by year, and while not the simplest
UI, it's playlist builder does what I need. Wish I could run it on my phone.

I do suspect however that my use cases are unusual in that I don't stream
music, and have a large library replicated on my PC, Surface, and my phone -
and I've spent years completing and cleaning up the meta data, which Windows
Media Player makes really good use of.

~~~
pdimitar
I don't use WMP but I am the same as you. I don't stream. I see no use in
constantly wasting internet on something I can download and manage diligently
by myself.

Be sure that there's quite a lot of us out there still but we don't like to
tout it, lest the cool kids attack. :)

------
skocznymroczny
I recommend you try foobar2000. I remember trying to play MP3 files on 486 DLC
120MHz. WinAmp couldn't handle playing MP3 smoothly on that, but foobar worked
fine.

------
gpribeiro
Even though a little late to the party, I just wanted to give my vote to the
best Windows music client I know, XMPlay [0], which, with a minimalist skin
[1], for me is unbeatable. Does anyone else use it?

[0]: [http://support.xmplay.com/](http://support.xmplay.com/) [1]:
[http://support.xmplay.com/files_view.php?file_id=308](http://support.xmplay.com/files_view.php?file_id=308)

~~~
moogly
Yeah, for... I don't even know for how long. Probably at least 17 years.

------
dsr_
Rockbox is an open-source project that replaces the firmware on many dedicated
MP3 player devices. It's still under active development. Their most recent
releases improved power usage to the point where my 6 year old Sansa Clip+ now
has better playtime than it did on stock firmware when the battery was new.

It also produces objectively better sound reproduction, and can handle FLAC
which the original firmware could not.

------
j_s
Open source command line clients for streaming services are the best!

Pandora -
[https://github.com/PromyLOPh/pianobar](https://github.com/PromyLOPh/pianobar)

Spotify -
[https://github.com/plietar/librespot](https://github.com/plietar/librespot)

Any others for other services that still work?

------
jchw
The author didn't look very far. I'd bet on foobar2000 fitting the bill.

------
nice_byte
you can still get the old winamp (2.3), from before it got all maimed by AOL,
if you look hard enough. I use it mostly for nostalgic reasons: old skins and
AVS scripts.

~~~
taneq
What's maimed about current version Winamp? I'm running 5.666, using the
classic skin, it's taking up 10.6MB of RAM and <0.1% CPU while playing.

~~~
degenerate
OP just doesn't know what OP wants.

As you said, Winamp + classic skin, with all the "features" turned off like
Winamp Agent and those other stupid things they added after the AOL
acquisition, is perfectly fine. The fact that OP didn't even try out (or
discover) foobar2000 tells a lot.

------
pikzel
In Spotify I have my entire library in the cloud, accessible from my phone,
home computer, office, etc. I get weekly (great) recommendations based on what
I actually listen to. I can browse related artists, share songs with my
friends, stream the music to all my home speakers in sync. Of course an mp3
player use less power, it only does a fraction of what Spotify does. It's not
even like comparing apples and oranges, it's like comparing your bike to a jet
fighter.

And, yeah, I grew up with Winamp and MP3s (or even .MOD/.XM). But the world
moves on.

~~~
skykooler
However, with Spotify you're limited to the music that's in your Spotify
library. On the desktop you can also add local music files, but they don't
sync with the other devices.

~~~
endless1234
You can actually sync local files to your mobile devices with Spotify. Might
require premium.

------
gens
I have been playing with making a player to learn a few audio decoding
libraries. Using dr_flac, LAME, and nuklear for the gui I made a simple
player. It turned out to be extremely efficient (cpu-wise, memory is the next
step).

Nuklear, the gui part, I know to be extremely inefficient. Due to it not being
called that much (refresh every 10ms, IIRC) it uses an insignificant amount of
cpu time.

dr_flac and LAME are efficient enough, especially considering the work they
do.

Note that LAME can do fixed-point, while dr_flac uses floats. This is _very_
important when talking about power efficiency, as floats use much more power.

Sending the PCM data to the sound card (using ALSA) takes an insignificant
amount of cpu time (memcpy to fill the buffer, that is ~172kB per second
(44100 * 2 * 2 / 1024 ; 2 channels of 2byte samples at 44.1kHz)). Though ALSA
(speex) resampling 44100Hz to 48000Hz _does_ take a significant amount of cpu
time (IMO best to resample while decoding).

On "modern" linux there is also Pulse Audio, that takes that resampling
overhead from the program onto itself. Note that PA (idk if still) uses floats
to resample, making it very inefficient.

Floats on modern x86/amd64 cpus are fast, as fast as integers (although float
operations have a delay so it turns out slower). More important is that floats
use much more power to compute. Another thing with power efficiency is that
modern cpu cores go to sleep to save power, so one should not wake them up
every milisecond to check on something.

As for the article;

>After downloading hundreds upon hundreds of kilobytes of zip file, fire up a
shell, run mpg123, and wowzers. It plays MP3s smoothly and efficiently. A
remarkable feat of engineering, especially considering it’s all written in
plain old C without leveraging the synergies of dozens of frameworks. One
wonders how they managed.

I want to say "no shit".. so... No shit. For multiple reasons.

>Time for an old standby? What’s Winamp up to these days? Oh, great, looks
like more internet radio nonsense. And the website has the modern flat square
design I’ve recognized as a harbinger of impending disaster. Sigh.

Winamp doesn't even get the chance because the website looks signals an
"impending disaster" ?

~~~
soundwave106
Yeah, that was a strange remark. Winamp's website looks like it does because
development on the program is kind of in a state of flux / suspension, with
nothing happening since a few years ago when AOL sold Nullsoft and the latest
version (5.666) was released. I find Winamp to be pretty efficient these days
to be honest.

------
0xfeba
Hence, why I still use Winamp 2.95.

I've tried Tomahawk, WMP, VLC, and others. But they all have some stupid
social connectivity, or rating/library organizing thing (so does Winamp, but
it's unobtrusive), or just takes too many resources.

All my music is already organized (Ampache), I just want to play an M3U. VLC
was a close second by the UI is too clunky for me (though I'm guessing skins
and some customization can change that).

~~~
StavrosK
Yeah, I was about to say, what's wrong with Winamp 2.95? Is it "bad" just
because it's old?

------
j_s
If you can't handle playing audio you're already having a bad time.

Finding efficient software for mobile phones is worth the effort:

[https://play.google.com/store/apps/details?id=ch.blinkenligh...](https://play.google.com/store/apps/details?id=ch.blinkenlights.android.vanilla)

------
ksrm
For Windows check out billy. It's an extremely lightweight music player
(single exe) which can load large collections very quickly.

[https://www.sheepfriends.com/index-
page=billy.html](https://www.sheepfriends.com/index-page=billy.html)

------
amadvance
> it’s all written in plain old C without leveraging the synergies of dozens
> of frameworks. One wonders how they managed.

As a C programmer it seems obvious that it's efficient exactly because it
doesn't use dozens of frameworks.

I wonder if the author was ironic saying that...

~~~
MaxLeiter
It's sarcasm. He's commenting on how projects today use way too many
frameworks.

------
ComodoHacker
AIMP [0] is pretty much "today's Winamp" on desktop. I'm curious how it would
behave on Surface.

0\.
[http://aimp.ru/index.php?do=lang&lng=en](http://aimp.ru/index.php?do=lang&lng=en)

~~~
taneq
I thought Winamp was "today's Winamp". :(

I'll check out this Russian thing too though.

~~~
pdimitar
You should. It's extremely efficient, upgrades painlessly (your music is
stopped for 5-10 seconds and boom, upgraded), has good skins and never, ever
lags, or loads the system in any way.

------
hectorr
Has anyone tried Roon Labs? It's a high end library manager that partners with
Tidal.

------
klodolph
If we remember, this was one of the key advantages of the original iPod. Read
as much MP3 data into RAM as possible, then spin down the hard drive. Spin it
up again when you've gotten to the end of the in-memory buffer.

~~~
zdkl
To this day, the huge old Ipod 80Go has been the best mobile audio equipment I
owned. So much so that I have in fact stoppes listening to music on the go
when mine started going senile and replacing it was no longer possible.

Apple, this was the one product that meaningfully changed the game for me and
many others. We miss it.

~~~
gambiting
I mean.....ebay is absolutely full of either new or like-new iPods Classic in
any capacity you want, I know it's annoying that apple doesn't sell them
anymore but if you want one it's not exactly difficult to get one.

~~~
Myrmornis
It was lack of rockbox that prevented me using ipod "classic" \-- I see the
classic port is still listed as unstable. I'm a mac user but I have never
understood how iTunes is to be used.

------
zzo38computer
I just use command-line program on Linux. Very easily to play the music. If
you want a shuffled playlist, you can use the commands such as "shuf" and
"xargs". You can use "head" to limit playback time, if you use music playing
program that output to stdout instead to the speaker (and then use another
program to send to speaker) (as far as I know the only music players that do
this are ones I wrote myself, but other ones may well exist, that I do not
know of).

------
jscheel
I'm seriously considering switching away from Google Music because of this.
The web interface, and every unofficial desktop app I tried, all use up 50+
percent of a cpu.

~~~
Myrmornis
What about the phone app? I sometimes play google music on my laptop but
there's usually no particular reason not to play it on my phone.

------
kristianp
I thought this was going to start another Electron bashing thread, apparently
the Spotify client uses the chromium embedded framework, with a C++ core. So
its basically a fat web app consuming Ted's battery.

[https://www.quora.com/What-is-the-technology-behind-the-
Spot...](https://www.quora.com/What-is-the-technology-behind-the-Spotify-
desktop-app)

------
TazeTSchnitzel
VLC?

------
yellowapple
I'm surprised VLC wasn't mentioned here. I've been playing SomaFM's 80's
station on my work computer for weeks straight, yet the vlc.exe process still
clocks in at around 1-3% CPU and 25MB of memory.

I definitely agree with Ted's conclusion, though. We need an Energy Star (TM)
rating for software.

------
neves
My greatest affliction with music players is the UI inefficiency. They are so
anxious to sell me their online services, that have bad searches, bad
browsing, almost no information about the music (who's this voice singing
together?), and slow to start.

Can anyone here recommend a good player for Windows?

~~~
SAI_Peregrinus
Foobar2000.

The default UI is difficult, but it's ridiculously customizable. You can find
tons of people's customization profiles for it to save effort.

------
Aardwolf
I still use XMMS (not its slower buggier cousins like audacious or XMMS2) and
it works super fast and great, having entire music library in the playlist. If
I were using Windows, I'd use version 2 of Winamp which is essentially the
same thing.

My other music player is Youtube :)

------
SiempreZeus
I use Subsonic, but they have since changed their licensing to be quite
expensive.

[https://www.maketecheasier.com/subsonic-
alternatives/](https://www.maketecheasier.com/subsonic-alternatives/)

~~~
Lammy
Much of the community has moved to Libresonic, a fork of the last open source
Subsonic (6.0 beta 1):
[https://github.com/Libresonic/libresonic](https://github.com/Libresonic/libresonic)

------
beering
On Linux I use cmus in a guake window. Cmus is a curses-based music player /
browser and guake lets me access it with F12 at any time. Launches almost
instantly and I never worry about it consuming more resources than it needs.

------
T0ddSnyder
Tomahawk Player ([https://www.tomahawk-player.org/](https://www.tomahawk-
player.org/)) is pretty nice and it supports both local files and streaming
services.

------
flavio81
My music player is very efficient, it practically doesn't waste any milliwatt-
hour from my laptop's battery. The audio quality is good to superb depending
on the source material.

It can display the covers of albums with excellent resolution and clarity.

The compatibility with the music formats is excellent, supporting most of the
formats designed for the music player. Actually i can play most music from
1948 to 2017 on it, without any change in configuration.

With optional hardware it can support 4-channel surround audio, as well,
although this isn't an user-friendly setup.

Not everything is great -- my music player isn't portable at all. It is big
and weights more than 10Kg. It also doesn't support remote operation. You need
to be there at the user console to change tracks, etc.

My music player is called a "Lenco L75".

~~~
falcolas
The downside is that source also degrades over time, is subject to atmospheric
interference (aka dust), and can be subject to physical resonation.

Not to mention the required power dongle can be a real limitation, even if the
weight is not.

~~~
flavio81
Records are actually a very very long-lasting information storage medium,
better than magnetic tapes (even when you put redundancy checks on them). So
much that sometimes when music from the 1940s to 1960s is to be restored,
restauration experts use the record rather than the master tape, which is more
subject to degradation.

As for degradation, in theory there is degradation every time the record gets
played. In practice tests done in the 60s show that records can be played over
1000 times without significant deterioration of audio quality.

However, the record surface is very susceptible to damage. This means that,
play a record over a worn stylus, or under a turntable with a too heavy
tracking force or a poor quality cartridge -in short, a bad turntable-, and
the record will wear down rather quickly, sound quality will be degraded
quickly.

~~~
falcolas
Or, as is my experience, a piece of debris is missed when putting the record
away, and scratches the surface significantly when put into its (usually too-
tight-fitting) sleeve and cover.

------
sergimansilla
I find Vox ([https://vox.rocks/](https://vox.rocks/)) for Mac to be pretty
good. I certainly haven't found anything better for OSX.

------
Myrmornis
Cog on mac seems to be a nice simple music player. I haven't noticed high CPU
usage. [https://cogx.org/](https://cogx.org/)

------
tomc1985
The author forgot VLC and foobar2000, both of which I'd consider a safe bet on
a laptop.

Also, for Winamp, the only version that matters is v5.623 (dated Dec 9 2011)

------
Zardoz84
No body mentions mediaplayer classic ? It requires to have codecs installed,
but it's prety lightweight.

~~~
genpfault
> It requires to have codecs installed

MPC-HC[1] ships a built-in copy of ffmpeg/libav via LAV Filters[2], what extra
codecs did you need?

[1]: [https://mpc-hc.org/](https://mpc-hc.org/)

[2]:
[https://github.com/Nevcairiel/LAVFilters](https://github.com/Nevcairiel/LAVFilters)

------
g105b
> the website has the modern flat square design I’ve recognized as a harbinger
> of impending disaster. Sigh.

So true.

------
spacemanmatt
I haven't even thought about this issue since I started sending all my music
through Chromecast.

------
RazrFalcon
There is DeaDBeeF on Linux which has the lowest appetite among GUI audio
players.

------
shmerl
mpv and vlc are more than enough for all my playback needs. Besides Rockbox on
a portable Sansa player, which can actually play Opus files, unlike various
similar solutions.

------
torrent-of-ions
He's on Windows and didn't mention foobar2000? I've been using Linux
exclusively for almost ten years now and foobar2000 is the only program I
still miss. Banshee does an acceptable job, though.

~~~
DrRobinson
Have you looked into DeaDBeeF? I find that to be the closest thing to
foobar2000.

~~~
digi_owl
+1 for DeaDBeef. straight forward player with no fuzzing over library
management etc.

------
xxxdarrenxxx
Music player

Read file > play

Spotify

Internet > dl file > convert decrypt > read file > play > remove files after
max cache reached

The internet/downloading takes a lot off power.

The filesystem is also in use far more

The encryption takes a lot off cycles as well. The reason that it is there is
so it won't be a glorified music piracy software ala napster/kazaa/limewire.

At one point Apple removed indy apps from their store which cached youtube
music to file system for offline listening. A nice feature, but music is
copyrighted and has a rich history with lawsuits. You can't just stream music,
because streaming in this context is same as downloading.

All battery munching things that add up, but which are essential due to the
nature off the data.

Furthermore, Spotify needs to run on ios, android, windows, linux and osx.

For this needs far more intricate code than a player for 1 OS. Optimizing
individually for each and make it shared platform is no easy task

I agree a lot needs to be better, but there is quite some bias and overlooked
factors.

~~~
majewsky
Do I understand you correctly in that you attribute increased power usage to
the intricacies of copyright law (at least in part)? Because that's an
interesting angle that I hadn't even considered yet. :)

~~~
xxxdarrenxxx
Well, I opened up my supposed music cache from Spotify once and u dont get a
list with audio tracks, but encrypted data. The cache was about 12gb large so
it must be the audio.

If it was the pure audio source then nothing stops me from copying it and put
it in my own library, possibly shared with anyone through my own NAS avoiding
ads and future subscriptions.

I could also just stream the cached folder into my own app, and while losing
the ability to pick songs in real time it effectively becomes a radio given
the main client keeps running, which I would do on a random cheap pi or
server.

------
thinkfurther
DeliPlayer is the one I miss.

Someone else mentioned VLC's GUI sucking, and that is so true and such a pity,
both for the playback and conversion/transcoding abilities it has. I don't
mean graphical skins, mind you, it just needs (a lot) more love.

------
mariusmg
"Spotify", "Groove" , what the heck ? This guy is clueless, he should try
foobar2000

