Show HN: Petrichor – a free, open-source, offline music player for macOS

github.com

190 points by kushalpandya a day ago


I have a large collection of music files gathered over the years, so I was sorely missing a decent offline music player that can serve as a frontend for the collection. I tried several Mac apps over the years, but since streaming music is mainstream now, there aren't good offline music players that meet my needs. So I spent the last 3 months building Petrichor! The idea is to solve my problem and learn Swift UI development along the way, while giving back to the community with this open-source project! Here's a list of features it has, with more getting added in future;

- Everything you'd expect from an offline music player!

- Map your music folders and browse your library in an organised view.

- Create playlists and manage the play queue interactively.

- Browse music using folder view when needed.

- Pin anything (almost!) to the sidebar for quick access to your favourite music.

- Navigate easily: right-click a track to go to its album, artist, year, etc.

- Native macOS integration with menubar and dock playback controls, plus dark mode support.

- Search quickly through large libraries containing thousands of songs.

The app is still in alpha, so things may look unpolished, but I've been testing the alpha builds for the past few weeks and fixing issues as I find them for v1 release. I welcome any feedback (and contributions!) on GitHub repo. Please give it a try and let me know what you think!

tianqi - 13 hours ago

The most issues I encounter with music players are related to my situation of NAS. My NAS is straightforward: I just connect a RAID to a Mac and share it, then let other Macs connect to this "server". This allows me to access it in Finder like any other directory. However, this setup presents two obvious problems for many players: First, since the directory is not always available (if I'm not at home), some players cannot properly handle the issue of the main directory not existing. Second, I need to easily synchronise playlists across different computers, but many players do not support saving playlists as files, specifying their save location onto NAS, and configuring themselves to read playlists from NAS. These issues have been causing me a great deal of frustration. Currently I use VOX, which is a fairly acceptable option. I hope I can find a better solution.

tbeseda - 11 hours ago

I just want to point out that the .app is only 14MB. This is the way. Nice work, OP

dewey - 21 hours ago

If you are looking for a “old school iTunes” kind of player there’s also https://swinsian.com/

ale42 - 13 hours ago

I don't own a Mac, so I wont use it directly, but I use Macs from time to time, and it looks great! +1 (or +10) for being native code made with Swift and not the x-th HTML/JS-based program that eats your RAM :-)

8mobile - 20 hours ago

Congrats for Petrichor, really impressive work! I love the clean, modern UI. I’m currently using Swinsian (still solid in many ways), but Petrichor feels like a breath of fresh air, especially for those of us who still care about local libraries. I truly hope you’ll bring this to iOS. Thanks

Cenk - 17 hours ago

If you’re looking for a “iTunes before it went to shit” vibe I can also recommend Doppler: https://brushedtype.co/doppler/

newscracker - 20 hours ago

Two suggestions, if you have the time to look at the effort and difficulty to implement them:

> P.S. I plan publish it on Homebrew soon.

1. Please consider publishing on MacPorts too.

2. Please consider supporting m4b audiobooks (it’s a different file extension from the common m4a, but also supports chapters).

Meekro - 16 hours ago

I've been searching for the perfect "old school iTunes" program for a while. I'm pretty sure it does not exist, maybe I'll try to make one someday unless someone beats me to it? Here's what I want:

* Smartlists, preferably with nested rules

* Proper search, the way iTunes did it: you have a huge excel-like list of songs that filters as you type

* Volume leveling

* Corresponding Windows/Mac/iPhone programs, with the ability to sync my collection like Dropbox

I would gladly pay $100 for this.

kawsper - 14 hours ago

I’ve been searching for something like this, I love the name!

I currently use iTunes, and I might be an idiot, but I don’t seem to be able to export/import my library between installs, so I lose my plays and settings, but I never lose music files!

I have a massive music library and mostly just listen on shuffle, but it would be cool to be able to sync to my iPhone.

I’ll try all the recommendations in this thread!

benoau - 11 hours ago

Looks fantastic, I used to love using iTunes for my music library until they screwed up queuing albums. Will there be mobile apps too?

beschizza - a day ago

Without even looking at anything else, I love the name.

tambourine_man - 12 hours ago

I've been looking for an alternative since Apple decided to turn iTunes into the mess that is Apple Music. But I still need to import the two decades of playing statistics (skips, last played, etc) along with ratings, date added, etc. Petrichor looks really good, congratulations, I'll try it out.

uldos - 17 hours ago

I can suggest Cog (https://cog.losno.co/) as simple but powerfull music player that plays flac

dvdplm - a day ago

Does it have FLAC support (or other high res audio formats)?

zdw - 20 hours ago

Any thoughts on syncing against an external music library that uses the Subsonic API (like Navidrome or similar) so an offline/"away from home" laptop could still listen to music?

mkirsten - 11 hours ago

Looks great! Impressive that it looks so slick and feature complete. It’s been a while since I used iTunes, so don’t fully understand where iTunes today is failing. Can you elaborate?

jzellis - 14 hours ago

I'm not in front of my laptop but I'm gonna download it later, as I've got a 128GB SD card filled with my middle aged white guy hipster music library that I also keep on an actual 5G iPod Classic (which I added SD storage to and keep meaning to also add a Bluetooth module to as well).

A thought, because of all the folks asking for volume limiting: if you're not into DSP, it might be easier to simply add a point in your audio output flow for AudioUnits and let people use one of the existing limiters for it - Apple just straight up includes one on every Mac in the AudioUnits library - or write one specifically and include it.

This would also allow not just limiting but EQ, compression or even simulated tube warmth if people wanted that. (Or, y'know, running everything through autotune and a bit crusher if they're psychopaths. :-D)

I've never coded in Swift but I imagine adding a point to route through AudioUnits is probably not hugely difficult and iirc Apple has example code for doing it, at least they used to.

Keep up the awesome work, either way!

arkensaw - 3 hours ago

I've been looking for exactly this for the longest time. Using Foobar2000 right now but looking for something better and I think this might be it.

HOWEVER.

I can't run it. I get a message. '"Petrichor.app" can't be opened because Apple cannot check it for malicious software'

I've tried the release dmg and also the homebrew version.

blef - 13 hours ago

I don't have my own music collection, but because of this I'd consider finding a way to have it to switch away from online providers.

reader9274 - 18 hours ago

Will it support playing lossless files in FLAC or ALAC format? Will it be able to change the audio sampling rate per song to match the song's sampling rate?

dlivingston - a day ago

Beautiful app, well done. Pleaaaaaaaase make this available on iOS. Bonus points if the desktop version could do syncing with my iPhone. I could finally treat my iPhone like an iPod!

eviks - a day ago

> Everything you'd expect from an offline music player!

I'd expect winamp-level UI customization, cross-platform support, iTunes library smart playlist support...

rock_artist - 19 hours ago

> macOS 14 or later

That’s a pretty high bar for a Mac app assuming some hardcore offline music lovers might use older OS versions.

yborg - 19 hours ago

Get a malware warning when trying to open disk image, Sequoia refuses to open it :(

toomim - a day ago

How's this compare to the native macos music app formerly known as itunes?

programmarchy - a day ago

This sounds like a breath of fresh air as a disenchanted Spotify user. My only hesitation is that I’ve lost touch with collecting music. I used to rip CDs and download music and curate a library etc, but I’ve lost my collection and collecting habits since adopting streaming. How do people collect music nowadays? Is there a legit way (fairly compensating artists) to do it?

haunter - 18 hours ago

foobar for Mac

https://www.foobar2000.org/mac

keane - a day ago

Congratulations on the release! This looks really cool!

dwiehoff - 16 hours ago

Airplay is kind of a must

leshokunin - 17 hours ago

Looks clean. Good work

carlosjobim - 13 hours ago

Is the alpha currently limited to max 200 songs? Because I can't seem to get it to add more.

Also, I'd like to ask if it currently supports smart playlists?

Congratulations on your work!

sneak - 14 hours ago

Be careful when you implement automatic updates. Done naievely it will grant you RCE on every one of your users’ computers. Learn from Solarwinds. You need user interaction, it can’t be touchless or it’s RCE.

lowbloodsugar - 16 hours ago

I use Roon.

sweesama - 15 hours ago

[dead]

meta-level - 18 hours ago

Imagine the title being "... a free, open-source, offline music player for <any other OS>"

integricho - 20 hours ago

For me, the ideal music player UI started and ended with Winamp, and I never liked any of the higher level ones, no need for music libraries etc. Recursive directory scan, delete what is not needed, flat playlist, can save any, the end. Also, the minimalistic window of Winamp is just perfect.