Given that RP2040 needs external flash, I'm quite worried about the performance when pulling uncached code from it (on top of using M0 core - I'm used to M4 by now). I know the MCU has 16kB of cache, but my firmware for which I'm still deciding on whether to port it to RP2040 or not is about 80k. Does anyone here has some real-life data on this?
With 80k of firmware, you can just put it all in RAM ;)
The M0 is not much slower than M4 when running at the same clock, and the RP2040 can run quite fast. Of course it's different if you comparing to M4F and need float32.
If you end up putting code in SPI flash and you need predictable latency, you will need to put ISRs and everything they depend on in RAM [0]. However, if you don't need down-to-microsecond latency, then it's just fine.
Sourceforge was pretty big at the time. And they lacked git support for quite some time. Github basically burried them by the time they figured out they had a problem. Of course it still exists but it's not a very obvious place for people to park their code at this point.
(Author here). Because the firmware size is about 70k right now for AVR, and ATmega32u4 has only 32k of flash. Black Pill STM32F4 boards are supported though, and soon 3 more STM32 boards.
I sigh every time someone says deadbeef is great alternative to foobar2000. The greatest thing about foobar2000 is media library which deadbeef doesn't even have. Actually, no other player on the planet can compete with foobar's media library. I'm not sure what kind of magic it uses, but the second I put new files in directories where my music is, foobar2000 sees it and I can access it in foobar. Sometimes, I listen to a random track and decide I want to hear everything from this artist that I have in library. I press 'a' on a selected track and I see everything from this artist. I press 'A' on a track and I get everything from this album. I press 'q', type few letters in search bar, press enter and I get new playlist with the results. I press 'o' on a track and it opens a file explorer in the location where the track is located and it also selects it. Quite useful if I want to move it somewhere else or copy it or rename or whatever. These are all my custom shortcuts but I love the fact that you can assign shortcut to virtually anything. There's also tag editor and format converter. There's also really cool feature that you can queue any file you double click in file explorer in its own playlist (I call this playlist Inbox), so that the playlist I'm currently listening is unmodified.
Closest thing I found on Linux is ncmpcpp and it's still a far cry from everything I can do in foobar2000.
This thread for me exemplifies the glory and frustration of the Linux application ecosystem: numerous recommendations for obscure apps that fulfill a basic function. No obvious answer. I use a different solution from all of them, and it's fine, but who knows which ones will be supported a year or two from now. It's great that there are many viable options, and depressing that they are so fragmented and hard to discover.
Closest thing to foobar2000 is Clementine, an Amarok 1 fork...
The media library features are almost as good, if not for a nasty bug where using the filter in the library "tree view" can lock the app for many seconds for no reason. The normal search window/panel is not affected and is always instantaneous tough.
I've tested dozens of media players on linux, most choke on my huge library, but clementine is perfectly capable. It also has the same feature of adding new files automatically via inotify, along every other functionality you specified in your post!
It also seems to be lacking maintainers.. it has been on the same run of rc releases for years now! That means that bugs have creeped up unfortunately, but honestly, nothing better for people who really cares for their oversized music library.
There's https://www.strawberrymusicplayer.org/, a fork of Clementine, apparently created due to Clementine's inactivity. I've used it on and off on MacOS, but had some nasty locks which crashed the application.
But speaking of Clementine: I'm amazed that development seems to have picked up again, commits are happening on Github ( https://github.com/clementine-player/Clementine)
Last time I checked the repo it was silent.
Yeah, i used qt6ct to setup a dark theme.
Only, parts of colors are applied on my arch system.
The funny thing is it looks good, while qt6ct is open.
when i close qt6ct, it reverts to a mix of colors from the theme and the default colors.
I would agree with that, and indeed I used it for many years, were it not for it's performance. It's just atrocious under a big library. I would constantly get assaulted with what I could only assume were garbage collection pauses, the interface would constantly freeze in the most inopportune times.
It also had a pretty silly bug that went unfixed the entire time I used it where it would (rarely, triggered while moving around the playlist) say it's playing song X but in reality it's playing song Y.
MusicBee whips it, and all the other Amazon 1.4 forks. I was a massive Amarok 1.4 fan, and I think MusicBee is the dog's bollocks. On Linux, you need to install via wine though. But it's rock solid. You need to go for the 3.0 release though - after that, drag ordering of files doesn't work in Wine. There isn't a compelling reason to use the latest version anyway.
On Linux, you'd have to do some kind of GNOME integration I am not familiar with. The Windows shell integration is a very handy API, although you have to do the usual digging for explanations and examples.
You know, it bothers me so much when this shows up as a criticism. You didn’t say it as one, but when I released the Q platform, for social networking apps, which we worked for years on since 2010 and earlier, people told us “rename your library, there is already a famous library Q for promises”.
Well, now promises are native and that Q library isn’t a big deal.
But meanwhile I had to constantly defend with logical arguments, until I gave up and had our team overhaul the entire codebase and marketing JUST so the very vocal squeaky wheel developers could get past the naming issue and focus on what the actual benefits of the platform are.
I've never heard of your "platform." I've heard of the Q promises library.
At some point isn't it just easier to recognize that choosing a name requires some basic amount of due diligence? I've helped choose names for multiple products, in every case we had to put some thought and research into it.
> But meanwhile I had to constantly defend with logical arguments
There's no "logical argument" in this case. You're confusing rhetoric with logic.
But, at the same time, sometimes when dev-teams build a system/product named after a single short common word (Looking at you, go!), or a single letter, it gets to be hard to search for and find relevant results. (The "go-lang" convention didn't get widely adopted/used until go had been out there for a while).
At my previous job, "Formatting" task was the first thing pipeline did. It was really simple - it ran the same "make format" target you could run locally, except it was configured in a way to fail if running "git diff" afterwards resulted in any changes when running on the build server (git diff -s --exit-code). Of course, when this failed, none of the other tasks in a pipeline ran so it forced you to format your code correctly if you wanted to see build results. You could just commit the next commit with "formatting" message but the idea was to just change the history since commiting was happening on dev branches - only when everything in the pipeline passed things could be merged on stable branches.