←back to thread

198 points kushalpandya | 1 comments | | HN request time: 0.479s | source

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!

1. jzellis ◴[] No.44519419[source]
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!