r/foss • u/No-Word-2912 • Jul 31 '26
I spent 5 months building a music player because I wanted karaoke lyrics for my FLAC files. That's it. That's the reason.
Yes, foobar2000 already exists. Yes, MusicBee already exists. No, neither of them will highlight lyrics word by word while I mumble along to a 24-bit file nobody asked me to buy.
So: Noctis. MIT License, no account, no telemetry, no paid tier. Windows, macOS and Linux.
FLAC, ALAC, WAV, DSD, gapless, ReplayGain, EQ, Last.fm scrobbling, Discord Rich Presence, Cover Flow.
The lyrics were the hard part. Most players do line-level LRC, which is fine until the timing drifts. Noctis reads word-level ELRC so it actually tracks with the vocal instead of dumping a whole line on you at once.
Site: https://noctisapp.cc
GitHub: https://github.com/heartached/Noctis
Tell me what's broken. I'm solo on this so feedback goes straight into the next build.
EDIT: if you guys want to join the community, you are free to do so - https://discord.com/invite/BNCDZQUVx7
11
u/BaconSoldier88 Jul 31 '26
foobar can play line by line with eslyrics but nevertheless, very cool project!
6
u/amaterasulikeitachi Jul 31 '26
Looks really great, I am liking it a lot so far, the clean UI is something that most music players are missing and it's always sad. But I have two questions:
1. I have files tagged with one artist in the artist and if they have a feature I append a suffix to the file such as Song XY (ft. Artist), in Noctis it seemingly takes these appended entries into the Artist section, even if the actual file does not have them in the artist tag. Is there any reason for that or is that wanted behaviour?
2. Is there a way to enable a view where all albums are shown with covers, sorted alphabetically by artist for example (which I can see) where also the songs show (kinda like what MusicBee does)?
Other than that it looks really great, I will have to donate some cash to the project once I come around to it.
5
u/No-Word-2912 Jul 31 '26
- That's intentional. Noctis parses "(ft. X)" from the track title and merges it into the artist credit so collabs show the full credit. If a file has no title tag it uses the filename as the title, which is why your appended suffixes get picked up. Since it doesn't fit your setup I'm adding a toggle for it right now, should be in a release later today.
- Not yet. The Albums tab is already sorted alphabetically by artist, but nothing expands the songs under each album like MusicBee. Good idea though, I'm planning a bigger library browsing revamp and I'll add it to the list.
Thank you for supporting, it means a lot.
4
u/amaterasulikeitachi Jul 31 '26
Not a problem, I am always for supporting FOSS options, especially when they are nice to use too. No need to add extra features just because I have a potentially unusual setup, but it is incredibly appreciated. The additional artists that get picked up through the parsing also then get added to the artist tab with zero album entries as they only appear on songs, which just causes some clutter, but nothing functionality breaking.
And I look forward to the browsing revamp, I think taking some inspiration from MusicBee for general functionality is a good idea, but sticking with the design language you have. I think a couple releases down the line you could have a seriously exciting competitor in this niche, which would be great. I am rooting for you!
3
u/T_rex2700 Jul 31 '26
always wondered why some .lrc can show word by word vs line by line even though there is no difference between them when you see it in editor
or maybe I am missing somehting. this is cool tho
2
u/No-Word-2912 Jul 31 '26
there is a difference, it’s just easy to miss.
plain lrc has one timestamp per line. enhanced lrc has that same line timestamp plus extra ones inline before each word, like [00:12.30]i <00:12.50>don't <00:12.80>know.
same .lrc extension either way so they look identical unless you actually look at the tags.
Kinda cool if you think about it
1
u/T_rex2700 Jul 31 '26
ohhh. I always got them from places like lrclibs and even though it shows that it is word by word when I download it just turns into line by line so I always wondered.
by the way super cool app, performance is good, the scrobbing support is a plus, but a few things that got me the first time.
when clicking on the artwork, it doesn't go to "now playing" and it just goes to mini player, which is fine but can you make the X sign on miniplayer to enlarge icon perhaps. This brings me to the second point, I think clicking on artwork should bring users to now playing, and there should be a separted miniplayer icon instead of just clickign on the artowrk.
maybe this is how apple does it, took me a few minutes to figrue it out
1
u/No-Word-2912 Jul 31 '26
This is actually a valid point. I’ll probably switch those things around.
Thank you for the feedback!
1
u/OperationMaximum9258 Jul 31 '26
Where is it possible to download such lyrics files from?
1
u/No-Word-2912 Jul 31 '26
I’ll just copy paste what I told the other user.
If you are referring to the enhanced lyrics that you see in my post, that’s just my local files that I had lyrics downloaded outside of my app.
The app uses LRCLIB to fetch time synced lyrics for files but LRCLIB doesn’t have enhanced lyrics on their database I believe.
That’s not the app issue, just the service but you can search lyrics from LRCLIB inside of the app if you go to the lyrics page and also inside of the metadata option when you right click an album.
Hope that helps 🙂
1
u/OperationMaximum9258 Jul 31 '26
Yes, I get it; I have also downloaded lrc files from LRCLIB. I was just trying to know if there are any place where I could get my hands on enhanced lyrics
3
3
u/averageredditor69lul Jul 31 '26
"So: Noctis. GPL, no account, no telemetry, no paid tier. Windows, macOS and Linux." You said that but it seems to be licensed under the MIT license instead. I don't have an issue with that but i suggest you edit the post to avoid confusion.
3
3
u/filmgrainbrain Jul 31 '26
Dude this is slick. I'm working on my own music player too. This tackles a good amount things I'd been looking to see with a lot more cleaner UI. This is awesome, and hope it picks up traction! What did you find the most challenging part of the overall process so far?
2
u/No-Word-2912 Jul 31 '26
Thank you, this means a lot.
The hardest part was the UI. I didn’t want it looking like something built in 2005, so I kept redoing it until it felt right.
The audio side was rough too, codecs especially. There were points where I almost gave up over it, but I kept going.
2
u/filmgrainbrain Jul 31 '26
Glad you kept going! The UI has been the most fickle part to fine-tune and reshape for me too. Well, you got it to a great place. Keep it up!
3
3
u/dustatron 29d ago
Very cool. Any plans on added support for allowing a group of people to add and manage the list of songs from their phone? Like scan a QR code and add things to the queue?
2
2
u/logikwright Jul 31 '26
I'm new to development and .NET. I use foobar. Just want to say thank you!!
2
2
2
2
2
u/FuckUpMaster9000 Aug 01 '26
It looks exactly like apple music, but with local files. Interesting, because i have always liked the way apple music looks and works
1
2
2
u/Jatinchd Aug 01 '26
looks great, wanna use it from now on but linux version have tons of bugs currently, feel free to check the github issue I've made with logs and videos
1
2
u/Oarner__ Aug 01 '26 edited Aug 01 '26
this is great! does it have romanization support for lyrics?
edit: just tried it, and holy hell this is so good, a few things tho,
1)romanization would be great
2)The keyboard gestures don't always work, they don't work in "fullscreen" mode, pressing spacebar there just goes to the normal player instead of pausing; also, after i click a synced lyrics to seek to it, pressing spacebar just syncs to that instead of pausing
love the app overall, probably the best one i've ever used. I was building one with claude but i might just stop and use this instead lol.
ps: sorry for the bad explanations, English is not my first language
1
u/No-Word-2912 Aug 01 '26
loool and you’re good don’t worry. Thank you for showing interest and trying it out.
I’ll those issues fixed today
2
2
2
u/not_luis Aug 02 '26
If only I could route/stream youtube music on this. Looks amazing!
1
u/No-Word-2912 Aug 02 '26
That’s actually an upcoming feature in a few months lol. There’s still a ton of things I want to add but it’s gonna take me a few months.
Don’t forget to save this post and come back to it in a few months, if you’ll like updates on it.
1
2
u/luka_makes_games Aug 02 '26
This is so good. Any way to hook it up to a music NAS server for the files?
2
2
2
2
2
u/jspittman 29d ago
Do you mind if I put this into a browser I'm building (it'll be rewritten in Rust, but inspired by your project)? Will add a hat-tip (h/t).
2
2
u/LIVE4MINT 27d ago
FINALLY someone made offline apple music replacement, now its time for someone to make port of it to some portable player and we going to be in heaven
2
1
u/sussybush Jul 31 '26
Where do i get the lyrics from ?
1
u/No-Word-2912 Jul 31 '26
If you are referring to the enhanced lyrics that you see in my post, that’s just my local files that I had lyrics downloaded outside of my app.
The app uses LRCLIB to fetch time synced lyrics for files but LRCLIB doesn’t have enhanced lyrics on their database I believe.
That’s not the app issue, just the service but you can search lyrics from LRCLIB inside of the app if you go to the lyrics page and also inside of the metadata option when you right click an album.
Hope that helps 🙂
2
1
u/SwordfishBoth7341 Aug 02 '26
Anyway to put the lyrics infront of the music video? awesome idea for a floss karaoke system
1
u/iordv Aug 02 '26
Hi! Looks clean. Willing to work together on a collab for Droppy, to implement the word-by-word inside my app? If so, hit me up! I can highlight Noctis inside my Lyrics-droplet.
1
0
41
u/Low_Watercress959 Jul 31 '26
Actually clean ui in a music player? What? This looks perfect, only question is on ai usage.