[{"data":1,"prerenderedAt":606},["ShallowReactive",2],{"project-44515266":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":49,"post_text":50,"what":51,"said":109,"maker_in_thread":290,"shape":299,"grid":303,"attempts":567,"same_week":568,"maker_shows":46,"maker_hidden":598,"reader_version":599,"card":600},"44515266","Petrichor","a free, open-source, offline music player for macOS","title","Show HN: Petrichor – a free, open-source, offline music player for macOS","https:\u002F\u002Fgithub.com\u002Fkushalpandya\u002FPetrichor","github.com","kushalpandya",1752099451,2025,202,106,317,3837,9,"notable","creative","music player","desktop_app",[24,25,26,27,28],"offline music player","macos music player","local music library","flac player","open source music player","debated",0.014,{"positive":32,"neutral":33,"mixed":34,"critical":35},10,19,0,11,40,{"execution":38,"design":40,"performance":43,"idea":45,"docs":47,"privacy":48},{"positive":34,"critical":39},5,{"positive":41,"critical":42},4,3,{"positive":44,"critical":34},2,{"positive":46,"critical":34},1,{"positive":34,"critical":34},{"positive":34,"critical":46},[42,42,34,46,34,34,42,42,34,39,39,34,39,39,42,42,42,39,34,42,46,39,34,42,46,39,46,44,46,42,34,34,46,39,34,42,46,46,34,34],"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;\n\n- Everything you'd exp",{"problem":52,"audience":58,"pricing":67,"motivation":71,"time_to_build":75,"stack":79,"openness":106,"stage":107,"team_size":108},{"value":53,"source":54,"evidence":55},"Offline music player for large local music collections on macOS","maker",[56],{"id":57},"post",{"value":59,"source":60,"evidence":61},"Mac users with large local music collections who want an offline player","inferred",[62,63],{"id":57},{"id":64,"by":65,"text":66},"44516142","leetrout","OP should put it up front in their README. But from the code, seems it does. ``` static let supportedExtensions = [\"mp3\", \"m4a\", \"wav\", \"aac\", \"aiff\", \"flac\"] ```",{"value":68,"source":54,"evidence":69},"free",[70],{"id":57},{"value":72,"source":54,"evidence":73},"Missing a good offline music player; wanted to learn SwiftUI",[74],{"id":57},{"value":76,"source":54,"evidence":77},"3 months",[78],{"id":57},[80,90,94,100],{"value":81,"source":54,"evidence":82},"Swift",[83,87],{"id":84,"by":85,"text":86},"44519969","ale42","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…",{"id":88,"by":11,"text":89},"44521555","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…",{"value":91,"source":54,"evidence":92},"SwiftUI",[93],{"id":88,"by":11,"text":89},{"value":95,"source":54,"evidence":96},"SQLite FTS5",[97],{"id":98,"by":11,"text":99},"44522321","Smart playlists will be coming soon as I've done all the infra work to support it, in fact current default playlists that app has (Favourites, Top 25 Most Played, Top 25 Recently…",{"value":101,"source":54,"evidence":102},"AVFoundation",[103],{"id":104,"by":11,"text":105},"44516191","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.","open_source","beta","solo",{"praise":110,"objections":138,"requests":171,"questions":216,"alternatives":250},[111,120,131],{"value":112,"source":113,"evidence":114},"Native Swift app, small size and good performance","commenter",[115,119],{"id":116,"by":117,"text":118},"44521127","tbeseda","I just want to point out that the .app is only 14MB. This is the way. Nice work, OP",{"id":84,"by":85,"text":86},{"value":121,"source":113,"evidence":122},"Clean, modern UI",[123,127],{"id":124,"by":125,"text":126},"44517320","8mobile","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…",{"id":128,"by":129,"text":130},"44518391","leshokunin","Looks clean. Good work",{"value":132,"source":113,"evidence":133},"Name is liked",[134],{"id":135,"by":136,"text":137},"44515984","beschizza","Without even looking at anything else, I love the name.",[139,153,160,164],{"value":140,"source":113,"evidence":141},"macOS may block the app as malicious because it is ad-hoc signed",[142,146,150],{"id":143,"by":144,"text":145},"44517583","yborg","Get a malware warning when trying to open disk image, Sequoia refuses to open it :(",{"id":147,"by":148,"text":149},"44525992","arkensaw","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…",{"id":151,"by":11,"text":152},"44520456","Right-click and select open as the app is currently signed using ad-hoc signing as Apple notarization costs money. :(",{"value":154,"source":113,"evidence":155},"No CUE sheet support; albums show as single track",[156],{"id":157,"by":158,"text":159},"44522559","SloopJon","Petrichor shows my albums as a single track. CUE sheet support is a must. I also have a hard time seeing myself using a desktop music player without an iTunes-style column-mode…",{"value":161,"source":113,"evidence":162},"No column-mode browser",[163],{"id":157,"by":158,"text":159},{"value":165,"source":113,"evidence":166},"Requires macOS 14 or later",[167],{"id":168,"by":169,"text":170},"44517620","rock_artist","> 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.",[172,184,194,202,209],{"value":173,"source":113,"evidence":174},"iOS app",[175,179,183],{"id":176,"by":177,"text":178},"44516505","dlivingston","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…",{"id":180,"by":181,"text":182},"44521304","benoau","Looks fantastic, I used to love using iTunes for my music library until they screwed up queuing albums. Will there be mobile apps too?",{"id":124,"by":125,"text":126},{"value":185,"source":113,"evidence":186},"Volume leveling",[187,191],{"id":188,"by":189,"text":190},"44518911","Meekro","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?…",{"id":192,"by":189,"text":193},"44518906","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…",{"value":195,"source":113,"evidence":196},"Smart playlists",[197,198],{"id":188,"by":189,"text":190},{"id":199,"by":200,"text":201},"44519827","carlosjobim","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…",{"value":203,"source":113,"evidence":204},"AirPlay support",[205],{"id":206,"by":207,"text":208},"44518682","dwiehoff","Airplay is kind of a must",{"value":210,"source":113,"evidence":211},"Homebrew and MacPorts distribution",[212],{"id":213,"by":214,"text":215},"44517391","newscracker","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…",[217,228,239],{"value":218,"source":113,"evidence":219},"Does it support FLAC or lossless formats and sample rate matching",[220,224],{"id":221,"by":222,"text":223},"44516041","dvdplm","Does it have FLAC support (or other high res audio formats)?",{"id":225,"by":226,"text":227},"44517979","reader9274","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?",{"value":229,"source":113,"evidence":230},"Can it sync with a NAS or Subsonic server",[231,235],{"id":232,"by":233,"text":234},"44519893","tianqi","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…",{"id":236,"by":237,"text":238},"44517284","zdw","Any thoughts on syncing against an external music library that uses the Subsonic API (like Navidrome or similar) so an offline\u002F\"away from home\" laptop could still listen to music?",{"value":240,"source":113,"evidence":241},"Can it import play statistics and date added from iTunes",[242,246],{"id":243,"by":244,"text":245},"44520427","tambourine_man","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…",{"id":247,"by":248,"text":249},"44522932","afewscribbles","Ditto. I would also add that what has stopped me from ever using an iTunes or Music alternative is the inability to directly transfer the \"Date Added\" data, along with the…",[251,262,269,276,283],{"value":252,"source":113,"evidence":253},"Swinsian",[254,258],{"id":255,"by":256,"text":257},"44517016","dewey","If you are looking for a “old school iTunes” kind of player there’s also https:\u002F\u002Fswinsian.com\u002F",{"id":259,"by":260,"text":261},"44517217","gpm","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…",{"value":263,"source":113,"evidence":264},"Doppler",[265],{"id":266,"by":267,"text":268},"44518497","Cenk","If you’re looking for a “iTunes before it went to shit” vibe I can also recommend Doppler: https:\u002F\u002Fbrushedtype.co\u002Fdoppler\u002F",{"value":270,"source":113,"evidence":271},"Apple Music app",[272],{"id":273,"by":274,"text":275},"44516665","toomim","How's this compare to the native macos music app formerly known as itunes?",{"value":277,"source":113,"evidence":278},"foobar2000",[279],{"id":280,"by":281,"text":282},"44518282","haunter","foobar for Mac https:\u002F\u002Fwww.foobar2000.org\u002Fmac",{"value":284,"source":113,"evidence":285},"Quod Libet",[286],{"id":287,"by":288,"text":289},"44518208","bigyabai","quodlibet comes highly recommended for Windows\u002FLinux users that want a more retro media player: https:\u002F\u002Fgithub.com\u002Fquodlibet\u002Fquodlibet",{"comments":32,"answered":41,"key":291},[292,293,296],{"id":98,"text":99},{"id":294,"text":295},"44522347","Yes, the app got enough traction already to warrant for Homebrew and MacPorts distribution, so I'll try to incorporate both! Audiobooks support looks like a neat idea, I'll see…",{"id":297,"text":298},"44516305","There you go https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPetrichor > Petrichor is the earthy scent produced when rain falls on dry soil.",{"commenters":300,"max_depth":301,"maker_replies":32,"first_comment_mins":15,"lifespan_hours":302},68,6,150,[304,306,309,312,313,314,317,320,322,324,325,326,329,332,334,338,341,344,346,348,350,353,356,358,360,361,362,364,366,368,370,373,375,377,378,381,384,388,390,392,394,398,400,402,403,406,409,411,413,415,416,418,420,424,429,432,435,438,440,442,444,446,449,452,455,459,462,465,469,471,474,476,478,481,484,486,489,492,493,495,498,501,503,506,509,512,516,518,520,524,526,529,531,533,535,537,539,543,545,549,553,556,558,560,562,565],[232,34,42,305,233,34],"project\u002Fneutral\u002Fnone",[307,34,34,308,181,34],"44521239","other\u002Fneutral\u002Fnone",[310,34,34,308,311,34],"44521831","senorrib",[255,46,42,305,256,34],[259,46,42,305,260,34],[315,46,34,308,316,34],"44517376","thek3nger",[318,46,34,308,319,34],"44521447","digital_voodoo",[321,46,34,308,158,34],"44522607",[157,46,46,323,158,34],"project\u002Fcritical\u002Fexecution",[287,46,34,308,288,34],[192,46,34,308,189,34],[327,46,34,308,328,34],"44521033","atoav",[330,46,34,331,256,34],"44521291","commenter\u002Fneutral\u002Fnone",[333,46,34,331,328,34],"44529840",[335,46,34,336,337,34],"44521850","other\u002Fneutral\u002Fpricing","pwenzel",[339,46,34,308,340,34],"44527351","cageface",[342,46,46,343,256,34],"44528589","project\u002Fcritical\u002Fdesign",[116,44,39,345,117,34],"project\u002Fpositive\u002Fperformance",[188,42,42,347,189,34],"project\u002Fneutral\u002Fidea",[98,42,34,349,11,46],"maker\u002Fneutral\u002Fnone",[351,41,34,308,352,34],"44516839","programmarchy",[354,41,34,308,355,34],"44517263","Cockbrand",[357,41,34,308,316,34],"44517412",[124,39,39,359,125,34],"maker\u002Fpositive\u002Fdesign",[213,301,42,305,214,34],[294,301,34,349,11,46],[84,363,39,345,85,34],7,[266,365,34,308,267,34],8,[367,365,34,308,189,34],"44518793",[369,365,34,308,340,34],"44527343",[371,18,34,308,372,34],"44518400","uldos",[135,32,39,374,136,34],"project\u002Fpositive\u002Fidea",[376,32,42,305,260,34],"44516270",[297,32,34,349,11,46],[379,32,34,308,380,34],"44516739","johng",[382,32,34,308,383,34],"44520326","pcardoso",[385,35,39,386,387,34],"44519493","project\u002Fpositive\u002Fnone","kawsper",[221,389,42,305,222,34],12,[64,389,42,391,65,34],"project\u002Fneutral\u002Fdocs",[104,389,34,393,11,46],"maker\u002Fneutral\u002Fdocs",[395,396,34,308,397,34],"44578557",13,"mickelsen",[236,399,42,347,237,34],14,[180,401,42,305,181,34],15,[88,401,34,349,11,46],[404,401,34,405,181,34],"44522630","other\u002Fneutral\u002Fdesign",[407,401,34,308,408,34],"44530958","seec",[243,410,39,386,244,34],16,[412,410,34,331,200,34],"44520770",[414,410,34,331,244,34],"44520818",[247,410,34,331,248,34],[417,410,34,331,244,34],"44523612",[419,410,34,331,200,34],"44524456",[421,422,42,347,423,34],"44519419",17,"jzellis",[425,426,46,427,428,34],"44519756",18,"project\u002Fcritical\u002Fprivacy","sneak",[430,33,34,308,431,34],"44521142","mkirsten",[433,33,34,308,434,34],"44522026","GuinansEyebrows",[176,436,39,437,177,34],20,"project\u002Fpositive\u002Fdesign",[439,436,34,349,11,46],"44516842",[441,436,34,308,214,34],"44517357",[443,436,34,308,200,34],"44520063",[445,436,34,308,337,34],"44521862",[199,447,42,448,200,34],21,"project\u002Fneutral\u002Fexecution",[450,447,34,451,11,46],"44520177","maker\u002Fneutral\u002Fexecution",[225,453,42,454,226,34],22,"project\u002Fneutral\u002Fperformance",[456,457,46,343,458,34],"44516669",23,"eviks",[460,457,34,331,461,34],"44517502","syspec",[463,457,39,437,464,34],"44521372","kergonath",[466,467,42,347,468,34],"44519818",24,"blef",[168,470,46,323,169,34],25,[472,470,34,331,473,34],"44519375","fainpul",[475,470,34,451,11,46],"44520440",[143,477,46,323,144,34],26,[479,477,42,448,480,34],"44517614","HnUser12",[482,477,42,448,483,34],"44520325","zffr",[485,477,46,323,117,34],"44521118",[487,477,42,448,488,34],"44521714","v5v3",[490,477,42,448,491,34],"44522350","rustc",[151,477,34,451,11,46],[273,494,42,305,274,34],27,[496,494,34,308,497,34],"44516840","darthcircuit",[499,494,34,331,500,34],"44516937","MangoToupe",[502,494,34,331,497,34],"44517246",[504,494,34,308,505,34],"44517904","mrheosuper",[507,494,34,308,508,34],"44521646","notpushkin",[510,494,34,308,511,34],"44517899","samplatt",[513,494,46,514,515,34],"44518036","project\u002Fcritical\u002Fnone","eschatology",[517,494,34,308,288,34],"44518195",[519,494,34,308,464,34],"44522715",[521,522,39,386,523,34],"44515946",28,"keane",[280,525,34,308,281,34],29,[527,525,34,308,528,34],"44518900","brnt",[530,525,34,308,508,34],"44521581",[206,532,46,514,207,34],30,[534,532,34,308,200,34],"44520087",[128,536,39,437,129,34],31,[147,538,46,323,148,34],32,[540,541,34,308,542,34],"44518753",33,"lowbloodsugar",[544,541,34,308,488,34],"44521722",[546,547,34,308,548,34],"44517960",34,"meta-level",[550,551,46,343,552,34],"44517461",35,"integricho",[554,551,34,331,555,34],"44517851","bcraven",[557,551,34,308,458,34],"44518061",[559,551,34,308,508,34],"44521675",[561,551,34,331,552,34],"44521209",[563,551,34,564,11,46],"44520464","maker\u002Fneutral\u002Fdesign",[566,551,34,308,464,34],"44522844",[],[569,574,579,584,588,593],{"id":570,"name":571,"points":572,"category":573},"44482965","LisaGUI",516,"languages",{"id":575,"name":576,"points":577,"category":578},"44498296","OffChess",369,"games",{"id":580,"name":581,"points":582,"category":583},"44512763","FlopperZiro",364,"hardware",{"id":585,"name":586,"points":587,"category":578},"44463967","Tower of Time",319,{"id":589,"name":590,"points":591,"category":592},"44514753","annas-mcp",256,"ai",{"id":594,"name":595,"points":596,"category":597},"44467838","Piano Trainer",203,"learning_science",false,"v2",{"id":601,"name":5,"line":6,"ai":598,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":602,"top":18,"kw":603,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":604,"url":9,"mix":605,"praise":112,"objection":140,"sub":21},44515266,0.01,[24,25,26,27,28],"3301003305505533350315031512130015031100",[32,33,34,35],1794036678215]