4.0.0 LOVE IS GONNA SAVE US EDITION
kew 4.0 brings ASCII visualizations and a redesigned audio module. There's also a discord integration, kew play <path> command, support for macOS media keys, AIFF support and more.
kew now has an official Arch Linux package and will soon also be on Android (Termux).
I want to take this opportunity to thank the package managers who showed up out of nowhere and were brave enough to support this project very, very early on, when it was just a piece of shit with some cool ideas. People like Matthias Geiger who maintains the packages for Debian, Ubuntu, Raspberry Pi, Kali and others. Agustin Ballesteros and Matteo Giordano for the two AUR packages. Yuri Victorovich for FreeBSD. Brett Carlock for Alpine Linux and all the others.
Now we also have Robin Candau on Arch Linux helping us. Thank you to you all and thank you also to all the others that I haven't had much contact with but we are very thankful to you as well.
Check out the Chroma Demo here: https://www.youtube.com/watch?v=Ql5ZKeaX2MQ. Benny Benassi is not affiliated with us.
- Ravachol
Enhancements
- The audio subsystem has been reworked and improved structurally, which among other things should make the audio smooth when the computer is under heavy load. Lots of functions were removed/unified, and some issues fixed. This should make the flow of the program easier to understand for other coders as well. Please help us by reporting any issues with audio.
Everything to do with playing audio is now behind a facade: https://codeberg.org/ravachol/kew/src/branch/main/images/kew_architecture.png.
These changes were made to reduce the occurence of stuttering:
-
kew now runs as a realtime scheduled app (SCHED_RR), but at a low priority.
-
miniaudio period size increased to 200ms and number of periods to 4.
-
much cleaner decode and audio callback logic with no locks.
-
Chroma ASCII Visualizations.
This adds cool new ASCII visualizations to kew. It is not baked into kew and doesn't add bloat, but runs alongside it. So it requires that you install chroma separately if you want this. Chroma can be found here:
https://github.com/yuri-xyz/chroma.
Chroma is started from within kew. Just switch to track view and press c to cycle through visualizations. Press b to disable.
Thank you @yuri-xyz for helping out with this.
-
Discord RPC integration. by @ravachol and @chrontax. Suggested by @Chmosha.
-
kew play <path> <path2> command. by @Overionised. Suggested by @amigthea.
-
You can now dequeue m3u playlists and they are sorted first. By @feng1st.
-
Lyrics page now centers the current lyric once it reaches the center of the screen. Suggested by @flashfire1001. Implemented by @Moksh-Parikh.
-
Smoother gradient for non default sized spectrum visualizers. By @ravachol. Suggested by @Saijin_Naib.
-
Added a Nix Flake. By @Kolby11. Suggested by @Ultrasquid9.
-
Expandable directories in search view. By @ravachol. Suggested by @BIZZARE6.
-
miniaudio bumped to version 0.11.24.
-
Hide footer option, hideFooter=1. By @ravachol. Suggested by @gizzmoguy.
-
Hide time status (elapsed seconds, song length and so on) option, hideTimeStatus=1. By @ravachol. Suggested By: Found a guy on reddit (u/haikuosextremist) who had this hidden in his kew.
-
Add option to disable the stripping of track numbers from file names in the library: stripTrackNumbers=0. By @episvr.
-
ClearListClearsAll option, which makes backspace clear the whole playlist including the playing song. By @feng1st.
-
Non-square cover art is no longer stretched. Suggested by @that_owl. By @rudra-dhamecha.
Bug Fixes
-
Do not strip the number from a song title if it's connected to an alphanumeric character, like '10th song.flac'. Suggested by @bholroyd.
-
Fixed switching view via mouse leads to wrong view or no view is changed on macOS. By @petoem.
-
Fixed finishing a repeated playlist while in track view puts you back in library view. By @petoem.
-
Last line of lyrics duplicated in landscape mode. By @petoem. Reported by @LeahTheSlug.
-
Fixed lyrics page not staying at the last line but jumping to the top. By @petoem. Reported by @LeahTheSlug.
-
Fixed trim() segfaults on NetBSD 11 (sometimes). By @ravachol. Reported by @ktnb-netbsd.
-
Fixed side cover on library view sometimes appearing at the bottom and not centered. Reported by @LeahTheSlug. By @petoem.
-
Fixed cover not being fetched from files with uppercase extension (.MP3). By @ravachol.
-
Fixed crash when pressing enter on a different song while audio is playing on Termux. Found by @robertkirkman. By @ravachol.
-
Fixed crash on exit in Termux/Android. Found by @Welpyes. By @ravachol.
-
Improved and more efficient stripping of numbers on filenames. By @petoem.
-
Fixed segfault sometimes when pressing u for update. Found by @petoem. By @petoem.
-
Fix timestamp calculation in embedded lyrics. Found by @LeahTheSlug. By @ravachol.
-
Fix playlist not loading in correct order on startup. By @ravachol
-
Fix chinese lyrics characters not printed correctly. Found by @2863189117. By @ravachol.
Special Thanks
Special thanks to @LeahTheSlug and @petoem who have helped a great deal, and are now advisor and technical advisor respectively.