Integrated Music Player for RetroPie [IMP] 2021.10 (Background Music for RetroPie and More)
-
@ExarKunIv Thanks, I'm familiar.
That particular BGM script offers it's settings/0ptions via Dialogue bash script.
The reason Pegasus looks different/cleaner, is because you only have one menu entry for BGM in that caseIMP differs from that BGM script (and many others) because it allows you to see MP3s as ROMs, which in turn creates menu entries for each one.
Pegasus is seeing all those entries.
So even if I was to convert all IMP settings/0ptions into a Dialogue bash script, you'd still have Menu entries for all of the MP3s...For ES I was able to edit the gamelist.xml to make the menu entries look pretty and well organized.
I think the equivalent for Pegasus would be
metadata: -
@RapidEdwin08 i get that, not sure if it can be done, but can the music folder just sit in the roms dir,
that way the Pegasus does not see them, since using BGM script it does see the music folder at all since it sits in the roms dir.and yes Pegasus uses metadata, but there is no metadata for retropiemenu so im not sure if trying to make one will do much or not,
i have tried look at the metadata and im lost on that.
-
@ExarKunIv said in Integrated Music Player for RetroPie [IMP] 2021.10 (Background Music for RetroPie and More):
@RapidEdwin08 i get that, not sure if it can be done, but can the music folder just sit in the roms dir,
that way the Pegasus does not see them, since using BGM script it does see the music folder at all since it sits in the roms dir.The Main Reason I put everything including the MP3s in the retropiemenu, is to separate them from your actual Games/ROMs in ES.
0therwise they will get grouped with AllGames/Favorites/LastPlayed.
In addition, I did not want to create a custom System (es_systems.cfg) just for Music, because there is no Theme for RP that has an Entry/Artwork for Music.Keeping all that in mind, using roms/music was initially my plan.
The Problem is ES did not like the symbolic link in retropiemenu to roms/music.
It would crash when trying to load up.So I ended up putting the actual Music Folder in retropiemenu, and putting the symbolic link in roms/music instead.
and yes Pegasus uses metadata, but there is no metadata for retropiemenu so im not sure if trying to make one will do much or not,
I'd say the metadata or collection idea is still worth a shot...
-
@ExarKunIv you unknowingly helped me discover an issue with IMP.
While looking around for gamelist options for PegasusFE, I realized I never added <folder> Tags for all the IMP Sub-directories in the retropiemenu gameslist.xml for ES.
If you were to set Parse Gamelists 0nly to 0N, ES may fail to load.Incorrect <game> Tag for Sub-directory:
<game>
<path>./imp</path>
<name>Music Player</name>
<desc>[IMP] Integrated Music Player.</desc>
<image>./icons/imp.png</image>
</game>Correct Tag for Sub-directory should be <folder>:
<folder>
<path>./imp</path>
<name>Music Player</name>
<desc>[IMP] Integrated Music Player.</desc>
<image>./icons/imp.png</image>
</folder>I'll address this in next release, but for now if you have this issue,
Here's a one-liner to Disable Parse Gamelists 0nly:sed -i 's/\"ParseGamelistOnly\"\ value=\"true\"/\"ParseGamelistOnly\"\ value=\"false\"/g' /opt/retropie/configs/all/emulationstation/es_settings.cfg
-
I have created a directory calledInternetRadio
and a directory calledPersonalMusic
in/home/pi/RetroPie/retropiemenu/imp/music
and I have moved the Internet radio station directories into my new folder and all my music into thePersonalMusic
folder.I have edited thesplashscreen\gamelist.xml
to reflect the appropriate paths for the new location of the Internet Radio stations. I've added new<game>
and<desc>
attributes for the Internet Radio and Personal Music folders, but none of these changes are reflected in ES after restarts, etc. and my graphics (which I created and put in the icons folder) are showing up...Is there somewhere else I should be editing files?Nevermind... I realized that I had copied this file from
~/.emulationstation/gamelists/retropie/gamelist.xml
into~\splashscreen
for whatever reason in the past and that I have been working on the wrong file this entire time, lmao! -
As I have been moving things around and adding Internet Radio station configs to my new Internet Radio directory, I have been swapping
<game></game>
attributes with<folder></folder>
where those entries are actual folders, and now I am thinking of how I can easily create the requisitexml
data for my actual music library to insert meta data and artwork for my music into thegamelist.xml
file so it all looks pretty in ES, lol!Too bad that you cannot utilize
<include></include>
attributes in XML files? That would make it a lot easier to add custom Internet Radio and Personal Music libraries into IMP and keep the original~/.emulationstation/gamelists/retropie/gamelist.xml
file mostly intact/original? -
@RapidEdwin08 said in Integrated Music Player for RetroPie [IMP] 2021.10 (Background Music for RetroPie and More):
you unknowingly helped me discover an issue with IMP.
While looking around for gamelist options for PegasusFE, I realized I never added <folder> Tags for all the IMP Sub-directories in the retropiemenu gameslist.xml for ES.
If you were to set Parse Gamelists 0nly to 0N, ES may fail to load.I can attest to this <folder> tags issue, lol! I've been playing around with ES and Pegasus trying to work out the best way to accommodate .m3u files and hiding the multi-disk/tape/carts from showing in gamelist.xml files and when I went to turned on "Parse gamelists" only trying to troubleshoot that issue, I broke ES! It took me some digging and --debugging to figure out what was going on, lol! All fixed now, I just went in and swapped out all the <game> tags to their appropriate <folder> tags accordingly...
-
@cdaters If you turn ParseGamelistsOnly ON, any/all Music files not in your gamelist.xml will not be visible in ES, unless you manually enter them or select them one-by-one to create the entry.
For multiple disc ROMs you could try to rename them a different extension like .CD1 .CD2 and update the .m3u accordingly.
This may work for some systems, like PSX, but may not work for others like SegaCD.
You'll have to try it out and see what works...Update coming soon with fixed Folder Tags, and a set ParseGamlistsOnly to OFF Utility in the Installer Menu.
Randomizer [ALL] will now pick a Random Track and make the sub-folder of that Track the current playlist. It will also respect the current BGM Settings.
Ranomizer [BGM] option solely for BGM will be added, it will exclude all other music, pick a Random Track from BGM, and make either BGM A/B the current playlist.
Adding a Shuffle Playlist at Boot option.
Currently IMP retains your shuffled playlist (like an iPod), which is nice to have, but not all the time. This will give you the 0ption to shuffle your current playlist at boot.@buzzardbait you might have thought it shuffled the songs at boot if you were using LITE Mode, as it does NOT retain the current track at boot (just the current playlist), so it would have just played the 1st song in the playlist, which may differ from the track last playing depending it's last creation.
EDIT: Actually having the BGM Flags re-creates the playlists at boot based on the content of the BGM Dirs, so this would have shuffled the playlist in that case.
This will be updated to retain parity with the Shuffle Playlist At Boot option.Also adding another streaming station.
Feel free to add any other recommendations or issues here. -
v2022.03 Released
Fixed incorrect <game> Tags for Sub-directories in [gamelist.xml]
Added [ParseGamelistOnly] OFF Option to [RP/ES] Utilites to Installer Menu
Updated mpg123 installer to include [v1.29.3]
Modified Music Randomizer and Added More Modes [ALL/BGM/PLS]
Added Shuffle Playlist at Startup Setting
Modified Pause mechanism of [run-onstart/end.sh] to improve continuing playback with Streams
Moved Internet Radio Stations to the Sub-directory [Streams]
Removed [.acc] Addresses from Streams Playlist creationAfter adjusting the Randomizer, the more I used the it, the more I liked it, so it became a whole thing...
Feel free to Report any issues here, and Thanks for the Feedback. -
Tested IMP on a clean install of latest RetroPie 4.8 on a Pi4.
Everything worked fine, but the Audio was Choppy when using the Music Over Game setting.
It looked like both mpg123 + RetroArch were using/0verworking ALSA.
I was able to resolve the choppiness by changing the Audio Driver in RetroArch from ALSA to SDL2.
-
@RapidEdwin08 Just wanted to say that I'm still using and loving IMP in my Retropie builds! Thanks again for creating this.
-
@mrmadcatz THANKS!
-
So I tried to install IMP using the standard install option and everything seemed to work well except the first line after confirming the install is.
ln: failed to create symbolic link '/home/pi/RetroPie/roms/music': Operation not permitted
When I start emulation station the music player is there and works. The music that came with the install all works perfectly. However any custom music I try to add does not work, if I put the mp3 files in /home/pi/RetroPie/retropiemenu/imp/music When I try to play the music none of it works. I checked /home/pi/RetroPie/roms but there was no music folder, I tried to make the folder and put the mp3 files in there but that didn't seem to do anything. Did I just miss something? Everything seemed to be pretty straight-forward to install so I don't know what I messed up.
-
@fadorka Thanks for the feedback.
Any more info about your build you can share?...Are you using External Storage for ROMs?
Maybe the roms directory is a symbolic link already?IMP uses the music DIR in imp/ as it's source.
Then it attempts to create a symbolic link to that imp/music DIR.
Sounds like that's where it failed.IMP won't recognize the music in /roms/music unless it's linked to the main /imp/music DIR.
Try making a sub-directory in imp/music/subDIR and putting .mp3 there.
Basically anywhere BUT the root /imp/music DIR.
Does it play then? (Restart ES after adding /subDIR/mp3s). -
@RapidEdwin08 Yes I am using a USB thumb drive to store my ROMs. If it already has a symbolic link I wouldn't know how to check if it does.
I don't think I tried to make a sub-directory, so I'll try that when I get home. (I'm away on a trip so I will be back to try in a few days.)
Also thank you for the response! I'm very new to working with RetroPie and ES so I am a bit in over my head!
-
Hi! I installed this on my retropie, through PuTTY. However when i was looking for the folders, the A and B sides were missing (just found music, IMP and radio) and my rom folder was empty. Also no option to adjust music in my retropie menu. Turns out i had unplugged my USB with the Roms to be able to connect a keyboard before learning about PuTTY. I think maby this somehow have ruined my installation, and after the first install reboot, my raspberry will no longer connect to the internet, it sees the network we have available, but refuse to connect. Now i dont know what to do, im not shure what commands i need to use to uninstall, and have to internett to connect my retropie cabinet to my pc. Really hope i dont have to wipe my retropie that ive used hours, if not days, to set up... Help anyone?
Edit: When i restarted the arcade once more, with the USB unplugged again like it was during install, suddenly i got my internet back... If i again plug in my usb i loose connection.
Trying to use this code to uninstall, since its the only one provided, but says that ive got no such file in my directory:
To REMOVE the 0lder ~/imp Directory {and ~/imp-setup.tar.gz}:
cd ~ #Change to Home Directory
rm ~/imp -R -f #ALWAYS PROCEED WITH CAUTION USING rm .. -R -f
rm ~/imp-setup.tar.gz
EDIT p2: Yes, i just noticed i had to run the install script again to uninstall IMP, still having the internet connection issue though.!!!! (red line on picture shows up when usb is plugged in)
297650104_3131860813731660_8732901343260679246_n.jpg -
@willyati Is there a custom [wpa_supplicant.conf] on that USB?
Could be possible power issue?
Maybe the Power source is lacking when you are +USB.
Try unplugging any extra components that consume power, including JoyPad for testing, does the internet connect with +USB then?IMP does not modify any Network settings on install, so it should not interfere with anything Network related.
Since you are using a USB, you may want to check these files for any variation in location:
/etc/emulationstation/es_systems.cfg
~/.emulationstation/es_systems.cfg -
@RapidEdwin08 I think the (new) USB itself caused the issue, problem still existed after a clean install. Im now up and running, and will just add games and music through a shared nettwork. Thank you for your response, the music player works great now that im ditching the usb! Sorry for any confusion, this hole ordeal is new to me.
-
So I figured it out. Apparently FAT file systems can't create symbolic links. So I reformat my USB thumb drive to a different file system and the symbolic link worked correctly.
But as it turned out that had nothing to do with why my music wouldn't play. Apparently if the mp3 does not have a specified length in it's metadata it will refuse to play.
Honestly I have no idea why it works this way and the fact I managed to figure this out is a complete miracle. But hey I guess if anyone else is have similar problems make sure to check the metadata of your mp3.
-
@fadorka Thanks for the info.
Makes sense about the FAT filesystem...Anything else you can share about the mp3 metadata?
Was it too much or too little metadata?
Maybe some $P3C!AL characters were included in the metadata?One thing to try is check if the song plays IN a playlist...
As in select a song you know works to form a playlist with the bad.mp3 in the same folder/ list somewhere.
Then skip to that bad.mp3 using next/previous track.
Does the bad.mp3 play then?If you're up for it, you can try to manually run an MP3 from the Home directory with mpg123 with this command, and see if it outputs an error:
mpg123 ~/bad.mp3
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.