top | item 17133531

Show HN: Nighthawk: A stealthy, simple, unobtrusive music player

64 points| quantummkv | 7 years ago |github.com

97 comments

order
[+] tambourine_man|7 years ago|reply
As a developer I completely understand the appeal of Electron. I love web technologies and targeting 3 platforms at once is amazing.

As a user, I simply won’t accept it. Platform integration is suboptimal at best and resource usage is preposterous.

If this is the future of desktop software, and it seems like it is, we have got to find a better solution.

There has to be a way to share the rendering engine and Node process among the many Electron apps that are proliferating on the user’s machine.

[+] yoz-y|7 years ago|reply
Would sharing help a lot though? DOM will still eat up a ton of memory and windows are each using a separate process. I have not done this for a while but a year or so ago communicating between two windows in an Electron application was insane.
[+] onion2k|7 years ago|reply
There has to be a way to share the rendering engine and Node process among the many Electron apps that are proliferating on the user’s machine.

I prefer it when one app crashes it doesn't kill a bunch of others.

[+] jbergens|7 years ago|reply
The rendering engine in Windows is accessible. It has not been as advanced as V8 but it is getting better and that means you can, or will soon be able to, create an app with html+css+js and run it on Windows without downloading a full engine.

For the more common solutions I think computers already have enough memory to handle this. The boot time is a bit too long but if each app uses 200-300 MB does not mean _that_ much when the computers have 8 GB or more.

[+] benbristow|7 years ago|reply
Don't use it then, simple.
[+] roryisok|7 years ago|reply
I'm typically the defender of electron on these threads. I think its a great way for devs to get an MVP out there quickly. But there is a time and a place for electron.

electron good - IDEs, markdown editors, visual git clients, things that are front and center

electron bad - music players, tray notifiers, app launchers, things that work in the background

On windows and mac I use foobar for music and greenshot for screen grabs because they use minimal resources.

[+] quantummkv|7 years ago|reply
The main reason I went with electron is that fantastic system tray integration. System tray integration with the native .Net is an unholy mess. The windows 10 UWP apps do not have a way to integrate with the taskbar. WPF requires interop with win32 code or a half baked 10 year old depreciated WinForms component.

And none of the native solutions allow me to shape and design the UI like I want to without compromises.

Electron may not the best in every aspect. But it was the only sensible and feasible choice for what I wanted my app to behave like.

For me, a small performance hit is justified for being able to make exactly what I want.

[+] lediur|7 years ago|reply
Having used foobar2000 for many many years, I've loved its power and customizability, but I do wish that there was a modern way to customize its UI.

The basics are simple, but if you want to do styling tweaks or anything approaching a "custom" UI, you need to start hacking away at an obscure C++ SDK or an even weirder mishmash of GDI+ and old JavaScript.

If there was a modern and easily customizable frontend to foobar2000's core audio and media library engine, I'd be in love. Something like Zeit's Hyper, but for music. I'd be willing to trade off Electron resource usage if it meant I could set up the UI just how I like it.

[+] cageface|7 years ago|reply
I’m a very happy user of swinsian on the Mac.

https://swinsian.com/

Between that and xld I don’t feel like I’m missing foobar too much.

[+] wst_|7 years ago|reply
So now Foobar2000 is available for Mac? Mister, you've made my day! It's only beta from what I see but I am going to try it anyway. Thank you.
[+] zabana|7 years ago|reply
I see a lot of negative comments on these electron threads (rightfully so, especially if one cares about resources / performance). Question is: what other frameworks would you recommend for developing cross-platform desktop apps ?
[+] cjslep|7 years ago|reply
Qt is pretty good and has been around a while. The criticisms of it are well established and known, too. Which should make it easy to evaluate.
[+] ms013|7 years ago|reply
I don’t have a good answer to the framework question, but I do have an opinion about cross-platform. Why make cross-platform a priority over efficiency and user experience? I bounce between Mac and Windows daily, and my least favorite apps are those that try to run on both. They are often resource hogs and provide a UI experience that feels worse than native apps. Electron apps have the least bad UI experience, but are resource hogs. One app I use for work, Mendeley, uses Qt for its UI I believe, and it’s garbage on both platforms- so I use the web interface instead. Give me a good native app instead of a suboptimal cross platform one.

I often think the issue isn’t cross platform though: it’s that there is a cohort of developers who know a toolchain (JS+web), and use frameworks that let them live in that instead of investing the time and effort to learn how to write an app well using a toolchain not built for those focused on web/browser models of programming.

[+] chasote|7 years ago|reply
Yes, I am new to all of this so I see the electron hate because of the resource usage but then never see any meaningful discussion on what people would rather be used.

It seems to be this Qt thing which appears to have it's own tradeoffs (which are?) and then...is that it? So is it going to be a case of not having any cross platform desktop apps or having something that uses 2-300mb of RAM that developers won't give you street cred for?

Maybe the focus should be on making electron more performant. Sounds like MS has found a way to do it with VS Code so doesn't that sound like a better alternative than to not have any cross platform apps?

[+] cift|7 years ago|reply
Proton native and Vuido look pretty good if you want to stick to JS. Not sure about the performance though but I like the idea
[+] Something1234|7 years ago|reply
Has anyone else tried deadbeef? It's one of the lightest players I've ever used. It's very bare bones.

http://deadbeef.sourceforge.net/

[+] KozmoNau7|7 years ago|reply
I'm very partial to Quod Libet. It is utterly flexible and has probably the most powerful tagging engine of any media player. Customizing it just right takes a little bit of work and is a little bit arcane, but once it's there, navigating a huge library of music is completely fluid and intuitive.

https://quodlibet.readthedocs.io/

[+] crtasm|7 years ago|reply
I don't play music from my Linux machine often, but when I do it's from deadbeef. Big view of the current playlist, tabs for others and keyboard shortcuts for playback control works for me.
[+] cift|7 years ago|reply
Something something electron bad
[+] designcode|7 years ago|reply
One of it's key features listed is 'Highly Efficient.'
[+] dmitrygr|7 years ago|reply
WinAmp can hide in the tray too, and uses 3 (!!) orders of magnitude less RAM than this. I know it is not new and shiny, but it still works well.
[+] gilmi|7 years ago|reply
Nighthawk looks very nice!

However, I found out that for me tui is where it's at for music players. Using cmus combined with a drop down terminal such as tilda or a tiling windows manager is the most comfortable i've been with music players.

[+] giorgosts|7 years ago|reply
You can't throw folders with subfolders at it to make a playlist out of them. The music files have to be in the same folder. Where's the unobtrusive in that if I have to create my playlist first?
[+] quantummkv|7 years ago|reply
Thanks for pointing that out. I tend to curate my library as a playlist itself without sub-folders so I never gave a thought to it. I am working on a playlist system after all the feedback i got. Will definitely look into the sub-folders way.

Oh, and unobtrusive is for the fact that the player stays completely in the background without a single notification or interruption to your work.

[+] v-yadli|7 years ago|reply
hey is anyone interested in building a modern frontend for Foobar2000?

edit:

I think from the Foobar2000 sdk alone, you'd see how advanced that thing is.. I mean, extension points everywhere, dsp plugin support, built-in query & library management, codecs, gapless processing, all of that written in a scalable & native architecture.

It truly lacks a proper UI toolkit though. The current options are quite outdated that I'd rather fall back to the default Win32 UI.

So, Electron frontend + C/S communication with Foobar2000? I'd totally buy into it.

[+] quantummkv|7 years ago|reply
Internally, both foobar2000 and Chrome/Electron use ffmpeg for audio processing and codec support. The web audio api allows for writing all sorts of equalizers and audio processing effects.

Extensions and query and library management can be coded in JS easily, like VSCode, Hyper and others do.

Electron frontend communicating with foobar2000 sdk for every little interaction will lead to a huge mess of performance and latency issues. It's better to rebuild the whole thing in electron instead.

[+] dvfjsdhgfv|7 years ago|reply
> Finally after months of development, procrastination and a complete rewrite, the First stable release is out

It's a good occasion to change the "Hello world" window title.

[+] antihero|7 years ago|reply
Is there a subsonic interface/client that integrates nicely natively? Having to have it in a browser tab and not having music hotkeys is kind of a bitch.
[+] Dolores12|7 years ago|reply
I just tried it and compared with Winamp 5.666 - 10mb download, 14mb memory footprint.
[+] rootlocus|7 years ago|reply
It doesn't seem to work with flac and wav files. Tried on windows.
[+] quantummkv|7 years ago|reply
It currently only works with mp3, wma and ogg files. Flac had some codec issues when I checked it in the beginning. Might have changed as I recall chrome having done something in this regard.

Will definitely check if the new versions of electron support it. If it does support flac, I'll get it working on the next release.

[+] Rjevski|7 years ago|reply
> Unobtrusive

Well besides eating half your RAM and melting down your battery.