返回资讯中心
外部精选
软件工程
#开发者实时流

开发者发布自研音乐播放器,称已接近完美

来源标题:Show HN: After decades, I have my almost perfect music player

一位开发者公开了自己开发的音乐播放器项目,称其已接近自己理想中的完美形态。该项目以 Show HN 形式发布,作者表示这一目标已追求了数十年。原文未披露播放器的具体功能与技术细节。

Hacker News 最新mococa2026/11/8 · 5 天前30 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

A music player for the Mac (macOS 26 or later). It plays the music that is already on your Mac. You do not have to import anything.

Uses your music folders. Add a folder and your albums show at once. New songs that you put in the folder show automatically.

Plays all common formats: AAC, ALAC, MP3, FLAC, Opus, Vorbis, WAV, and AIFF.

Album covers from your music files or from the image in the album folder.

Lyrics that move with the song. If a song has no lyrics, the app finds them on the internet. You can also type and save your own, and show them in a small window that stays on top.

Similar artists. With a Last.fm account, the lyrics panel gets two tabs: Lyrics and Similar. The Similar tab shows the ten artists most like the one that plays, with the cover of their most popular song, their name, their style, and their listeners. It loads them together and keeps its shape while they arrive, so nothing jumps. Click one to open its Last.fm page, or right-click it to copy its name. Staying on this tab through songs of the same artist keeps it; a new artist brings the lyrics back.

Same volume for all songs, so you do not have to change the volume between songs.

Last.fm: keeps a list of the songs that you listen to in your Last.fm profile.

Music videos from YouTube in a small window that stays on top.

Discovery: pick 1, 10, 20, or 100 songs at random from your library, only the songs you have not played yet, the ones you played most, or the top tracks of your Last.fm artists and of your own top bands.

Play counts: every song shows how many times you played it all the way through, and you can sort any list by it. The counts travel with your music. Addicted in the sidebar (a flame) collects your twenty most played songs in one list, best first, current the moment you open it.

Playlists and Up Next (the list of what plays next). Up Next in the sidebar shows the song that plays and the songs that come after it. Add songs to it from the menu of a song; they play right after the song that plays, and many picks at once keep their order. Drag them to change the order, or press Delete to remove them. Clicking a song further down the list does not throw the songs above it away: they stay where they are, still marked as not played, and the player reaches them after the song you clicked finishes. A song only leaves the list when it played, or when the player passed it. When the last song of the list ends, or you press Next on it, the list is done and its songs leave Up Next, so Play does not start them again. Click the trash button to clear the list. After you confirm, the song stops and the player starts again with no song.

Liked songs. Like any song and find them all in Liked Songs in the sidebar. With a Last.fm account, your likes and your loved tracks stay the same list, in both directions.

Continues where you stopped. When you open the app again, it shows the same song, at the same time.

Keyboard media keys and Control Center play, pause, and change songs.

Apple Music does not open by accident while you use Overdrive.

Song details: the quality and the size of each song file.

Mp3tag: if you have Mp3tag, you can open your songs in it to edit their names and details.

Install

Install Homebrew, open Terminal, and type:

brew install --cask skhaz/tap/overdrive

How to use

Add your music

Drag a music folder to the window, or choose Overdrive > Settings > Folders > Add Folder. You can add more than one folder. The app also finds the songs in the folders inside it.

Use the sidebar to see Albums, Artists, or Songs.

Type in the search field to find an artist, an album, or a song. The search stays until you clear it with Escape, Command-K, or the clear button.

To go back to the previous screen, click the back arrow at the top, press Command-[, or swipe to the right on the trackpad. To go forward again, click the forward arrow, press Command-], or swipe to the left. The side buttons of a mouse also work.

Double-click a song to play it. On an album, click Play or Shuffle.

Click a column title (Title, Artist, Album, Time) to sort a list. Click again to reverse the order, and a third time to go back to the order of the list. When you leave a list or quit the app, the list goes back to its own order.

Albums go from the oldest to the newest.

Use the bar at the bottom to play, pause, go to the previous or next song, shuffle, repeat, go to a different part of the song, and change the volume.

Click the cover or the name in the bottom bar to open the album that plays.

The song that plays shows in color and is selected in the list.

The Discovery menu at the top of the screen has five pickers, each with 1, 10, 20, or 100 songs:

The two Last.fm pickers open the Up Next page the moment you click them and show a spinner in the middle of the list when they take more than a fifth of a second, so you can see that they are working. When a picker adds nothing, the list says why in a line at the bottom, and you clear it with its x. The app puts the chosen songs in Up Next and plays the first one right away, then opens the Up Next page so you see the list. What was in Up Next before goes away. A new discovery replaces the one before it, also while one is still on its way: an answer that arrives late is dropped, and the list you chose last is the one that plays. Each local picker shows how many songs it can pick from, and a value that needs more songs than that is dimmed, so you never get a shorter list than you asked for. The pick never follows the search: it reads the whole library.

Infinity is the endless mode at the end of the same menu. Turn it on and the app starts a list of 20 songs and keeps 20 more queued for as long as you play: every song is one you have, drawn from the five most played tracks of an artist of your library that Last.fm ranks highest, and a new batch is asked for quietly when the song that plays reaches its half. You never see it work: the songs go to the end of Up Next, the one that plays is never touched, and the list is never reordered. An artist whose songs all played leaves the draw, so nothing repeats before your library is empty, and then the cycle starts again. Turn it off, or start any other list, and the mode stops; the songs it already queued stay in Up Next.

Banned Songs is in the sidebar, under Liked Songs. It lists every song you banned, and it is the way back in: select the rows and press Delete, or right-click them and choose Unban Song in Discovery. Only the ban goes away, never the song, its tags, or its place in your library. The list lives in Bans.plist next to your likes and playlists, so it travels with the folder.

The two Last.fm pickers and Infinity need the Last.fm key built into the app and your account connected in Settings > Last.fm. Without either one they are dimmed, and Top Bands is also dimmed while no song has a count. Every click asks the internet again; the app keeps nothing from Last.fm on the disk. The artists are drawn at random from five times the number of songs you asked for, so the same names do not always win. For each artist the app asks Last.fm for the artist's most played songs and keeps the ones your library really has. Last.fm ranks its own list by how many people listened, not by how many times a song was played, so the app asks for a wide page of 20 and keeps the five with the most plays: if you have only one of them, that song goes into the list; if you have more than one, the app draws one of them at random. An artist whose top five you do not have at all is skipped, so every song of the list is one you have. It asks for four artists at a time, so a discovery of 100 songs is many requests, and Last.fm answers too many requests from one address for a short while with an error. When that happens the list is simply shorter, or empty, and the app changes nothing and says so in the log. While one of them is on its way, both are dimmed, so you do not spend two searches at once.

A song matches a Last.fm title by name: the app compares the letters and digits of the two names, so accents, case, punctuation, and spacing make no difference, and it takes the title when the names are at least 80% alike. A long suffix is a different song: "Come As You Are" does not match "Come As You Are (Remastered)", and "Sandman" does not match "Enter Sandman", while "Sandman" does match "Sandmen". The app plays the name your library has, not the name Last.fm sent.

Every song shows how many times you played it. A play counts when you hear about 80% of the song, so a song you skip halfway does not count, and a song that reaches its end always counts. The number is in the Plays column of Songs, Up Next, your playlists, and Liked Songs, and next to the time of each song in an open album. Click Plays to sort by it: once for the least played first, again for the most played first, a third time for the order of the list. Never Played in Discovery is the same count: a song with a number above zero never shows there.

The counts live in a Plays.plist file at the root of your first music folder, so they move with your music. A count is for a song, not for a place on the disk: the file knows a song by its name, album, and artist. If you change the album or the artist of a song, its count starts again at zero. The app writes the counts once an hour and when you quit, so a crash can lose the plays of the last hour.

Right-click a song, an album, or the bottom bar. You can:

Add to Up Next (the songs play next, right after the song that plays).

Copy the song name, the artist, the album, or "Artist - Song Name".

See the Information of the song file. Click an item to copy it.

Ban Song in Discovery (or Unban Song in Discovery for a song you already banned). The song stays in your library, stays in every list, and plays whenever you choose it, but no discovery and no Infinity picks it again. The app asks you to confirm. The item is in the menu of every list of songs: Songs, an album, Up Next, a playlist, Liked Songs, and Banned Songs.

To do this for more than one song, select the songs with Command-click or Shift-click, then right-click one of them.

Click + in the sidebar, or choose File > New Playlist.

Right-click songs or albums and choose Add to Playlist.

Drag the songs in the playlist to change the order.

To remove a song, right-click it and choose Remove from Playlist, or press Delete.

To delete a playlist, right-click it in the sidebar. The playlists live in a Playlists folder inside your music folder, with a backup copy, so they move with your music.

Click the heart in the bottom bar to like the song that plays. You can also right-click any song or album and choose Like Song. A heart shows next to each liked song in the lists.

Click Liked Songs in the sidebar, below Songs, to see all liked songs. To remove a like, right-click the song and choose Unlike Song, or click the heart again while the song plays.

If you connected your Last.fm account in Settings > Last.fm, your liked songs and your Last.fm loved tracks are the same list. A like you make in Overdrive goes to Last.fm. A love you make on the Last.fm site, or in another player, comes to Overdrive.

A like you make in the app is on your disk at once and on its way to Last.fm in the same second, so it is there with or without the internet. With no Last.fm account connected, a like is only a liked song in Overdrive: no request, nothing kept for later that could grow. The moment you connect the account, the app sends the likes you made and brings your loved tracks down. With no network, the like waits in a queue on the disk and goes up the moment the network comes back; the app also retries it by itself every minute, so it never waits for the next sync. A like leaves the queue only after Last.fm answers that it took it, so an error page or a server that is down never counts as a success.

The app syncs when it opens, every minute, when the network comes back, and when you connect y

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →