UPDATE: All the issues listed below have been fixed in v0.14!
Finally got Ogg working thanks to FFmpeg. It's far from perfect and I'm still working on it, but I wanted to get it out. FFmpeg is also a bit overkill for just playing Ogg (plus it added 15mb to the build), maybe if I keep staring at it I can figure out how to make my own implementation. On the flip side, I can add support for any audio file
There are limitations and also features I haven't programmed yet as listed:
Seeking does not work… with multitracks
This is because multitracks go out of sync when jumping to a location on the track. I'm working on a solution. Game plays fine as long as you don't use the Pause feature
Song previews start at the beginning of the track
Because of the sync issue, if I jump ahead in the song, the tracks get out of sync. Single track and native files work fine. Also not an issue if a "preview.ogg" file is included
No smooth transitions
Things like Fade-In/Fade-Out are not implemented… yet. But not sure If I'll be able to. As is, just changing the volume causes Pops
No instrument muting and no crowd sing-a-long
I just haven't implemented these features for the Ogg player. As noted above, I hope when I do, it doesn't cause pops when muting them. Also I don't have a fade transition for the crowd, so it would be a bit jarring to just turn it on and off
New Bug caused by a race condition
My implementation of ffmpeg created a race condition because when the player "stops" the ogg stream gets delocated from memory. Noice might crash when code tries to access the stream after this happens. It is stable enough for now
There are 2 different players engines at work here. M4a, AAC and MP3s are still handled the same way and have no issues.
I've also fixed a few things like sometimes when you beat the high score it would say you tied it. This was caused by a race condition where the old score was getting updated with the new score and then compared to itself. The correct score was always saved and displayed and the highest score was always saved tho. I never did figure out why this happened and it was very hard to test because it only happened when beating the high score on 5 starred songs and very rarely. But it's been around for a while and I finally fixed it.
Also fixed a condition where a song preview would keep playing after selecting another song or even after changing menus. This was always annoying and again caused by raced conditions triggered by animation actions
That's just on this update. Previous updates added Discord Rich Presence, FC tracking and display, Quality of Life improvements like title displays during random gameplay and new List navigations. And a new splash screen as shown here
0 comments