#Songo #5
1734 messages · Page 2 of 2 (latest)
I fucking love Tessa Violet
My music taste all over the place though, childish Gambino, TWRP, Abba
Hey folks, heres v0.3.3 Tina:
https://drive.google.com/drive/folders/1721ry10xuoTSClFBV7VmCZzTETO9kiqH?usp=drive_link
Change Notes:
- Fixes bug with main menu size not being applied immediately when changed in settings
- Adds Song Following this can be enabled/disabled in the settings menu, enabled by default. Now when you nav back out of a song it will keep playing and show a song panel that follows you in the app.
- Organizes/cleans up some settings
- Adds more debug info for screen resolution, orientation, and window sizes
If you get a chance to try this version out @lunar cloud let me know what the new debug info shows on your rp mini. Nothing in this update should fix your issue but the extra info should help me close in on the issue.
Last Comments:
The song follow is really fun and in my opinion takes songo one step closer to feeling like a bonafied fleshed out music player. I hope you folks like it.
Now only playing music while the app is closed and it will be my favourite app
Let's get playlists out the door first and then we can talk about background playing.
before, then after turning on force full screen and off again
If you leave force screen fit on and reboot the app does it boot broken?
the UI goes past the screen on the right on startup without force full screen
you can see it in the picture actually, the battery icon is occluded
Mr. Square is working on a web radio app, it was mentioned yesterday in this chat
Oh wow, thanks for letting me know! <3
@ocean fog if you need a tester for your web radio I'm happy to help!
Also MPD Supports web Radio
There are also a ton of radio apps for muOS
With fit full screen enabled does it boot and fit the UI fine or do you need to re-enable it?
also another question i got, are there any benefits from your custom runtime ?
Yes, Godot can't decode flac, read metadata, or stream audio from external files. I built all that into the runtime
okay thats what i thought, fuck because i wanted to use that on Linux (x86) or windows
Works fine on windows, I can send you a version. I haven't had a need to get it on Linux x86 but I can probably do that no problem
re-enable every time...from startup without force full screen it scales off the right side, from startup with force full screen it doesn't reach the right side...anything that changes the screen resolution while the app is active will make it fit after at least two resizes max
...also i got around to loading the new update on the RG35XX-H, song follow works very well in the UI, do we have any buttons set up to control or return to the following music?...maybe shoulder buttons to forward and back or some button to return to it without re-starting from another prompt?
if you want to, sure!
i tried mpd but it was really struggling to decode the streams properly, i remember experiencing some problems. I should also change my role cause i have switched to Knulli now >:)
I cant imagine why mpd should struggle on that
i more guess your wifi connection was the problem or CPU was completly used by a other application
Id also guess it's the connection, these handhelds are kind of bottlenecked with their wifi and bluetooth hardware
ill give it another try using Knulli
yup thats what i meant with wifi connection. Also Songo #5 wouldnt be any better than
Best case scenario maybe the web api has an endpoint you can hit that can limit the bitrate but that seems like wishful thinking
This problem does not cease to confound me
at this point i'm willing to just call it a loss as i feel we're troubleshooting in circles and it seems that only my device is affected in this odd case...wouldn't hurt to leave some of the functionality there for if any devices have similar outcomes but i'm fine in continuing to test from the RP35XX-H until the RP-Mini's inclusion becomes relevant again, like another RP Flip / RP5 gets brought in for testing
That's probably a good idea but it doesn't feel good haha
I've learned to triage in my line of work 😁...this feels like something that needs a deeper dive and it's largely a distraction in the short term goals
Remind what was the behavior in v0.3.0? This issue wasn't there right? Or behaved differently?
hmm im wondering godot should normally already detect what screen resolution its on, so maybe removing GODOT_OPTS could help?
0.3.0 worked, there was some jitter in the screen while scrolling, it's the only issue that persists regardless of anything i do
v0.3.0 was still forcing the resolution, I think for your case you should change the actual launch line back
So just replace GODOT_OPTS with this
--resolution ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}
And that should hopefully fix the aspect ratio issue
Yea I just noticed that lol
The -f seems like the issue if GODOT_OPTS is actually getting populated like you mentioned earlier Dia
Is there a video showing the jitter you mentioned @lunar cloud
i hadn't recorded one because i figured i could explain it in words originally when i noticed it, the screen wipe wasn't as easy to describe hence why i opted for "show", i can record a video in a bit
GODOT_OPTS=$(echo "$GODOT_OPTS" | sed -E 's/(^|[[:space:]])-f($|[[:space:]])/ /g' | sed -E 's/(^|[[:space:]])--fullscreen($|[[:space:]])/ /g')
that should work i guess
i can test both shortly, going to go eat
Thanks! I appreciate all the testing and reporting back 🙏
GODOT_OPTS=${GODOT_OPTS//-f/}
or wait that should work too lol
and that should even work when GODOT_OPTS is not set like on some systems?
ill also test godot later
i need sleep, meant rocknix
it's working fine on Rocknix with a rg35xxh, Im thinking it has more do to with the hardware
I wont say no to help investigating this though
i guess weston could be a bitch here
I dont use weston for the port, is that what your referring to?
nope
im talking about real weston and not westonpack
Well then carry on 🫡
Out of the box, Weston provides a very basic desktop, or a full-featured environment for non-desktop uses such as automotive, embedded, in-flight, industrial, kiosks, set-top boxes and TVs. It also provides a library allowing other projects to build their own full-featured environments on top of Weston’s core.
The core focus of Weston is correctness and reliability. Weston aims to be lean and fast, but more importantly, to be predictable. Whilst Weston does have known bugs and shortcomings, we avoid unknown or variable behaviour as much as possible, including variable performance such as occasional spikes in frame display time.
that is the compositor for some rocknix devices
others use sway
little reminder to make your binaries actually runable lol
@sand hemlock Ive got a even worse thing btw. Let me make a picture
GODOT_OPTS=${GODOT_OPTS//-f/}
that fixed it
yup its really the -f, just added a -f after it and it looks funny again
so the line i'm editing is 76 (correction) in the graphic right?
Ive put that on the line 72
its basically unimportant where you place it, aslong it has a own line and lower than the mod line
gotcha
nah place it on 72
added and working:
GODOT_OPTS=${GODOT_OPTS//-f/}
back to the original jitter which i'll do a video for now
can be triggered during any scrolling, just easier to show in all music but is present everywhere
That is so weird, does it behave the same if you rapidly press the dpad instead of hold it?
yeah, it's like a chance each time it scrolls that it happens regardless of how it scrolls....also if you look closely you'll see the screen elements in the top right rolling over to the bottom in the same position during the jitter, like it can't decide how to display the screen when it faults
if i had to rough estimate it's between 30% and 50% of the time when it scrolls...
i figured out i can trigger it while a song is in focus...1 sec
Interesting, I bet theres some default control mapping happening. The ui_up and ui_down controls don't do anything in that view
Im not using any kind of shader that would make the UI overflow and wrap to the top or bottom though. This has to be another rp-mini quirk
I suspect these issues will probably apply to any of these devices built for android but idk
Does it do it if you try and scroll by repeatedly flicking your left joystick down? (holding it down probably wont actually scroll)
up/down/left/right, single press or held in the music in focus have the chance of it per press, just tested various button presses, also the dim/wake causes the jitter too
That's including nav with the joystick as opposed to the dpad?
I just did some discovery on m3u playlist integration and it's looking really good. Nothing substantial is built out yet but I can convert my internal music record data into m3us and convert m3u files into music record collections.
joystick seems to trigger it at a higher rate, but yes i can use the left stick to nav
Hmm do you have other Godot ports on there? Can you try and spam dpad on a port like kobold kallista and let me know if it does the same thing? No worries if youre busy
i'm downloading it now
kobold kallista runs fine, no graphical issues, to be fair it's panel transitions and not scrolling though
Well the individual song screen doesnt have any scroll components and it happens there which is odd
i agree it's straight up weird 😅
Can you go to a song then lock your inputs with the quick menu and tell me if it still jitters with your inputs locked while pressing the dpad?
yes, just tested, replicated on the main screen with controls locked
It stays 4:3 regardless of screen aspect ratio and just scales up at best
Too much is hard coded sadly
if you are interested in having this added to the applications area on muOS when the port installs let me know, but you can steal the mux_launch.txt from flipclock directly and it should just work with the beta Portmaster
Im suspicious that this has to do with how the controls are mapped for Sdl. If possible can you try and install the oldest version of Songo available and tell me if the jitter is there? Those versions use gptokeyb strictly.
sure
monica and erica crash immediately, rita (0.2.0) runs and has no jitter
Hell yea, now we're getting somewhere
The new update is working flawlessly! Thanks again for all your effort, this thing is running smooth as hell.
I was thinking about the playlist system and wanted to share a few ideas that might make it both powerful and simple to implement.
Maybe start by adding a “Playlists” block right on the main menu, same style as the All Songs / Albums / Artists tiles. Once you select a playlist, you could scroll through your whole collection and use button combos to build or edit it:
- B + Right → Add the current song from “All Songs” to the selected playlist
- B + Left → Remove it from the playlist when editing
That keeps everything controller-friendly without needing a keyboard.
For naming, playlists created inside the app could just use generic names (Playlist 1, Playlist 2, etc.), and if someone wants to rename them, they can simply rename the playlist file on the SD card the app could pick up the new name automatically on rescan. No typing UI needed.
And on the backend, it might be best to use a hybrid format save playlists as JSON internally (for metadata, album art, etc.) but also allow import/export with M3U files for compatibility with other players.
That setup would make it easy to create and manage playlists on-device while keeping it open for anyone who wants to share or import theirs.
Just ideas, above all else thank you for all your effort as always. It's greatly appreciated!
I think youll like what I have cookin
I'm here for it all!
Small preview
Playlists will be instantiated and deleted from the settings menu. Editing them will be handled differently. Basically my working idea for editing is that I will use a similar strategy as song follow. You enter an edit mode and then a panel follows you around the app and when you select a song it will get added to the playlist instead of opening the song and playing it.
I think it will feel pretty intuitive. I will also have a quick menu option available whenever you are listening to a song that will add that song to your most recently edited playlist.
Also a quick note, I know the settings page is growing rapidly. I plan on breaking these panels into subpages accessible from a top level settigns index.
I see here a solution that could easily replace the rockbox!
Just curious and don't know if it's been brought up but will it be open source?
Im not sure yet, I will definitely be making parts of it open source. Like the godot modules I built for audio streaming and meta data reading. I dont know if I will make the whole app open source though
I dont want to draw comparisons like this, I appreciate that you like what i'm building though.
Ah k... Started wondering about additional codec support... Looking forward to it
I respect you opinion, but any reason why? MuOS, Knulli, all those projects are open source... what makes you want to make it close source?
I'll at least get ogg in before v1.0.0 I'm tempted to skip wav since metadata on wav isn't really a thing anyway
I feel pretty good supporting mp3 and flac right now, m4a would probably be a bear to add
Well look at that! I had figured trying to avoid the keyboard was quite possibly the original issue
But this seems further along than my suggestion
Awesome! 🥳
Made some more progress on playlists today, it's coming together really nicely. Does anyone use a m3u management tool I can check out? I want to be sure I build this out so it works well with external tools if need be
I never made one, I was going to try and automate it tho 😅 if you give me a bit of time I’ll knock it out in a moment
im sorry I cant be much help here, I usually download my playlist in folders so my "chill mix" is that folder
and all i had to do was just a small command RIP
…/KeepLocal/Omarchy ❯ cd Chill\ Mix/
…/Omarchy/Chill Mix ❯ command ls -1v --quoting-style=shell-escape *.mp3 > playlist.m3u
…/Omarchy/Chill Mix ❯ vlc playlist.m3u
I suppose it really just a doc that keeps the titles. I thought it was something fancy 
Yea this confirms what I was beginning to suspect, I'm over engineering this. My current working implementation moves all the meta data in and out of m3u files as well
I gotta knock that off haha
I would say just make your own playlist thing where its simply just a name of the Song
It seems to be pointers
If ~/songname.mo3
full path
I suppose if someone wanted to add a song in a different folder
It just would pull the full path ending with name
Over engineering just means you care 🎉
M3u's are universal across all system but a pita
(Is there any song limit or will Songo #5 crash when i add like 4k songs )
my mp3 player crashed horribly when i did that. I mean this got like 200x the ram but still
i'm at around 850-ish right now and i've seen no real ill affects...i've been a bit tempted to throw 50gb of music at it but all that will tell is that it breaks
sadly my stupid ass compressed most of the music so it will only be like 4gb
compressed...like down sampling or literally compressed archives?
i take it back its 128kbit
128k is at least radio-ish quality...
...to be fair the human ear can't discern much over 256k...but you really scared me there with 64k
(Im sometime listening to spotify on low settings which is 24 kb/s btw, dont hear any much difference )
I suppose it depends on what you listen to....i'm no audiophile by any measure, but my "comfortable" range is between 128k and 256k...i prefer to have variable bitrates over lossless like flac...but listening to music south of 64k is a bit too crunchy for me 😁
Theoretically it can handle any number of songs
I havent noticed any difference between my IEMs and LossLess and then some cheap headphones from amazon with lowest settings
i really need to listen to actually notice a difference
Theoratically Hmmm sounds fun
I have 1244 songs currently and no signs of stress
Everything is essentially streamed or handled asynchronously so it should be able to take anything you throw at it
not even loading metadata in ram?
Technically thats a limiter but I haven't hit that limit yet and don't expect that I will
That said I have some optimizations in mind to mitigate that if needed. I should probably see how well songo works on a half gig of ram
back to the idea of dumping 50gb of music into it 😁
I wish kindles could run godot, it would be the perfect music player at night
how so, if you don't mind satisfying my curiosity?
is it just having a thin, small, tablet that would be ideal or something more specific about the featureset in the kindle?
Eink display but with backlight together with its small formfactor?
The E-Ink is what i really like. My eyes get really stressed when looking at bluelight at night
usually those devices don't have enough juice to run anything more complicated than text though, hence the godot issues....that and people not focusing on multi-function in that form factor due to the limitations of e-ink as a display.......yeah, that's a conundrum...you could have two bespoke devices which would likely do the job better though as there isn't a lot of overlap in the two usage "modes"
Still making headway on playlists btw
Using a different image style from the dicebear API for playlist default images
figured some time was needed to implement playlists since it was outside the original scope
yeah mine just got 256mb of ram but again i mean like if it would be possible i guess it would be really nice as the Kindle is the device i carry the most around (beside my phone and School Ipad)
found a thing that "might" interest you https://www.androidauthority.com/onyx-boox-palma-2-review-3559002/
too pricey
yeah....i was trying to line up features in the scenario you described, e-ink, nearly a full android device, but not a phone...odd combo that jumped out
Also i bought a Kindle for directly not having a phone. I can read books of my phone fine its just that having one device for Books doesnt get you distracted with Whatsapp, Insta, Tiktok like that. Just a device made as a safe place which my kindle is. Listening to music while reading without anything annoying me
makes sense, nearly unplugged, just missing some ram and other features to make it a full package
also i dont see anything good on that phone lol
OH Nice this Music player can actually correctly show russian characters
interesting
that it can show russian characters or something else?
i guess when i pointed out japanese characters being absent i guess most of the other character sets were added as well
this is the only song i got that isnt using generic UTF-8 Characters so idk
3 Feature requests (sorry) : Eh going back to a song when you went out of it would be nice, setting screen brightness or not overwriting it when screen auto turn off is off and putting songs in some kind waitlist
Yep yep, if you find any languages with characters that don't render just let me know. It should have pretty good coverage though
BTW is your runtime open source?
Not yet but it will be. At least the parts I added to Aris Valdez' SDL2 branch of Godot 4.3
And for clarity that will mean the whole runtime can be built as it is currently in Songo.
The modules are pretty clean too. Essentially just wrapping industry standard c libraries into Godot flavored interfaces. Dr_flac, and dr_mp3 are wrapped into a module I'm calling UniversalStreamer though it's not very universal yet.
I guess industry standard would be more like a ffmpeg wrapper. The dr_lib stuff is great though
I might have 3.4 out today, playlist functionality is done. Im just fighting my virtualized lists now. It doesn't like having elements to be removed at runtime haha
At least not in a way that feels smooth. I can force the list to rebuild but I want the focused element to persist and I want to avoid a stutter in the UI
Oh even with a Keyboard nice!
You can push so much out of this Game engine
Godot is pretty fun
This is my other hobby project I'm making in Godot.
https://bsky.app/profile/nikisquest.bsky.social/post/3lwtqbenkh22f
I added some better lighting in this room and played around with adding terrain around the walls to make the derelict-underground-castle vibe a bit more pronounced. What do you think? I show the room in-game at the end of the video here 🙂
#godot #GodotEngine #roguelike #indiegame #blender #pixelart
@sand hemlock You are doing a game too?
i would have guessed so that you are doing games, your app is really good so i knew you arent just starting
@sand hemlock Works as developer, is building this app and a game. Does he sleeps?
I also have a 5 year old and a 3 year old, I guess I'll sleep when I'm dead?
What kind of adhd do you have 😅 kiddddding but gawd damn you’re a beast!
are you gon make themes to set full wallpapers instead of colors as background?
I've got the 20mg-of-adderal-every-morning variety of adhd
Probably not going to add full back ground images but I did put a concept image up here a while ago showing a simple SVG overlay customization
Here it is
i love you
Ok folks, I promise it's been worth the wait. Heres v0.3.4 Tina:
https://drive.google.com/drive/folders/1721ry10xuoTSClFBV7VmCZzTETO9kiqH?usp=drive_link
Change Notes:
- Adds Playlists these are driven by m3u files so you can technically create and edit them outside of the app if you were inclined. Currently the in-app method of editing playlists is through the quick menu, if you hover your cursor over a song anywhere you can open the quickmenu and add/remove the song from your most recently used playlist
- Adds "return to song" feature for song follow
- Adds song queueing, hover cursor over song while a song is playing, open quick menu and you can see the queue option
- Adds flash messages all throughout the app
- Imports now report how long they took upon completion via flash message
- Finally removes the single frame stutter on opening song lists
- Fixes screen issues / resolution problems for sm8250 chip
Last Thoughts:
- This update adds a lot of functionality, thanks to @lunar cloud we were able to squash a lot of bugs before this actual release but you may find some obscure ones.
- I will be adding more convenience to playlist editing at a later time, I feel that the quick menu method is pretty user friendly but it may not be for everyone.
Let me know what you think of this version and what I can add to make the app feel more intuitive. Next big changes will probably be a settings index page with each section broken out into a separate page.
Oh this version also enables godots low processor mode, which should make the app more energy efficient.
Basically it just makes it so the UI doesnt redraw unless something actually changed.
Theres quite a bit more I can do later to make it more energy efficient but it's not exactly a priority since consumption isn't really an issue
Unless anyone uncovers a critical bug it will probably be a week or so till the next update
I havent updated yet but thanks so much for the constant push to get new items on
I cant imagine what other items youre thinking of doing but this is absolutely a stellar project
I could ask maybe, selfishly, a toggle to keep the screen on, so when i'm driving I can see the song names
(I use the Anbernic 35XX-H as my mp3 player in the car and it fits perfectly in those phone holders. )
Thats really it. Thanks again for all!
I've considered adding that as a quick menu item
@sand hemlock Can you help me how to avoid the knulli OS and MuOS getting suspended?
I've tried a few option, but It always get suspended.
What do you mean with suspended?
I've a idea in my head what you mean but I don't know if it is what you mean
If you don't touch on the device, it will suspend after X time.
I want to disable it, on a app I'm developing (Web Radio). Otherwise, at same point, the devices stops playing.
It can be disabled under the muOS setting under power settings
This is what I use for knulli:
func set_knulli_config():
var reset_commands = []
set_input_actions()
OS.execute("sh", ["-c", "touch /var/run/battery-saver/songo.pause"])
reset_commands.append("rm /var/run/battery-saver/songo.pause")
reset_commands.append("batocera-brightness %d" % target_brightness)
create_reset_script(reset_commands)
That will keep it awake, you should implement a similar strategy that undoes this when your app closes or else you will be overwriting the users preferences
The Muos equivalent is a bit more complicated.
Heres a couple snippets from my Muos Strategy that should help you though
var config_values = {
"idle_display": MuosConfigItem.new("settings/power/idle_display", "0", "unset"),
"idle_sleep": MuosConfigItem.new("settings/power/idle_sleep", "0", "unset"),
"lid_switch": MuosConfigItem.new("settings/advanced/lidswitch", "0", "unset")
}
func set_muos_config():
var reset_commands = []
for config_item: MuosConfigItem in config_values.values():
var og_val = get_var("config", config_item.path)
if og_val != "" && og_val != config_item.forced_val:
config_item.og_val = og_val
set_var("config", config_item.path, config_item.forced_val)
reset_commands.append(set_var_cmd("config", config_item.path, config_item.og_val))
class MuosConfigItem:
var path: String
var forced_val: String
var og_val: String
func _init(path_arg, forced_val_arg, og_val_arg):
path = path_arg
forced_val = forced_val_arg
og_val = og_val_arg
I Overengineered this a bit @remote swan has a more straightforward strategy, I would reference his rockbox port code for this if I were you.
An important note though for you @ocean fog make sure whatever method you use to undo these commands can be done when the app is forcefully closed.
And if you are adjusting brightness you'll want that to get reset in your clean up script to, some cfws dont have convenient hotkeys for adjusting brightness so getting dropped back at the cfw main menu with brighness set to 0 can be an issue.
Heres some changes i'm working on for settings. A couple more color options in here for theme colors too.
@sand hemlock Thanks for your tips and advices! I will try to implement it later on.
This is looking so cool!
Uhm that didn't worked for me lol, thought it wasn't implemented or is it also disabled when I disable auto turn off?
Which part didnt work?
The snip I showed should prevent cfw sleep. Does songo go to sleep and stop playing music on your muOS device?
Yes
Sorry I should have elaborated more
Yikes that's really not good, anyone else on muos seen this behavior??
You're using the MuOS device strategy right?
Are you on golden goose or Canada goose or something older?
Songo should stay awake forever unless you specifically put it to sleep
Or if you are using the generic Linux strategy then it could time out and sleep too but the solution to that is not using the generic strategy
Do you use Songo with a different device? I feel like songo is basically unusable if the cfw sleep isn't getting disabled correctly
Let me check tomorrow, I don't know what muOS sdcards I grabbed last time
Some more changes in settings pages to show. Just curious has anyone had a chance to mess with playlists yet? What do you think?
I installed it yesterday, I tried creating a playlist but I didn’t get a pop up
I’ll double check that the folder I have had a m3u file. I’m fairly certain it didn’t nothing populated
the prompt in settings creates the playlist, but you'll need to add songs to the playlist manually, or you can create a playlist externally and place it in
..ports\songo5\conf\godot\app_userdata\Songo #5\playlists
Ahhh so then I’d have to point full directories in order for things to work
The m3u file I have just lives in the folder as ~/ but nothing more
the quick menu is how you add songs to the playlists in app, i built two playlists already, the quick menu prompt writes the song into the playlist...nice and simple but has to be manually configured
I didn't really consider that someone would want to create and edit a playlist completely outside the app. In theory it's pretty easy to edit it outside the app after creation
You definitely can create and organize it or whatever outside the app but you'd need to drop it into that playlists directory that Hades mentioned
Also manual creation would skip getting a default image from the dicebear API
But thats fine you can add your own image too
I'll mull this over and figure out a nice way to let people use m3us stored anywhere with relative paths
The complication with relative paths arises if a user is using several music directories and tries to add a song to a playlist that the user created manually inside the other music directory. Then I would either need to default to using the absolute music path or find the nearest directory ancestor looking up higher than the selected music directories
Defaulting to absolute path is probably fine if the use case is more centered on importing an existing m3u you use in your personal collection.
sounds like there's no good answer for externally made playlists...i like the system currently in place for my 2 cents
Idk I can add an "Import" where you point to an externally made m3u and it build an internal m3u from it. That's the lowest effort fix
I just wasn’t sure how it’s handled. I think since I can automate making the playlist externally and by folder , it’s fairly easy to pop together a playlist for my folders that are organized as their own mixes
Now that I know where the playlist directory lives, I’ll test making one and just adding the rest externally
But I don’t think this is a flaw or anything, it seems it was simply recognizing that the m3u files need to live in a particular folder
I'm on goose. So I guess that's the issue
Is your battery capacity also borked
Nope
Nope, I'll firstly update to the newest version of Songo#5
If you update songo and still have that issue I'll flash goose to my spare rg35xxh and see what's up
Golden goose and Canada goose have been tested and shown to have the cfw sleep and idle timer disabled correctly. I havent tested goose specifically so it could be a minor change in the version causing an issue
Don't need to, I should have just upgraded
I might do it anyways, I assumed it would work fine on goose. Id like the advanced feature support to go back to at least the start of goose for muOS
there was a major change to internal structure from goose to canada goose
PERFECT MUSIC PLAYER LOL
You can also play music for around 8hours on the RG35xx devices
Maybe even more if I activated auto screen off
that's kinda wild honestly, certainly in the range of digital audio players normal operation range
Honestly there's some more tweaks I can make for efficiency too.
Have you folks been experiencing crashes at all? If so, how frequently?
Im on the version before the playlists and it played for many hours straight without any Crash... I've noticed it playing at 22:00 when I wanted to go to sleep
Is it possible to integrate subsonic servers into this?
By that I mean would it be possible for you to support connecting to a subsonic server (IE navidrome) using this and stream/download music
Isn’t navidrome a player already ?
You could push .mp3 to the drive OR you could ssh and mount the directory you want to use then select as the folder you want scanned (would only work while you’re at home )
Both are logical ways to make this happen
MPD Supports subsonic if I'm not wrong
Navidrome is just a server, you need a client to access it
Yeah MPD Supports it
Good to know
Had you not mentioned it I would’ve never looked into subsonic 😅
I had been doing the cross server syncing using syncthing as the service
That would push all my music folders to my device
I wasn’t aware something like subsonic made this possible as well. Seems like a similar premise as syncthing for music.
The more you know.
How do I go about adding it?
I’m actually able to tinker with it now
Also is there any way to make themes out of custom colors
I have a blue rg35xx SP
I’d like for the ui to match the shell
It’s in the settings portion, you can change colors there
Uh idk right now but you should be able to edit the config
There’s no blue option tho
Now using my TV lol
There's a blue option in the next release, I'll probably have a setting for custom colors before long too
Kk
I'll look into subsonic but I can't promise anything
this app is goated
Thanks! Sorry development has slowed down a bit, holidays are keeping me busy.
still doesnt stop it from being goated
made a quick script that will autogenerate a playlist
#!/bin/bash
mixroot="/userdata/music/Mixes"
plistroot="/userdata/roms/ports/Songo5/conf/godot/app_userdata/Songo #5/playlists"echo "Rebuilding playlists..."
for mix in "$mixroot"/*; do
[ -d "$mix" ] || continuemixname=$(basename "$mix")
outfile="$plistroot/$mixname.m3u"echo " → $mixname"
Create / clear playlist file
: > "$outfile"
Add tracks
for f in "$mix"/*.mp3; do
[ -f "$f" ] && echo "$f" >> "$outfile"
done
doneecho "✓ Done."
I have subfolders based on mixes I got from Spotify
It has like Mix 1, Mix 2 etc etct
I didnt want to click much, this just makes the playlist for you based on the name of the folder (I pushed my into a subfolder called mixes so my Albums didnt get clumped in)
a quick and dirty solution so I dont have to click much in the app and can just enjoy (plus its easier to enjoy a grab and go option once I dump my mixes)
Not really anything special, just figured I'd share
all the best to you all!
Here's my setup, in pretty happy with it. Not the best speaker but sangean is pretty good quality imo
Key, have you looked into subsonic servers?
Also lrc file support ?
This app is so good!!
I like rockbox, but this has the flavor of simple UI I like.
Do you plan on adding a genres tab, or is parsing genre metadata a nightmare?
Parsing out genre isn't very hard, a genre tab could definitely be something that gets added in the future
I'm not sure what an lrc file actually is.
No not yet, my dev time has been really limited. Most of my limited free time is going to Advent of Code right now
lrc files are a way to store synced lyrics
Interesting, that sounds cool, I have been wondering about lyrics actually.
No feature requests are off the table but adding anything introduces a maintainability tax on me so I really want to lock in core functions first. Ideally I can add more supported audio formats before any more non essential features
I might end up just publishing my runtime and Godot module wrappers for Audio streaming and hope someone helps add wrappers for other formats. I'm not sure, my time to work on songo is just very limited at the moment
Now that Advent of Code is over I will have some more free time, is there anything essential anyone wants to see in v0.4.0 Sandra?
I would say either Background Playing but thats not something you can easily just do
I was thinking I might just export items to m3u and check if the device has mpv installed and kick that off with the m3u in a seperate process before killing songo. Im somewhat ignorant regarding this though, what do you think of this approach?
i dont think that will work because some OSes dont even boot their Frontend if mpv is playing, atleast thats what ive noticed last time
Is there any way to open a menu that just has controls for what’s currently playing? Preferably with a large album art
Im a bit confused, doesnt that describe the song page when you pick any song?
I do plan on adding a settings overlay that is specific the currently selected song/album/artist/playlist at a later date
I'll probably have an update out tomorrow or next week.
I just flashed loose goose on my brick and it's working nicely with songo
A little QOL addition coming with v0.4.0 Sandra. You can hide menu items you dont use.
Other nice things too, stay tuned. With a little luck and a christmas miracle I'll have a download link ready tomorrow
Really cool, don't work so much on it. Christmas is coming soon.
Another small but impactful setting I am exposing to the user.
Stream buffer length
Alright folks I did it! Finished before Christmas.
Here is v0.4.0 Sandra. This focuses on QOL changes and an easier to navigate settings menu.
https://drive.google.com/drive/folders/1721ry10xuoTSClFBV7VmCZzTETO9kiqH?usp=sharing
Change Notes:
- Revamps settings menus
- Allows users to add whole albums and artists to playlists with the quick menu
- Allows user to hide main menu items they dont use (thats the intent at least)
- Adds "Keep screen awake" quick menu item, it replaces the "Queue Song" control when you are in an actual song instead of the song list.
- Allows user to adjust stream buffer length for optimal settings on a per device basis (though the default 100 should be fine in most cases)
- Can no longer use an empty string for playlist names
- Adds black screen fade option so AMOLED/OLED screens have a very smooth fade option, also allows nonsupported cfw's to have screen fade to some degree.
- More stuff that I have forgotten because I took so damn long on this version.
- Adds better messaging around setting up music directories for new users
For adding/removing albums or artists to a playlist the logic is as such (should be at least):
If less than half of the album/artist is in your playlist "Add songs to playlist" (this adds the remaining songs to the playlist)
If more than half of the album/artist is in your playlist "Remove songs from playlist" (this removes all the selected albums songs from the playlist)
let me know what you folks think of this version, it adds a lot of UI/UX convenience I have been meaning to add for a while.
If you want to throw this in the songo5 folder of the zip, during the portmaster autoinstall it will make an app entry for Songo5 in muOS since it's not just a game, basically it's like a desktop shortcut in the applications menu
Oh no kidding, I'll definitely pop it in then. Thanks, do you mind if I credit you in the app after I add that?
You really don't need to as it's intended to be a feature collab of portmaster/muos that I had help with, but worked on with apps like this in mind (tested it with my flipclock port as a POC)
I forget who asked for the keep awake feature, was it you @mortal moat ? Regardless it probably shouldn't have taken this long to end up in the app lol
My guy!!! Thank you so much
I’m sure I did ask for it, considering I use it during my commute to work. Just nice to have on like a dashboard
Nice nice, I'm tempted to get some kind of mount to use for my car haha
I’m using a flex mount that stretches for multiple phones
It’s been so awesome! Just throw my device on it and flick the stick to switch songs from playlist
I don’t know why that tactile experience is so cool. I have perma monkey brain
That's cool as hell, next time you pop in the car can you take a picture?
Of course I even have it in my motorcycle
Sorry but I'm imagining now you driving your Motorcycle and the RG35XX slides out and some random guy on the street picks it up and plays some Tetris
Let me just show you 🤣
That is way too frickin cool. Thanks for sharing
For my car I use something like this
Similar concept
The 35XX-H has is truly my media player thanks to your app 🙏 appreciate it! I’ll test out the new version soon 🎉
I'm thrilled to hear it, I mostly use my brick for music but I actually bought it with that intent haha. Let me know what you think of v0.4.0
Hide the bodies, I love it
I don't know what you're talking about
i like the latte art too
this is so cool dude
Really loving using this on my brick. I have a MuOS card that's just for songo #5
I have a couple questions
- Is there a way to pull up the "currently playing" screen?
(The return button takes me to it, but if I've clicked around a bit and added songs to the queue, then pressing it takes me to the albums list, pressing it again takes me to the first album, pressing it once more starts playing the album)
-
in a future update, I'd love to see buttons for next/previous track and play/pause when outside the currently playing screen.
-
In a future update, could you give us the option to hide "unknown album" from the albums list?
(I have some sleep aid audios that I navigate to via the artist screen. I don't have an album set in the metadata and was hoping that'd just keep them from showing up in the album list)
- Disc number doesn't seem to be taken into account when sorting an album.
(So disc 2 track #01 is shown next to disc 1 track #01)
These are all minor things, the app is really easy to use in its current state. Thanks again for putting something so polished together for us!
I'm thrilled you're enjoying songo. I'll check out the return to song bug you outlined, It should always return you the currently playing song.
In the future I can definitely add an option to hide the unknown album collection. Remind me if I forget in the next update, that's a quick change. There's no good reason why Im not pulling track number from song meta data right now and sorting on it, this will definitely be added at some point.
I'm also using muOS on the brick, it's great
I love nextUI, but it takes a long time to launch portmaster stuff. I might try muOS for more than just songo and other ports. There's a lot to love about it
And I'll keep an eye on the thread for the next update. I really appreciate all the love and effort you're putting into this ✨
This is by far the best music app that exists for retro consoles. Amazing work man. One issue, definitely on my end, but when I use apple earbuds on my R36S while listening to music (arkos) it sounds drowned out and kinda far away, but as soon as I press the button on the earbuds, its clear as a bell. Do you know of a way to fix this?
Not the dev in any capacity but it could be the way the system interprets the app. Im glad you found the work around tho1
I appreciate the kind words and feedback. That issue might be more of a firmware thing. Do your headphones do that with game audio as well? If not I would also test with another Godot based port like kobold kallista.
If it is a songo#5 exclusive issue I'll see what I can do
I'm considering adding shoulder button functionality to skip, previous the currently playing song when the song is minimized. Should I just go all out and add button remapping settings for all the xinput buttons while I'm at it?
It would push back the next release a good bit
I don't have an interface layer between button events and their respective actions yet, that's where the dev time would go. Adding the UI wouldn't be too hard
Shhh no spoilers
I've actually been wondering wether or not I am going to include "you" as a version name
🙂 Respect the dedication!
It fits well enough with the source material 😉
Welcome! I'm glad you found your way here, a lot of folks already have server overlap so it's a quick journey haha
Let me know how the install goes on your 34xxsp! As long as you know how to autoinstall with portmaster you should be good to go
If you don't it's pretty easy, especially with muOS
I had success installing Spelunky with port master. Will let you know when I try!
if key remapping would be easy to add then why not, i like the idea of having more buttons to control music when not in focus
that would be awesome
Yes it is i just checked
So definitely not your fault then
Ill ask otherwhere
Thanks Anyways!
I've been considering your return to song button issue and I think I actually know what's going on. I had the same issue when switching from nextUi to muos on my own brick. The select and func button are swapped for some reason for muOS vs nextUi (though I like the muos layout better). The func button seems to act as an "A" press which explains the behavior you mentioned.
Can you verify if the return to song button works if you use the left most bottom button?
There may be an underlying issue with how I am using Sdl controls in tandem with gptokeyb but I've only encountered this when switching from nextUi to muos.
Omg that was it! Pressing the function/menu button returns to the song view.
A lot of times portmaster stuff had some funky keybinds on NextUI, so it makes sense that a few of the buttons map out differently between the two.
(I need to pop my nextUI card back in later and see if select does it on that card)
The keybinding options sound nice, but I'm personally more excited to see the features/qol develop.
Dumb question probably: how do I get albums to play in their right song order?
Track 01 first, then Track 02, etc.
(Install went fine, by the way!)
Not a dumb question at all, the answer is I need to add it to the metadata wrapper module. So currently album songs aren't sorted by track number but that should be added soon
Gotcha!
Adding things to a playlist and giving the playlist an image was easy enough!
Well done so far! Only thing I’m wishing for is some kind of way to know which button will do what.
Or a way to pop up a key.
Took some screenshots as I was reporting the bug, might as well share them here because the app looks so good (running with the interface scaled to 1.15x):
I'm glad adding playlist images manually works as expected. I actually never tested that when I added it lol.
Right now you can make a .m3u file as a playlist to get around this. Manually or automated, same different. Thats been my solution, just automate the file order and turn it into a playlist
Yep, that’s exactly what you’re looking at here : #1423018534287446096 message
Got it, I had pasted a script some time ago to automate the process
You wouldn't have to manually do it but glad to see you made it happen
Oh! Where’s that?
Here it is!
Nice!
I’m using Knulli, please verify your file system is the same otherwise the script will dump the .m3u somewhere else
Ah, I’m on MuOs.
I’m not sure if it’s the same file system but the script is easy to edit. You just need to figure out what folder you’d want as your “make playlist of any folder here” and where the .m3u files go
Next time you drop an album you simply run the script and no more worries
That is a good workaround for now ✨ The only albums I care about the order for are like...musicals, so for those I'll make playlists (and leave out the songs I don't wanna listen to very often 🤭)
I'm thinking of making a simple music importer app. It'll transcode all my music down to like 128kbs mp3, and edit any playlists in a certain folder to have the paths they need for the brick. I think I'll add a lil checkbox next to albums for "generate playlist" or something.
If I actually get around to making it, I'll post it here for whoever wants to use it. (I know powershell, bash, and python are options. But I like my guis)
I've considered a partner desktop app to do some of this. Not sure I'll end up doing it though. I'll try and get album track number metadata and default sorting in the next update
I had a TUI planned but at the time I figured things might change and didn’t want to build out anything robust just yet
Simple bash did it for me for now 😅
Was this issue only with Songo #5? I ran into this same problem when I used TRRS earbuds (earbuds with mics) but the audio was clear when I used TRS earbuds (earbuds with no mic).
Do they work outside of Song#5?
Also if you pull it out just a bit and they work, it might just be the actual jack. Simple test by pulling it 1 notch up
That's an interesting question, I'll try this out too and let you know what I find. The audio streaming modules I built are still routing sound through Godots built in audio classes so if there is an issue it might be more a Godot problem or cfw issue. Regardless I'll see if theres anything I can do to fix it if I get the same results
If I can't fix it I'll make sure it's well documented
Btw I think I must have broken async image loading in one of these last few updates, flipping through songs rapidly seems to have brief hiccups. I should be able to fix this regression in the next update
A lot of the handhelds have jacks that don't play super nice with the TRRS plugs.
You can get little adapter dongles (I had a dumb one that looked kinda like a tampon)
The brick is the ONLY one of my handhelds I can just plug any headphones in and not have to fiddle with the headphone jack to get the fit perfect.
With all the other ones, my headphones will work, but the sound will go out sometimes until I spin it around, push/pull it a little to get it seated right, etc. (It's a problem on my RGB30, X55, RGB10Max3, Rg351p, RG-ARC-D, and TrimUI Smart Pro)
Yeha I cant imagine these cheap emulator devices are looiking to add top of the like TRRS jacks
I actually just noticed I also use a TRRS jack myself (I have the simple Apple wired 3.5 with headphones) and boy do they sound horrible! Maybe it has to do with the similar issue we just discussed
In any case I hope you find your solution, I just can't imagine its the software, but who knows
oh interesting. its system wide. is there any way to disable the mic?
Try pressing the button on the microphone
for me they sound amazing when you do that
The weirdest thing just happened
i plugged it in and it sounded great
idk what i did different
The amount of work you're putting into this port really does deserve recognition. I applaud you, good sir. 🫡 🫡 🫡
It’s a New Years miracle
I found a little stand for a clock that works pretty well for my brick. The charger can't plug in though unfortunately. Makes me realize I really like the look of having it propped up next to my work computer so I might end up buying a stand actually designed for the brick. Or print one if there's an stl floating around out there.
That’s a sharp look.
Wow. HOW COOL is that speaker?!
Cooler than me but less cool than Chris Sawyer building roller coaster tycoon in assembly
Next update is probably going to be very minor stuff. Sorry for slow dev, my day job is kind of hectic right now. In the next update I will have a proper splash screen instead of the Godot default. Excuse my quick gimp job.
Take your time, this is already one of the best music players on here
If it ever stops being a fun side project, you can always release the source so people can make their own forks. But I agree with Dia, it's already SO good.
(The weird sound issues on the brick were just the headphone jack. Using Bluetooth or USB c headphones fixes it, so that's not something you need to worry about)
Slightly nicer looking contact page too
Thankful for anything you do!
I'm not going to get excited until/if it happens but I have been talking to a popular manufacturer and they say they'll send me a handheld for testing. If they follow through you'll know which company it is because I'll give them a shoutout in the credits.
I'm a bit skeptical but it would be pretty cool
You’ve been working on this without testing it on a device? 😮
we've been testing on a few devices actually, pretty sure he has a TrimUI Brick and he started testing on an RG35XX-H...
It’s been working great on the RG34XXSP.
I have a couple devices I have been testing on but I feel better having more to test with. I don't particularly like testing with my EDC
EDC = ?
Every Day Carry
Ah, right. Thanks!
I bring my handheld with me when I put my son down to bed and play music. Bedtime is kind of a vibe ngl
Which device is that?
This is the trimUI brick
I have an ayn Thor on the way so the temptation to at least port it to android is pretty strong
Having songo on the bottom screen would be pretty damn cool
Oh god... I'm so so SO TEMPTED to just buy one but I KNOW i will hate the way it feels. I need it to be comfortable. I reckon its a larger version of my rg34xxso and I can't stand plating ANYTHING that used the shoulders on it and GameCube, PS2, gamehub all use shoulders a lot.
So I'm wondering if the RP6 might be the best decision instead. But the thor is definitely so SO sick.
There’s always the option to wait! Incremental improvements every yea in this space, it seems. 🙂
That's true, and in more senses than just hardware. Im really surprised seeing how much the state of the anbernic ds improved after initial release.
Though I do think they could have committed a bit more with the hardware on that device. Slightly stronger CPU paired with their recent fixes would make it really competitive
buy it soon if you're going to, rumblings about the Thor going up in price soon due to ram shortage
Adding some things in this next update you folks have been asking for, stay tuned. Anyways heres something no one has asked for. Tweaked UI (included icon) for shuffle and added song repeat toggleable via quick menu).
Love it.
I tested app on dArkOS on R36S. Its working. Only one small bug that not shows battery percentage
Thanks for letting me know! If I ever get my hands on a console that can run dArkOS / ArkOS I should be able to add that as well as proper screen dimming.
I'm going to try and get Songo up on portmaster officially before the end of the month. This is the last call if you've been testing Songo and want to be added to the credits page let me know ASAP.
I'll still be putting out updates every month or two after its added to portmaster in earnest
Are there any missing features you wanna add? This is already 🔥
Oh definitely, but most of them require changes to the runtime and I just dont have the bandwidth to make those changes right now. They'll be added later, ogg support, track number metadata, dynamic sorting for lists, better control of album/artist/song images.
I think Songo is currently stable enough and feature rich enough to be distributed though
Oh wow, big plans
Eh none of that is going to take very long, I have infrastructure in place for most of that stuff already. Its just cumbersome having to make the godot engine changes
(I'm just trying to motivate you by making it sound like a big project while it's being little things. I wanna maybe study Pedagogy and I love using people as tests and it seems to work. But also don't overwork yourself on this, this is already such a great project and I really hope it's going to be open source someday so I can run it on Windows/Linux
What qualifies as “testing”? Did I test it? 🙂
As far as I'm concerned, if songo is on your handheld right now then your a tester
I’d like to be on there then!
Not to discredit the huge amount of work, debugging, and Q/A that folks like @lunar cloud have done.
Can @sage tusk be added and also my kid’s handle? She’s not on here but would go nuts. She “tests” it technically. 😬
I love that, hell yea
Thats really cute
What name do you want me to add for your kid
Just setting up at my desk for the day, here's hoping the rest of my day is as good as the first song I pulled up in shuffle
Nice Chainsaw Man pup sticker!
Nice collection!
Hows this @sage tusk , is it too much?
Something else nobody asked for. Adjustable content margin setting. Only helpful for long horizontal screens like trimUI Smart Pro or for very tiny screens where getting that space back makes a difference.
It all comes down to user preference, some might prefer the wide layout even on wide screens. This is for comparison:
That’s really great customization.
That in-hand with global UI scale makes it very flexible. Bravo!
One little customization request for the pile - the option to disable the navigation sounds. (When I'm listening to a sleep audio or guided meditation, I have to turn it way up compared to music. And the navigation blips can be a little too loud if I forget to turn the audio back down before navigating away)
No rush on that or any of the other features. This is already my daily carry app for music. Excited for the official release so you can see lots more people enjoy your work 💙
That’s a good request!
Ill add an adjustable increment setting for SFX, you're not the first person to suggest the sfx vol is a bit much haha
Anyone remember this customization feature I was playing with a while ago? Im tempted to finish it and then pre-add a bunch of logos that make absolutely no sense. Like the mcdonalds logo, apple logo, nike, etc...
Gotta keep users on their toes, keep em guessing
I'm just trying to figure out where I would even get song files for download any more? Is this something like YouTube/Spotify premium where you download the song and then put it on here?
🤷♂️ eh that's not my business, I suppose I am making an assumption that users already have a music library or convenient means of obtaining one.
Steam lets you download game OSTs pretty easily
I know HadesArcadius has done this for some of his steam library
I think Bandcamp is the main legitimate digital source. I think most people with mp3 players are sourcing them the same way they're sourcing their roms though
from their original media
iTunes still exists. Or bandcamp
Only one thing is missing for me here on Songo #5 but no other Player on here currently has that, Lyrics. Showing Lyrics while Playing music
are lrc files the standard way of handling this? If I only need to implement it for one file type it should be pretty quick. Taking a look at an example lrc file it would be really really easy to parse
It would be pretty easy for me to add LRC parsing and render them in time with songs but that is assuming users will supply their own lrc files. Im not sure how many people would actually do that
Are LRC’s readily out there or is it a manual thing?
Looks like it's a bit of column A and a bit of column B
I might end up trying to squeeze lyrics in to the next major update, even if it gets little use. Its fun. Looks like sites like this could be used, there might be some api's I can scrape for lrc files but Im not going to promise anything yet
https://www.lyricsify.com/lrc/huntrix-kpop-demon-hunters-cast-golden/22322337
I only know lrc, so I guess yes
https://github.com/tranxuanthang/lrcget
I used that one when I grabbed my lyrics
You can also just set your handheld on a CD and let it import the music via osmosis.
See just like this
Deep cuts all day.
I should have v0.4.1 ready tomorrow, lots of UI/UX improvements and some more noticeable QOL things added
Can't wait to try it out ✨✨✨✨ I've got some powershell scrips ready to import a pretty big music library with a lot of playlists to use as a stress test
(128kbs because I can't hear the difference on the brick or through my shitty wired earbuds)
You'll have to let me know how It goes. If the app does struggle it will be right after the app starts and tries to load those playlists into memory. I'm optimistic it will handle it fine though
I don't want to lie to you
Yesn't
lol
I just haven't had the time and energy to work on the actual runtime. Waiting for Godot to compile takes like 20 minutes and I'm not too savvy with C so it takes me a good chunk of time
ccache is your friend
No need to explain to me, my guy!
I'll check that out, I have very little familiarity with C tooling and packages 😅
Feel free to ask us!
You can always ask in the dev channels if you dont want to detract from this thread.
I won't be able to get an update out today, power went out due to crazy winds like 4 hours ago
Ahh! Stay warm!
hope everything's OK there, Sandra works on muos knulli and panfrost! This really feels like a modern music player!
Yeap, i only waiting on more formats support 🙂
That's fair, mp3 and flac feel like a good jumping point for releasing on portmaster. Ogg will come at some point soonish after that. Any other format is harder to say.
Wav is possible but wav doesn't support meta data so I'm hesitant to include it
That's a better reason not to include it haha. I'm not sure how many people even use ogg but I'm happy to add it for the rare minority of people that do use it
I would love to hear Ness say "Peak a fire" 50x times in a minute
I mean it's Lossless but it's more used for working with the files than using it for music
I use FLAC and MP3, maybe ogg too but that's it. I don't think there is any benefit for Wav or other file formats
I mean WAV can be lossless but never really saw that in person
You analyzed m4a format?
M4a is going to be a real pain in the ass but I might trade my sanity to make it happen. With m4a compatibility I could include functionality for audio books and long form media
I really would like to add m4a but don't hold your breath for it. It could be a long time if I do make it happen
I belive ffmpeg allows many formats, if you could integrate it it would make things much easier
Pretty early on in dev I was considering ffmpeg and I decided against it. I forget why, it may have been for OS compatibility or because of the amount of effort to try and wrap it into a Godot module
If you're suggesting hitting it directly in the command line that would work but not every system has ffmpeg or mpv or something similar
I'll do some more digging there to make sure I didn't rule it out unnecessarily
If I got some free time I can make a big lib with all Major codecs in it... I've worked with ffmpeg before And I could just steal most of it from there
Honestly I might have just taken a look at the ffmpeg package and thought it's too technical for me. Most of my software engineering career has been in web frameworks and technologies. I try and set myself up for success. So if it seemed like too heavy of a lift that could have very well been why I opted not to.
That's awesome you're able to do that, I'm not sure I'd be able to use it personally though. I'd like to keep the backend audio streaming consistent. Right now I am wrapping various popular c libs In godot modules to create a universal streamer. Mp3s and flac are powered by drFlac and drMp3 right now. In a perfect world I would find a lightweight lib for m4a but I don't think it exists. I need to get more in the weeds for m4a
In summary I'm kind of lazy 😉
Ffmpeg is a huge project, hard to understand at the start but once figured out it's pretty nice
Honestly, I think people who are savvy enough to sideload this app and music into this app are savvy enough to convert their albums to mp3 or whatever the app requires.
yeah, flac and mp3 also covers the widest range for audio formats, flac being the standard in lossless and mp3 being the genuine standard for audio files....that aside ogg represents variable bitrate, m4a for audio books as mentioned, wav is popular in certain circles (mostly games as mentioned)...
the real question comes to, would a laymen be able to convert audio formats using a cell phone?...I don't think Songo needs to conform to a laymen, but it's obviously something worth considering the effort on, thankfully the two most common audio formats are already represented which largely solves the laymen problem.
I can also code a converter real quick that converts OGG and WAV to mp3 if Needed
Those two wouldnt be hard for me to support outright, m4a would kind of be the issue
Also I just double checked licensing details and If I used ffmpeg I would be forced to make my code open source legally. I'm not sure I want that. I'm not saying songo#5 won't be open source at some point but I don't want that currently
Oh yeah true but if you just include ffmpeg then no you don't have to. Only if you include the libs directly to your Godot version. I can also suggest just converting the m4a on the fly if possible to mp3 if that is easier
Re-Import Directories button dont deleted non existing files. Its ok?
Yea, it's a somewhat misleading label. It just does exactly what the automatic scan does when the app starts but manually.
I need to update a few things in the data page to be more informative
Once its on Port Master it will fly!
That would be pretty cool
Well I got in the weeds a bit more than I had wanted to. V0.4.1 will be done in a day or two, it has a LOT of changes. Including some changes to the runtime.
Currently ripping and downloading 800 songs. To use with Songo but still don't overwork yourself, take your time and I would say never do ETA
After I get v0.4.1 out to you folks I'll wait a few days to see if any obvious bugs crop up. Then I'll try and get songo up on portmaster legitimately
Hey if not for the power outage id have had v0.4.1 out on time haha
I think I’m 1 version behind but does this mean fast forward has been included 👀
I could have been more clear, I meant runtime as in changes to the Godot engine run time that songo is powered by. I'll elaborate on what I added tomorrow
An example is when I added flac support, that required mostly changes to the Godot engine itself since Godot doesn't support flac out of the box
Ohhhh that’s awesome! I’m sure folks will be hyped for FLAC
Alright folks this is a big one, lots added. Unless any critical bugs show up this will be the version I put on Portmaster officially. So here it is v0.4.1 Sandra: https://drive.google.com/drive/folders/1721ry10xuoTSClFBV7VmCZzTETO9kiqH?usp=sharing
Change Notes:
- Adds OGG support, bringing the supported file types to my initial goal (mp3, flac, and ogg)
- Now sorts albums on track number and displays track number if available (turns out I WAS lying @sage tusk )
- Adds content margin setting so wide screens can tweak the display to be more convenient
- Adds SFX volume setting
- Adds song repeat mode accessible via quick menu when listening to a song
- Adds roadmap for future dev plans
- Updates Development Credit page
- L1 and R1 can now be used to skip/previous song, even when navigating other menus with song follow.
- Various fixes and improvements to the UI/UX
Final thoughts:
With the addition of OGG support and some of the clean up I did in this update I feel really good now about getting this up on portmaster. Thanks for all the help, suggestions, testing, etc...
If I forgot to add you to the testers section of the dev credit let me know ASAP.
Updating to this Version:
This will require a full re-install, the Songo5.sh script, the pck, and the runtime all had updates. Since this update also includes changes to the data structure you will also need to add your music directory again in the data settings.
Sorry about pinging @here but this is the last push! if you havent updated in a bit it would be really helpful to get as many eyes on this as possible to squash any bugs before release.
Congrats, @sand hemlock! Do we have to back up the playlists and artwork first before updating?
Yes, good shout.
For the technical folks you can instead just replace the old Songo5.sh, pck, and drop the new runtime in the runtime dir.
I’ll try this! Might have to ask you where they are located if it’s somewhere obtuse.
If you dont see your playlists after re-importing your music directories restart the app
No problem, they aren't tucked away anywhere too weird
did you still want to include this in the zip? https://github.com/PortsMaster/PortMaster-New/blob/ea4b2282b8ca0062752ae6f1febecfc52e665487/ports/flipclock/flipclock/mux_launch.txt
I'm actually in the process of plugging it in and testing it now 😃
Just got the mux_launch script in and it works great. Assuming nobody encounters any bugs I think I will get the PR in tomorrow.
Just converted my Audiobook into mp3s, time to try out the new Songo #5
All the audio formats are streamed so it should be able to play those fine, that said I dont have controls for seeking so audio books will be kind of awkward on songo right now. Ive thought about adding an audio book specific module that remembers where you stopped and can pick back up. It wouldnt be very hard to add.
I think theres another audio book app on portmaster though, I dont want to step on their toes
What about a “bookmark” feature? Only one bookmark per file, it would just save time time code for the current file.
Gladly my audio book is split into 80 files
But also I would also love that feature for my normal songs, like I can just start back again at the old point
fwiw theoretically songo should be able to play a ten hour long file without any issue
It was just that each of the 4 CDs had all possible file formats on it and split into 22 Tracks or not
So I've chosen .FLAC and split
I see I see
Btw Riley, is that you on your Profile Picture
Yea that's me
The face of a maniac, in high def
I use this exact photo for teams and slack as well
That one looks more friendly, your Profile picture looks like a serial killer
Software engineer, Father, Husband, Serial Killer
brb ordering some new business cards
Uh fuck, my title in the metadata of my audiobooks are empty... So the title is now blank
Oh that's good to know, I have some code that is supposed to use the file name instead when that happens. I guess I need to check on that
I mean it has some Metadata, like a album cover ( also doesnt work???), Artist ( which worked)
If it's flac or ogg you can add an image in the same directory as those files and it will be used as the album art. Technically flac can have embedded images but I usually see images sit next to them for album art. For ogg embedded images I just havent added support for them yet so it works the same way as flac
Youll need to probably re-index your files in songo after adding an image for the album art though. I will make this more seamless in the future, I recognize it's not ideal managing album covers for flac/ogg this way
Ah lol okay, didnt know that!
Maybe you can see whats fucked on it? I dont wanna push you or anything but you are way smarter on that topic
What's the issue?
Are you referring to the title not falling back to the filename when title metadata is missing?
Looking at the metadata I see title and track # are missing for that
Yeah that's what I meant
Gotcha gotcha just checking
can confirm, just plop a "cover"."filetype" in the same folder as the album contents and you will need to dump your indexed songs then re-scan and songo will adopt the art, tested it last night for ogg
Me am smart! I did this and didn't break anything! Congrats on the big release @sand hemlock! And thank you for the credits love!
The K-Pop Demon Hunters album shows up with the tracks in the right order! 🥰
Thanks for catching this, I double checked the code that is supposed to handle this and it was only checking for presence of the metadata, not for if the metadata actually had anything inside of it.
Opposite, thanks for checking that I'm not just stupid
I sat down today and added some fixes before putting in the PR for Songo. Whenever it gets approved and merged the version portmaster will be v0.4.2. And it includes the fix for song title fallback. I also went ahead and added proper metadata reading to get the embedded image from ogg and flac files.
Loading image files from any embedded source should also be much faster now too. Not that it was particularly slow before
Going through my library I didn't even realize some of my flacs had embedded art until now haha
Starting off the day with another banger
PR for Songo is 1/2 approved. I will say there is a slight regression with image loading for specifically flac files. I am loading images syncronously and since I actually support flac embedded images now it tries to look for an embedded image in flac songs every time causing a brief hiccup when starting a flac song. I need to add some kind of caching solution or think of a way to load the image asynchronously without making it feel bad
If you're not using flac you dont need to worry about it 😊. If you are using flac you might not notice it, the image loading only blocks the UI from updating for a moment, the tracks don't have a delayed start
Today I'm loading up this rg35xxsp anbernic sent me with songs. It's a bit bigger than I expected but I think I'll end up liking it more as a music player than my brick.
When I was chatting with anbernic I mentioned a few models that would be helpful for testing, this is the least helpful among the few I suggested but I'm still stoked they sent it haha. I can test closed lid functionality with other cfws besides muos now
that's neat, i was curious about the anbernic logo in the credits but i figured you'd share if it was relevant...i guess "you miss every shot you don't take" is fairly accurate
Nice! Weird they didn’t send you the rg34xxsp but that’s life! Which theme is that btw?
funny thing, anbernic just downgraded the rg34xxsp from 2gb ram to 1gb...might be why they didn't send one if that was requested
Rg34xxsp was one of the models I suggested, I think they were just leaning towards sending me to cheapest model since Im just a guy, for all they know I just threw together a fake image and sent it their way to get a free handheld
Do tell?
We have one from late 2025 - are you saying the latest ones they are shipping have one less GB of ram? 😳
it's as simple as i described, an eagle eye'd person noticed that the product page for the rg34xxsp got updated and they directly asked (i think) on the anbernic discord and they confirmed the change from 2gb to 1gb on the store page wasn't an error but an update going forward
i linked the reddit post yesteday in #📱|handhelds-chat but here's the link https://reddit.com/r/SBCGaming/comments/1qjvrzw/rg34xxsp_worse_than_before/
Wild. Thanks!
Yea it's really unfortunate, there's not a lot of cheap 2gb Linux devices but there are more than a couple ports that really need 2gb to play well
yeah, i mean these ports are just icing on the cake for most of these handhelds, and their design spec was made for emulation of old hardware which usually had practically 0 ram by today's standards....so it stands to reason that additional ram is seen as unnecessary by these handheld manufactures...i don't blame them for cutting corners but it still sucks
Thanks, AI!
Aurora - cloud variant
Love the Aurora theme
Thanks! Goes well with that model / color.
Hey folks, I am going to make an effort to move non-testing chat over to #🎵|songo-number-five
is it planned to add a feature to let the music play even if the clamshell of the 35xx sp is closed on Knulli?
Yes! I have this for muOs already, I need to take a look at Knulli's code and check if they expose anything I can leverage to make it work like muOs. If there is a setting in knulli to prevent sleep when the lid is closed I should be able to leverage that during songo#5 use.
awesome, thank you for the quick response!
another question: is it possible to seek (aka go to the middle of a song directly for example)?
Currently no but possibly in a later update
support external dac?
It depends on the cfw and device. At least one tester has been able to use usb dac with the brick and muOS using the bluetooth app
Using Bluetooth headphones on her Rg34xxsp today my daughter informed me that the usual “double tap headphone button to pause/play” shortcut isn’t working in Songo. I’m assuming this is a limitation with the RG and not Songo, but wanted to bring it up here!
I think that's something I would need to monitor hardware inputs for but to be honest im not sure. I'll do some reading and figure out how tricky it would be to get that to work. It would be nice if songo could support that
I wonder if I tried the Apple Wired EarPods pause/play if it would work.
Will report back! (Not immediately — later. :))
No even sure how thats handled. Could be quite messy across CFW. 😄
i have some headphones i could test also, hadn't even thought about it till now
Yup,just tested on Rocknix with bluetooth headphones, play/pause and forward/back buttons are not making it to Songo.
I'm curious if any of the cfws are trying to receive these bluetooth events
If you can get yhe buttons ON the headphones themselves to work with this, that'd be super cool
Does it work on TrimUI Smart Pro?
Of course you need godot 4.3 runtime
It should work on the smart pro, I need to fix a bug for smart pro S though
I actually ship a custom Godot runtime with the app
Does it work on R35S?
It should
There is a bug in v0.5.0 that might effect the R35S. If your playback keeps stopping about half a second after it starts try and increase stream buffer length to around 400
This bug is fixed in the next version to be released soon
With rocknix on RG35XXH it would play songs upto 40s and then skip to the next song
I tried different formats
Flac m4a and ogg
All of them got this
That's strange
Is there anything I can do logs?
I love this player
I was barely using my handheld now it's repurposed into a music player
I have an update coming that fixes this issue. Sorry for the inconvenience, I didn't test v0.5.0 as thoroughly as I should have
You are the only one to report this issue from an anbernic device which is interesting. Regardless, the new version doesn't rely on the flakey tcp audio transfer that v0.5.0 was
Please don't apologise, I appreciate the work you are doing I was infact looking for a decent music player and found yours. I barely play games might as well use my RG35XXH for something else
This is exactly what inspired me to start development for Songo, I had an rg35xxh collecting dust and I felt guilty haha
Great work regardless, UI and UX really feels like made for a handheld which I appreciate
It is something I really try to prioritize
It really shows now I can use my moondrop nice earbuds that I purchased as a joke xD
Hi, my songo freezes randomly when i’m playing music
how can i fix this issue i use the R36 ultra
Hey if you are using v0.5.0 this is a known issue on r36 devices. I have an update in progress that fixes this
Oh wow thank you so much
This app looks amazing, with a friendly and attractive interface. Thank you so much!
i'm using a10mini darkos
But when I use headphones through a dongle connected to the OTG port, I can't adjust the volume using the device's volume buttons. Is there a way to adjust the volume directly within this app?
My headphones, for some reason, cannot be fully inserted into the device's 3.5mm jack, so I have to use the OTG port
You're not the first person to report this, I have some ideas. I'm going to move this to the #🎵|songo-number-five channel though for discussion
After discovering the existence of this port, I deeply regret having bought an MP3 player last year that doesn’t even show the album cover and doesn’t allow creating playlists.
I just discovered the existence of the Koreader port too, I guess today is my lucky day.
What do you mean
Songo running on linux!
That's just Riley debugging it
And show stuff, not actually released
Yeah! But, who knows if one day could be released as Linux APP 🙂
Still miss Winamp times!
@sand hemlock any plans to allow streaming music from our personal server? Thanks!
Please use the discord search function
But also what local server do you have ? Like got a specific music streamer on it or is it just a nfs server etc
( you could ofcourse just mount your server and then point Songo to it and let it sync the songs etc )
I have a simple nfs home server with my FLAC stored there. Instead of copying them to the SD card, I could stream from there.
yup
depends on the cfw you are on
some cfws have nfs mounting turned on, if it doesnt then you will need to do it a different way but if you tell me the OS i may be able to figure it out tonight
Oh! That's smart! Didn't know that. I'm currently using Knulli. I don't know if muos will be better for that.
I will also give a look! Thanks for your idea!
if you are comfortable with ssh you could just try mount -t nfs
Yes, I'm ok with it. If not today, for sure, friday night 😅
looks like nfs and samba is not an option on knulli. I wanted to mount a shared folder from my server and use it inside Songo.
theoratically its possible via sshfs but idk how fast that is

