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.
I find Synology's DS Audio pretty decent because it has mobile apps and local playback through a web interface, although very little confidence in them as a company.
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 :-)
> I have a large collection of music files that I’ve gathered over the years, and I missed having a good offline music player on macOS. I used Swinsian (great app, by the way!), but it hasn't been updated in years. I also missed features commonly found in streaming apps; so I built Petrichor to scratch that itch and learn Swift and macOS app development along the way!
Oh, is there a way to switch to the beta channel? I love and use Swinsian, I know they're actively working on the next major version, but can't get interim ones.
Thanks for the recommendation! This one's the best "old school iTunes" program I've tried so far. I might stick with this one for now. I especially like how I can make smartlists with nested rules.
A friend of mine (sound engineer) has been using VLC player for audio playback since forever. I do the same.
The advantage is that you are forced to organize your music in your file system and that translates incredibly well to all other future systems. Want a special playlist? Just copy the files over and name them with a numeric prefix counting up. You can open that playlist ten years later on a different operating system.
Since I tend to listen to full albums, this has been a good way of doing things.
There’s a reason library based players were invented and that’s that you don’t need to batch rename files, or tag a file 3 times if it’s part of 3 different playlists.
No plans for iOS app in near future but once this one reaches a feature stability, I'll think about it, as the decision to use Swift & Swift UI was for sharing logic with iOS app in future.
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.
Thanks for the recommendation! I gave it a try, but unfortunately this one doesn't have the stuff that I liked from old-school iTunes. At first glance: no smart lists; search doesn't work the way I want (I want a giant excel-like list that filters as I type); no volume leveling.
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?
it's possible to get a mostly-classic experience if you use Songs view and enable the column browser, but it just seems like so many small features are buggy, don't work the same or have been removed that the overall experience just doesn't stack up. iOS syncing is as terrible and slow as ever.
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'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.
I'm in the same situation, but if we take a rational look at it those statistics don't really have any value. If you can make different playlists in your new player according to your old ratings, then that should be enough.
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
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?
Thanks for the feedback, I'll add it to Readme, although app lists supported formats (as supported by AVFoundation) on app UI where user can add folders.
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.
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?
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!
I haven’t done a detailed comparison, but there’s been a free app called Decoupled [1] on iOS that supports various formats and loading music into it. The app hasn’t been updated in about four years though.
I agree. Although Swift / SwiftUI is not much fun if you can't use the latest features / APIs. The author mentions "learn Swift and macOS app development" as one of the motivations to make this, so I can understand that decision.
I started with only macOS 15 for starters, but I agree it might be possible to support even older versions so I'll check if this can be improved in future alpha or beta builds.
Anything is better than that dumpster fire. They changed the name but the ui is still straight out of the early 2000s. It’s an exercise in frustration to find the music you’re looking for, and if you subscribe to Apple Music, the radio suggestions rarely match what mood you set.
I was listening to some early 2000s alternative rock today and then randomly in the middle of my radio station it started playing a kids freeze dance song.
The best thing it has going for it is the lossless albums and native airplay casting. I got a free trial, but I’m not going to renew. I’d consider staying if they added native last.fm scrobbling, but even then I’m not sure.
I’m really bummed about the scrobbling because I lost several weeks of not a month of plays because my phone offloaded the scrobbler app and I didn’t notice. The official app for it on Mac says to use one or the other (macOS or iOS) because it will count twice.
Feels like none of what you wrote is about how the native app compares to the app being discussed, Petrichor, which is an offline music organizer/player.
I have been using itunes/music to do that and it honestly works just fine. I have hundreds of playlists from over 10 years ago that still works. Finding specific playlist or music to play is pretty easy, especially with Alfred.
The longevity is the biggest concern to me when considering the third party apps. If it stops being maintained in the future I would be stuck and need to do the chore of moving them properly to another application. With the native app I am sure it will work for the next 20 years.
My big gripe with Music is that big butt-ugly modal ad they prompt you with if you're one of the billions of humans that don't pay for Apple Music: https://discussions.apple.com/thread/253368403
It's something I'd have expected out of Microsoft, but from Apple it's a particularly shitty gesture. A big warning sign to the user that "your" device hasn't been fully paid-off yet.
> The longevity is the biggest concern to me when considering the third party apps.
And that's why I had to stop using MacOS entirely. It's absurd for a culture of paid software to have such horrible runtime compatibility. Meanwhile on Windows, you don't ever buy software that stops working. Even Linux has largely circumvented it's own ABI woes with sandboxed packaging. MacOS's statically linked app framework has every advantage in pushing out support timelines as far as Apple wants - they just don't want to push it very far, sadly.
the best-selling point in Spotify for me is discovering/suggesting new music. Sadly, it's not possible to do that when hosting local music, at least for now.
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?
No there's no limit on number of songs but there's a bug where if any track's metadata violates db constraints, scanning doesn't go past it. I've fixed it already and will include the fix in next alpha. I also need to get that auto-updates sorted now that folks are actually using it! :D
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.
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.
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.
My setup uses Jellyfin, Finer and Tailscale. I can access all my music even out of home and playlists/metadata are synced across all devices.
I find Synology's DS Audio pretty decent because it has mobile apps and local playback through a web interface, although very little confidence in them as a company.
I just want to point out that the .app is only 14MB. This is the way. Nice work, OP
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 :-)
If you are looking for a “old school iTunes” kind of player there’s also https://swinsian.com/
The Readme mentions that app under "Motivation"
> Motivation
> I have a large collection of music files that I’ve gathered over the years, and I missed having a good offline music player on macOS. I used Swinsian (great app, by the way!), but it hasn't been updated in years. I also missed features commonly found in streaming apps; so I built Petrichor to scratch that itch and learn Swift and macOS app development along the way!
For the people interested, Swinsian has a beta version that is actively developed. I got an update a couple of weeks ago. So it is not abandoned.
Oh, is there a way to switch to the beta channel? I love and use Swinsian, I know they're actively working on the next major version, but can't get interim ones.
Swinsian is 100% worth the $24.95. It's really nice to have a good system for offline music purchases.
Thanks for the recommendation! This one's the best "old school iTunes" program I've tried so far. I might stick with this one for now. I especially like how I can make smartlists with nested rules.
The main thing I'm missing is volume leveling.
A friend of mine (sound engineer) has been using VLC player for audio playback since forever. I do the same.
The advantage is that you are forced to organize your music in your file system and that translates incredibly well to all other future systems. Want a special playlist? Just copy the files over and name them with a numeric prefix counting up. You can open that playlist ten years later on a different operating system.
Since I tend to listen to full albums, this has been a good way of doing things.
There’s a reason library based players were invented and that’s that you don’t need to batch rename files, or tag a file 3 times if it’s part of 3 different playlists.
quodlibet comes highly recommended for Windows/Linux users that want a more retro media player: https://github.com/quodlibet/quodlibet
Looks fantastic, I used to love using iTunes for my music library until they screwed up queuing albums. Will there be mobile apps too?
No plans for iOS app in near future but once this one reaches a feature stability, I'll think about it, as the decision to use Swift & Swift UI was for sharing logic with iOS app in future.
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!
If you’re looking for a “iTunes before it went to shit” vibe I can also recommend Doppler: https://brushedtype.co/doppler/
Thanks for the recommendation! I gave it a try, but unfortunately this one doesn't have the stuff that I liked from old-school iTunes. At first glance: no smart lists; search doesn't work the way I want (I want a giant excel-like list that filters as I type); no volume leveling.
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?
it's possible to get a mostly-classic experience if you use Songs view and enable the column browser, but it just seems like so many small features are buggy, don't work the same or have been removed that the overall experience just doesn't stack up. iOS syncing is as terrible and slow as ever.
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.
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.
I'm in the same situation, but if we take a rational look at it those statistics don't really have any value. If you can make different playlists in your new player according to your old ratings, then that should be enough.
On the contrary, I find them priceless.
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
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).
I can suggest Cog (https://cog.losno.co/) as simple but powerfull music player that plays flac
Without even looking at anything else, I love the name.
Anyone want to let me in on the joke/reference/pun/pronunciation/why it's a clever name?
There you go https://en.wikipedia.org/wiki/Petrichor
> Petrichor is the earthy scent produced when rain falls on dry soil.
It's actually my favorite scent in the world. I grew up in New Mexico.
Also the name of a song by Ludovico Einaudi, quite popular. At least to me it was the first thing I thought when I saw this post.
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.
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?
Does it have FLAC support (or other high res audio formats)?
OP should put it up front in their README.
But from the code, seems it does.
Thanks for the feedback, I'll add it to Readme, although app lists supported formats (as supported by AVFoundation) on app UI where user can add folders.
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!
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?
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!
I use and recommend Evermusic for offline listening on iOS. It can fetch music from your cloud storage accounts too.
I haven’t done a detailed comparison, but there’s been a free app called Decoupled [1] on iOS that supports various formats and loading music into it. The app hasn’t been updated in about four years though.
[1]: https://decoupled.app/
Yes, iPhone is target once mac stable release is complete as the core logic can be shared between 2 platforms.
There's already the excellent Doppler app for offline music on iOS.
> 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.
I agree. Although Swift / SwiftUI is not much fun if you can't use the latest features / APIs. The author mentions "learn Swift and macOS app development" as one of the motivations to make this, so I can understand that decision.
I started with only macOS 15 for starters, but I agree it might be possible to support even older versions so I'll check if this can be improved in future alpha or beta builds.
> Everything you'd expect from an offline music player!
I'd expect winamp-level UI customization, cross-platform support, iTunes library smart playlist support...
I don’t expect customisation or cross-platform support. I’d love smart playlists, though. And an old-school visualiser.
Anyway, I really like this app. I hope it will stick around, it is a joy to use.
Ah, I guess he was talking to the person behind you
[dead]
Get a malware warning when trying to open disk image, Sequoia refuses to open it :(
If it's just a signing thing that Apple checks, you open run it by doing `xattr -d com.apple.quarantine filename` first.
Why isn't it signed properly though.
or I think if you right click and then open the app, macOS lets you run it.
fwiw this won't work in macOS 15.6
Right-click and select open as the app is currently signed using ad-hoc signing as Apple notarization costs money. :(
foobar for Mac
https://www.foobar2000.org/mac
omg how have I missed this. thanks!
I think it’s a fairly recent port.
How's this compare to the native macos music app formerly known as itunes?
Anything is better than that dumpster fire. They changed the name but the ui is still straight out of the early 2000s. It’s an exercise in frustration to find the music you’re looking for, and if you subscribe to Apple Music, the radio suggestions rarely match what mood you set.
I was listening to some early 2000s alternative rock today and then randomly in the middle of my radio station it started playing a kids freeze dance song.
The best thing it has going for it is the lossless albums and native airplay casting. I got a free trial, but I’m not going to renew. I’d consider staying if they added native last.fm scrobbling, but even then I’m not sure.
I’m really bummed about the scrobbling because I lost several weeks of not a month of plays because my phone offloaded the scrobbler app and I didn’t notice. The official app for it on Mac says to use one or the other (macOS or iOS) because it will count twice.
Feels like none of what you wrote is about how the native app compares to the app being discussed, Petrichor, which is an offline music organizer/player.
I have been using itunes/music to do that and it honestly works just fine. I have hundreds of playlists from over 10 years ago that still works. Finding specific playlist or music to play is pretty easy, especially with Alfred.
The longevity is the biggest concern to me when considering the third party apps. If it stops being maintained in the future I would be stuck and need to do the chore of moving them properly to another application. With the native app I am sure it will work for the next 20 years.
My big gripe with Music is that big butt-ugly modal ad they prompt you with if you're one of the billions of humans that don't pay for Apple Music: https://discussions.apple.com/thread/253368403
It's something I'd have expected out of Microsoft, but from Apple it's a particularly shitty gesture. A big warning sign to the user that "your" device hasn't been fully paid-off yet.
> The longevity is the biggest concern to me when considering the third party apps.
And that's why I had to stop using MacOS entirely. It's absurd for a culture of paid software to have such horrible runtime compatibility. Meanwhile on Windows, you don't ever buy software that stops working. Even Linux has largely circumvented it's own ABI woes with sandboxed packaging. MacOS's statically linked app framework has every advantage in pushing out support timelines as far as Apple wants - they just don't want to push it very far, sadly.
>the ui is still straight out of the early 2000s
There was a lot of great UI back then! None of it in iTunes, but still.
> Anything is better than that dumpster fire.
Nonsense, you could be using Spotify.
I’m going to try giving up on all of them and just growing my local collection monthly instead.
the best-selling point in Spotify for me is discovering/suggesting new music. Sadly, it's not possible to do that when hosting local music, at least for now.
I think Last.fm provides recommendations? And maybe ListenBrainz does, too.
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?
I buy from Bandcamp and Qobuz (especially for classical and artists that are not on Bandcamp).
Bandcamp comes to mind. Not sure about artists who aren't on Bandcamp, though.
Airplay is kind of a must
Or you're gonna kick his ass?
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!
No there's no limit on number of songs but there's a bug where if any track's metadata violates db constraints, scanning doesn't go past it. I've fixed it already and will include the fix in next alpha. I also need to get that auto-updates sorted now that folks are actually using it! :D
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.
Looks clean. Good work
Congratulations on the release! This looks really cool!
I use Roon.
Roon is well regarded but it's paid for and not open source.
Imagine the title being "... a free, open-source, offline music player for <any other OS>"
[dead]
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.
Winamp is OG, so why not both!
The 'Win' in Winamp was referring to Windows. This is a Mac application.
The platform is irrelevant, that UI design would apply to most platforms (MacOS for sure).
There is a mac clone https://re-amp.ru/
Neat, but source code would be nice.