Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Minimal native MP3 player for Mac (catnapgames.com)
156 points by tomovo on March 10, 2018 | hide | past | favorite | 111 comments

Features: • not iTunes

You know, iTunes wasn’t so bad before they convoluted the UI/UX to shit...looking at the music app on iOS 5-6 vs iOS 10-11 is like comparing a walkway to a labyrinth.

The amount of steps taken backwards in Apple’s UI / UX is staggering. Even the simple replacement of the Spotlight bar from an unobtrusive widget in the top right corner to a giant box in the middle of the screen, directly covering your content.

I, and everyone I know, detest iTunes.

It has become the definition of feature creep, as it evolved from being a music manager/player for iPod to being the full "everything iPhone" manager, including backups and system updates.

You can drag it and move it wherever you want. I usually put mine in the top 2/3rds of my screen as I'm a habitual <cmd>+space <do math in spotlight>

Fun fact: if you press and hold the spotlight icon in the menu bar, the spotlight window is reset to its default position.

I never understood why Apple always hides functionality beneath undiscoverable gestures.

Especially on iOS where once I had a friend complain that they cannot see the time that a message was sent or received. I had to show them to hold and swipe so they can see the hidden column of times.

I guess they don’t want to clutter up at the interface with things like labels and options.

It's forced form over function, I guess: make simple things simple and complicated things not impossible.

The problem is, it takes away from power usage, and now that's a lot of users alienated. Another example is the three button mouse. Steve didn't want any buttons at all, remember, but settled on one. So we have command-x/c/v instead of left click select and middle click paste like in X windows.

Of course, it would make it cluttered which would make finding the most used information harder.

But sometimes a quick look at the manual is all that's needed,

> Tip: To see what time a message was sent or received, drag a bubble to the left.


You can't add much more indirection than making someone credentialize in a manual to do something as trivial as showing timestamps. Better hope you catch that one-liner tip and then remember it when you're back in the app at some other point in time.

I'd rather every app just have a hamburger menu with a menagerie of settings so that those settings can exist even if they're too hard to design for. Instead designers write blog posts that shame everyone for making those menus in the first place.

Hidden gestures is the worst UX of all. For the same reason Siri will never replace a CLI -- completely probabilistic, unknown interface.

But can you talk about CLI and criticize looking in manuals and one liners you have to remember?

I believe it's smarter knowing how to find things and where. That's what I'm trying to show. That it is documented and where. Maybe someone could benefit from the link.

I don't have any pull with Apple to get them to change. I can just read the manual and figure out how things work.

If you have a Force Touch trackpad, you'll feel a notch when dragging the window around, which will you you align it with the default position.

Does this feature exist for any other window alignment tasks?

Not that I'm aware of. Unfortunately this feature seems to be a little underutilized throughout macOS.

Mind. Blown. Thank you both!

Well, you learn something new every day.

Exactly, the problem is that they kept fixing things that weren't broken and making random illogical UI changes until the program got so over-engineered and bloated that it was a chore to use. The program worked fine, but I guess the team of engineers wanted to keep their jobs so they kept including these unnecessary "fixes".

And pushing you done the path of buying stuff from the iTunes Store. The UI funnels you into the store by default, not to your media collection.

Speaking of terrible UX, I'm not sure what ITunes hopes to achieve by repeatedly asking me to log in while just playing some music. If I'm not using any feature that requires login, and I have literally clicked "cancel" 5 times at the login prompt since starting up iTunes a few days ago, it's just silly to keep asking me to log in.

Yup, in iOS 10 they ruined the Music app, in iOS 11 they ruined the Podcast app... I wonder which one's next...

Some really nice folks are trying to figure out the whole "not iTunes" issue - it's called hyperamp: https://github.com/hypermodules/hyperamp

> electron

HN hates election apps :-/

For good reason: for apps trying to be more resource efficient or lightweight than iTunes, Electron is the wrong way to go.

Electron apps should stay in the browser as the Web apps they are.

And if the browser provided unrestricted file access they probably would. But we'd all be in trouble

All apps, even native ones should be forbidden to have unrestricted file access.

Just because something runs under my id, doesn't mean I want it to read everything I have in $HOME without me knowing about it, and possibly sharing it with the world.

On my systems, every sandbox option I can enable is turned on.

My point was the browser has no file access. Most electron apps work with the filesystem in some way, and in the browser it's not possible to, for instance, give a web app access to a folder on the desktop

HTML 5 File API is a thing.


Another one is Plexamp: https://medium.com/plexlabs/introducing-plexamp-9493a658847a which also uses Electron.


Here's one in Swift.

iTunes never worked. It's why applications like Ephpod and others were developed. It's terrible, and every UI / UX update makes it more so.

It worked for me pretty well before they hit the double digit version numbers. Back when the icon was green/blue

Okay, to be clear, this is what I mean by 'before they ruined it.' I mean, I'm talking green icon.

Yesterday I finally accidentally discovered where they hid the "shuffle" and "repeat" toggles on the iOS 10 music app.

Cog is a similarly simple open source player for macOS which also supports Opus and has a folder pane.


(original author) https://cogx.org/screenshots.php

I really like it, it is still my goto player after 8 years.

Yeah, I'm not sure what this one has over Cog, which is mature and well supported.

Of course it doesn't hurt to have more than one option... but Cog seems slightly nicer of the two at the moment.

I wanted to solve this very problem, and use !iTunes to play audio files on the Mac.

First, I went with VLC. It's quite capable.

It turns out there's a native Mac app called 'afplay' and it'll do the trick as well. "afplay foo.mp3" and it'll play that MP3. No frills, no controls. Just plays the file.

I would cd to a directory with the songs I wanted to play, and use a for loop to play them all.

Yay for anything != iTunes. I've been contemplating the iTunes dilemma for quite a while and decided that I needed to start moving off iTunes and not be locked onto a specific platform. My approach so far is to store my audio files in cloud-based object storage system, including a SQLite file as my catalog. When I start one of my players, it pulls the latest copy of my catalog and then starts random play. My latest player is Raspberry Pi with HiFiBerry DAC+ that outputs to my home stereo.

I just pulled all of my content out of iTunes on my laptop about a week ago, but still have it on my iPhone and iPad. Every little move away from iTunes makes me happy.

afplay on Mac and mpg123/mplayer/aplay on Linux can provide a decent start with your own controller driving it.

Thank you for mentioning the HifiBerry DAC+ which I didnt't know. Looks very interesting. They call the pro version "audiophile" which is hard to believe at $39. How well does it perform in your experience?

Mine is not the pro version, although I was tempted to get it. Mine is just the DAC+. So far I'm extremely happy with it. It's super easy to attach to Pi (no soldering). I had to make 2 simple edits to /boot/config.txt and it works. Sound is very good and I play mostly MP3 and some FLAC.

Author here, thanks for all the responses.

Gapless playback is high on my personal wishlist as well.

Same goes for additional audio formats. I was actually surprised that the latest macOS had built-in support for FLAC but there are a few others I'd like to add.

Both of these features will require a more custom audio solution, which may take some time to figure out... but it's on the roadmap!

Geez, why didn't I know about this earlier? It's a life saving tool.

I have been using Cog or Gog or whatever but recently gave up. This thing is exactly what I needed. Not that iTunes shit that tries to move my files around or that electron shit that gobbles 1GB of my memory for just the nice transitions.

Why did you give up? I'm a Cog[1] user and I fail to see why this would be any better than Cog. It looks worse.

[1] https://github.com/kode54/Cog

Is this the new fork? I thought it doesn't get updated and I think last time it crashed on me or did something weird, so I stopped caring about it.

But this fork seems really good, too. Thanks, let me use both and see what I like more.

Tiny Player looks really cool. I really enjoy seeing genuine native macOS software. I feel like it’s becoming a lost art. Is the source code available anywhere?

It isn't but not because I would want to keep it secret. I just want to focus on making the app better and not on managing an open source project. I feel like it would add unnecessary stress for me. However, if I ever get tired of working on the app, I'm probably going to put it on GitHub.

fwiw, https://github.com/sbooth/SFBAudioEngine is a great library for supporting other formats, helps with gapless, and is reasonably easy to drop in. I've dropped it into an audio player I created with virtually no hassle.

Thanks, it's on my radar. I think I got some errors when I tried to build it though, so I'll need to get back to that.

Any chance of adding direct upload over a lightning cable instead of over WiFi? WiFi’s not working for me, though the same http server over WiFi function works fine to load music to VLC iOS. I even tried the Tiny Loader app on macOS but still times out. Thanks!

If you've already got VLC, which is open source, it can work and look similarly, just drag on some MP3 files and it turns them into a "playlist" and plays. Example: https://i.imgur.com/YoiWeDz.png .. bonus is it'll also play stuff like .mod, .xm and other old tracker formats.

Without going off topic and kudos to the developer...however i was thinking exactly the same! I use VLC everywhere because its open source and awesome. I really believed in the project since early on, in fact if you have been using it for 10years or so, like i have, consider donating! Honestly they deserve it!

Good idea - I just sent some Bitcoin. To be fair, I don't think it is off topic as I've often learnt about alternatives in threads here. It'd be weird if it were frowned upon, so I'll happily take the downvotes as the price for sharing :-D

I wasn't implying you were offtopic but rather my comment reply to yours might have been perceived as off topic reply :)

Nice. Looking at this takes me back to 2000s, and leaves me thinking we’ve taken a wrong turn somewhere. Software should be simple - and that means that it should do one thing and do it well, not be stunted for “aesthetic” or other reasons...

In case you don’t, please support gapless playback. It’s an obvious feature for concerts and live performances, and a lot of software (e.g. whatever Ubuntu uses) doesn’t handle it at all.

+1 for both the simplicity and the gapless playback. I wish software was more lightweight

I've taken to using the OS X client for Google Music, where I've backed up all my mp3s, but this looks great for when I eventually leave that ecosystem (I still use Winamp on Windows). The simpler the better as far as I'm concerned. Although the ability to search the playlist and queue items would be nice.

Can you link to that client? I didn't know it existed

This is an electron wrapper around the website.

The website claims that it's more efficient than running Google Music in a Chrome tab, but I'm pretty dubious; it's running an entire browser runtime!

Hey this reminds me of Bahamut which I made for similar reasons: https://github.com/sdegutis/Bahamut/blob/master/README.md

Bahamut looks really nice!

I've been using Swinsian for this. Plays nice with a networked music library and has excellent tag editing. https://swinsian.com/

Looks nice.

Awesome! I really like the minimal interface.

After I switched from Windows to Mac about one year ago, I couldn't believe I had to abandone foobar2000 and IrfanView. After some try-outs I got a bit comfortable with iTunes to play my local music, esp. different display modes (song list, album overview) of what's currently played is well done.

Your player is a nice little program, I'm gonna keep it on my mac!

I love the "not iTunes" argument, but the thing I miss from nearly all those nice little players is library management. I have a lot of music I like to browse.

My wish list: 1) Browsing by album, with or without covers. 2) Playing a song should queue the rest of the album starting from that song. 3) I'd like to be able to "discover" music I don't listen often to. Like reverse sorting by last play date. To many time I "re-discover" that I have music from artist X. 4) When I press the play media key on my keyboard (and the player wasn't paused), it should start playing something I like/play often. 5) Of course 3 & 4 should be automatic without creating any playlist.

Good stuff. For me, Winamp always was "just right." I'm one of the old school weirdos, I guess, that doesn't need endless recommendations from Spotify and Pandora, and just enjoy my enormous (yet growing) mp3/flac collection.

How is this better and / or different from VLC [0]?

[0] https://www.videolan.org/vlc/index.html

I so much need a music player that fits my needs on macOS that I hacked my own on top of FFPlay from FFmpeg.


For me, I like to see the spectrum when I listen to music because it gives a good idea of how well the spatialization has been recorded.

Also, thanks to FFmpeg I can display all encoding details right away...

FFmpeg is a great project. Interesting how it interprets the embedded artwork as 'mjpeg' in your pic.

Well, an MJPEG is literally a stream of JPEGs.

yes, FFmpeg can open a few picture formats such as jpg, png that are used by some codecs.

I mostly use Spotify and stream music rather than collect mp3 files, but I still have a couple hundred or so songs that Spotify doesn’t have. Spotify lets you load local files and add them to playlists alongside songs you stream, and I’ve generally been pretty pleased. It certainly beats iTunes, and it’s nice having everything all in one place.

I mostly use afplay to play mp3 from the command line. It is quick and fast. Only playlist management is missing.

Impressive. The job well done. Since today, Tiny Player will be my player of choice on Mac.

One suggestion though: currently it shows "FLAC" in status bar when I play a FLAC file. But what I really want to see is something like "FLAC 24 bit 96 kHz".

If you can hear the difference then why do you need a display of that?

Huh? Mac OS has an audio mixer that works in a fixed predefined format unless the audio device is open in exclusive mode.

So here comes the problem: audio mixer is usually set to highest audio rate your DAC supports. But for better experience it is recommended to set it to native rate of the source material.

That's why it is very beneficial to know what audio format you are currently listening to. You can then go and adjust the pipeline to match that format.

A mismatch between source and DAC sampling rates leads to an undesirable aliasing. This is the very same effect when you try to watch, say, 1920x1080 desktop screen on 2540x1280 LCD monitor. Audio is considerably more forgiving to such a mismatch comparing to video, but still this is a noticeable and undesirable effect, especially when you have a high-end audio pipeline.

BTW, anyone has suggestions for a non-iTunes, non-Vox music player supporting Applescript?

Swinsian[.com] supports "Applescript control" according to their features list.

For something named Tiny Player, it wastes a surprising amount of screen real estate.

Did you write the decoder yourself, or do you feed it into FFMPeg or something similar?

It says "for FLAC support you need macOS 10.13", so it almost certainly uses the system libraries.

That's correct. I might switch to a 3rd party decoder later.

Great start! Would need something to easily mass edit ID3 tags and also rename files based on tags - any good solutions? Surprisingly, I couldn't find a suitable CLI tool so far either.

There's the "id3" mass tagger utility which supposedly can do that: https://squell.github.io/id3/

I haven't used it though, I've settled for MusicBrainz Picard for now.

They also have the Tiny Player for iOS, which completely bypasses iTunes.

This is very nice! I've been using cmus as of late as I can keep it open in a terminal tab while I'm working, but I will certainly try this out.

I like minimal players for music. On Linux/BSD, I like mpg123 or mpc. On Windows, I am a big fan of Foobar2000.

Very nice! I know this is intended to stay small and minimal, but I’d love to see at least some rudimental artwork support.

cmd-i to open an extra window with artwork and meta info? I'm working on that. Still haven't figured out if it should show the info for currently played track (and switch when next track starts) or the one that's selected in the playlist. Or some special "smart" combination of the two... what would you expect to happen?

I've been looking for something like this for months, ever since I switched from Windows for work. I miss foobar2000

The developers of Foobar2000 released a Mac app recently [1], not under active development and with very limited functionality but I hope for more.

[1] https://www.foobar2000.org/mac

FWIW, there was also enqueue app https://itunes.apple.com/us/app/enqueue/id493119959?mt=12 (not maintained since 2012, but still there) which was inspired by foobar2000

You might like DeaDBeeF[0]. It's my go-to music player on Mac and Ubuntu.

[0] http://deadbeef.sourceforge.net/

I did not. I can't recall why, but I tried it and it was not for me

I'm a big fan of Billy, however it's Windows only and not available for download anymore. I'm not sure why you'd suggest it in this context

Sorry! I thought you switched to Windows, not from.

foobar2000 works perfectly with Wine

I have an aversion to running things through wine. I want a native mac app, and a lightweight one, wherever possible.

Simple. Minimal. Functional.

Beautiful. Good work man.


This comment breaks the site guidelines, which ask:

"Please don't post shallow dismissals, especially of other people's work."

If you'd read https://news.ycombinator.com/newsguidelines.html and follow the rules when commenting here, we'd appreciate it.


> Plays MP3s (also FLAC, AAC, AIFF and WAV)

What about OPUS?

The player looks really cool but OPUS (together with FLAC) is the audio format of today, not MP3 (in fact it is plain ancient and the worst option available today, worse than WMA, worse than Vorbis, worse than AAC, worse than OPUS).

As for me I've recoded hundreds of gigabytes of MP3s to OPUS already to save huge lots of space (which is very precious on a 128 GiB MacBook SSD as well as on mobiles) without loosing quality.

Did you know a 32 kbps OPUS podcast/audiobook sounds exactly the same as a 192 kbps MP3? The ratio is not this mind-blowing yet still very impressive for music files too: 128 kbits OPUS music file soudns like 256-320 kbps MP3.

Please add OPUS support and I will start recommending your player to everybody.

>without loosing quality

Yes, you did lose quality, Opus is a lossy format so whatever your source material is, you will lose some quality.

How important or noticeable that is will depend on the opus bitrate, your hearing and your personal preferences are. But just putting this as a warning for anyone reading.

This is obvious. Whoever collects MP3 files already knows what a lossy compression format means. I don't mean recoding FLAC to OPUS can save space without loosing quality, I mean recoding MP3 to OPUS can save space producing a file of the same quality as the MP3 original is. Obviously it will have less quality than a FLAC/CDDA original but not less than MP3 (unless you actually set the bitrate too low). E.g. I am sure converting a 256 kbits MP3 to a 192 kbits OPUS means no loss anybody can hear and converting it to 128 kbits OPUS may only mean tiny loss almost nobody can hear. Speaking about lossy format implies there is always a loss from the mathematical point of view, no loss means no perceivable loss in this context.

>Obviously it will have less quality than a FLAC/CDDA original but not less than MP3 (unless you actually set the bitrate too low).

This is incorrect. Lossy-to-lossy transcodes always incur a quality loss. It is known

The same kind of loss as caused by using cheap audio cables instead of golden cables perhaps... (sarcasm)

It would make sense to speak about quality loss if it was about FLAC originals but not if the originals are already MP3. You can't save what is not there.

Umm ... no, when you recompress music that was already compressed with a lossy algorithm, you will have lower quality than if you had just stuck with the original. You can’t save what isn’t there, but that doesn’t mean that you can’t lose even more!

Decoding an MP3 and then encoding the data to OPUS of course incurs generational loss and will sound worse than the original MP3. You should encode from the original or losslessly compressed data.

I have lost (left behind moving) all my CDs a decade ago already and I didn't have enough HDDs to use FLAC back in the days. Now I recode my 320 kbits MP3s to 128 kbits OPUS and can't tell the difference (although I am one of those rare people who can distinguish between high (128+ kbits) MP3 bitrates).

You can distinguish them because you know what the artifacts sound like.

To go and convert all these files without saving the best original you have is kind of silly, given that storage is extremely cheap today. But suit yourself.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact