RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Background Music [Continued from Help/Support]

    Scheduled Pinned Locked Moved General Discussion and Gaming
    musicbgm
    343 Posts 109 Posters 325.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      raspy+ @synack
      last edited by raspy+

      @synack

      thanks for your quick response! ... I did a little poking around on the internet and even read up on how to make a basic shell script since I am such a noob. I just end up modifying the existing (/usr/bin/emulationstation) script by adding your script before "clear" and after "reset" like so and I can launch "emulationstation" with the same results from command-line:

      #!/bin/bash

      if [[ $(id -u) -eq 0 ]]; then
      echo "emulationstation should not be run as root. If you used 'sudo emulationstation' please run without sudo."
      exit 1
      fi

      if [[ "$(uname --machine)" != 86 ]]; then
      if [[ -n "$(pidof X)" ]]; then
      echo "X is running. Please shut down X in order to mitigate problems with losing keyboard input. For example, logout from LXDE."
      exit 1
      fi
      fi

      while pgrep omxplayer >/dev/null; do sleep 1; done
      mpg123 -Z /media/usb0/music/*.mp3 2>/media/usb0/music/playlist &

      clear
      tput civis
      "/opt/retropie/supplementary/emulationstation/emulationstation.sh" "$@"
      reset

      pkill mpg123

      EDIT: I forgot to mention that even though I can execute the "autostart.sh" script to achieve the same thing however I have Kodi booting first and I wanted to just launch emulationstation when I am at the command-line.

      Thanks,

      S 1 Reply Last reply Reply Quote 1
      • M
        MoMan_
        last edited by

        Audio continues playing when running ">ports_" games (Super Mario War, at least).

        What would I add to the script to kill audio when playing ported games?

        1 Reply Last reply Reply Quote 1
        • S
          smellslikekimchi @raspy+
          last edited by

          @raspy+ Thank you for this update. This in conjunction with @synack 's tutorial gave me exactly what I wanted except for one small question:

          When I exit a game the menu music comes back on immediately when I exit to the game select screen. How do I add a bit of delay or "sleep" until the music starts back up again?

          Thanks!

          synackS 1 Reply Last reply Reply Quote 0
          • synackS
            synack @smellslikekimchi
            last edited by

            @smellslikekimchi

            to force a delay, edit /opt/retropie/configs/all/runcommand-onend.sh and instead of

            pkill -CONT mpg123
            

            use

            (sleep 2; pkill -CONT mpg123) &
            

            Of course, adjust the sleep # to your heart's desire.

            S 1 Reply Last reply Reply Quote 0
            • S
              smellslikekimchi @synack
              last edited by

              @synack you are a king among peasants. This worked like a charm. Thank you again for your help.

              1 Reply Last reply Reply Quote 0
              • C
                CraveClone
                last edited by

                @Livewire
                Just wanted to say thanks for the script, just what i was looking for and it worked perfectly!

                1 Reply Last reply Reply Quote 0
                • D
                  dragon3gabriel
                  last edited by

                  Script is working great, music is fully loaded and works fine turning it self off and back on across many different emulators except one. When I load up PPSSPP, it continues with out pause. Any solution to mute it like the other emu's?

                  1 Reply Last reply Reply Quote 1
                  • C
                    Concat
                    last edited by Concat

                    I did a search and it seems there is a command to control volume: https://sourceforge.net/p/mpg123/feature-requests/35/

                    Any idea how to implement...?

                    EDIT: I just added -f 5000, and it reduced the volume. Choose a number between 1 and 32768

                    mpg123 -f 5000 -Z /home/pi/Music/*.mp3 >/dev/null 2>&1 &

                    Also, normally emulationstation loads while my video splashscreen is playing. Of course, now everything waits for the video to be done, so I have to sit through emulationstiation loadscreen. Plus I see the terminal flash in between. No longer seamless boot up. Is there no way to get the music going AFTER emulationstation has started?

                    1 Reply Last reply Reply Quote 0
                    • C
                      Concat
                      last edited by

                      Hmmm terminal is spitting out "ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred" now.

                      S 1 Reply Last reply Reply Quote 0
                      • C
                        Concat
                        last edited by Concat

                        In autostart I put:

                        emulationstation & 
                        while pgrep omxplayer >/dev/null; do sleep 1; done; 
                        mpg123 -f 5000 -Z /home/pi/Music/*.mp3 >/dev/null 2>/dev/null &
                        while (ps x |grep -v grep |grep -c "emulationstation")>0;do sleep 1; done;
                        pkill mpg123; exit
                        

                        This makes sure emulationstation loads while the video splashscreen is playing, and then as soon as the video is over, mpg123 plays. No more ES load screen.

                        The script monitors processes for the string "emulationstation". As soon as it gets no results, it kills mpg123. This ensures when you exit emulationstation, you don't get stuck in the script with the music playing

                        -f 5000 is for volume. See above.

                        I'm a total noob, so this is just cobbled together from some googling. I have no idea if this is very efficient.

                        fellegF W 2 Replies Last reply Reply Quote 0
                        • fellegF
                          felleg @Concat
                          last edited by felleg

                          @Concat That's a neat idea! However, I only have one problem. When my video plays, I can see the white borders of EmulationStation loading in the background (my video is a square shape). What could fix this? Also, strangely, the music does not start at all when ES is launched.

                          I started writing this post before you edited yours, so I only have tried the first three lines of your code. I also get the black screen upon editing ES, which you mentionned in your post before editing it. Fortunately, just pressing enter makes the terminal active again.

                          I'd like to implement your code, but so far it brings more problems for me. If I find what I was doing wrong, I'll let you know. By the way, neat find about the volume control for mpg123! I looked in their manual, and -f is to "scale". There is no mention of volume anywhere, it's like they made it cryptic on purpose :P

                          Edit: just FYI, I used -f 20000 instead of -f 5000 for mpg123 as you wrote in your post. I think 5000 is not loud enough ;)

                          1 Reply Last reply Reply Quote 0
                          • C
                            Concat
                            last edited by

                            @felleg
                            Hey, the video splashscreen just renders on top, so that's why you can see the white of ES around it. I assume the easiest fix would be to just make a 16:9 video so it fills the screen.

                            I'm not sure about the other issues you're having. Did you only just try to implement this, or was it working for you before? ...what version of RetroPie are you running? ...and are you sure you put the music into the right folder? If you look at my code, you'll see I have mine in /home/pi/Music

                            As for volume, I wasn't recommending 5000, that's just what I have. Maybe the track I have is just really loud.

                            This page lists the arguments: https://linux.die.net/man/1/mpg123

                            I see a few RVA arguments that sound like they normalize the volume from track to track. I will probably try to include this as well.

                            1 Reply Last reply Reply Quote 0
                            • D
                              dragon3gabriel
                              last edited by

                              Sorry to ask again, but is there away to get Livewire's script to pause when booting up PPSSPP emulator the way it does for every other emulator. Can't seem to find a solution anywhere for this.

                              anasazi29A 1 Reply Last reply Reply Quote 1
                              • GTR_BOSSG
                                GTR_BOSS
                                last edited by

                                Can anyone help.

                                I have the background music all up and running thanks Livewire.

                                The problem I have is ports.

                                When I run Streets of Rage Remake the background music does not stop.

                                I have added "sorr" in the emulators list and still does not work.

                                Does anyone have a way to fade the music in the ports section please?

                                1 Reply Last reply Reply Quote 0
                                • C
                                  Concat
                                  last edited by

                                  I know this topic is huge, but Livewire's script is a year old. If you look you will see that @synack came up with a much simpler solution that will probably solve both of your issues. Retropie was updated not too long ago with support for runcommand-onstart and onend user scripts. Those scripts can be employed to turn off the music.

                                  I'm not sure anyone is still tweaking Livewire's script.

                                  Should probably be a new topic really, since it's very confusing to switch the discussion to a different method half way through.

                                  GTR_BOSSG 1 Reply Last reply Reply Quote 0
                                  • GTR_BOSSG
                                    GTR_BOSS @Concat
                                    last edited by

                                    @Concat said in Background Music [Continued from Help/Support]:

                                    I know this topic is huge, but Livewire's script is a year old. If you look you will see that @synack came up with a much simpler solution that will probably solve both of your issues. Retropie was updated not too long ago with support for runcommand-onstart and onend user scripts. Those scripts can be employed to turn off the music.

                                    I'm not sure anyone is still tweaking Livewire's script.

                                    Should probably be a new topic really, since it's very confusing to switch the discussion to a different method half way through.

                                    Had no idea there was another method can you post a link to it please? Its a shame its not in an official build yet.

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      Concat
                                      last edited by

                                      Looks for synack's original post in this topic.

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        homerotl @synack
                                        last edited by

                                        @synack I just tried this and it worked great! Thank you!. One thing, the files runcommand-onstart.sh and runcommand-onend.sh did not exist on /opt/retropie/configs/all so I had to create them. For everyone else doing this, just remember to set chmod 755 on both files. Also, picked up some music from Minibosses to go with it.

                                        jmvJ N 3 Replies Last reply Reply Quote 0
                                        • T
                                          tpacdc14
                                          last edited by

                                          Just curious, since someone said it above, your splash screen video can render over the top of the emulationstation loading screen?

                                          I'm using the Carbon theme video splash screen and it transitions from that to the emulation station screen.
                                          Is there any extra configuration I can do to have emulation station loading underneath my splash screen video?
                                          My boot text is also off, if that helps.

                                          1 Reply Last reply Reply Quote 0
                                          • jmvJ
                                            jmv @homerotl
                                            last edited by

                                            @homerotl I followed synack's instructions and created the files missing. I made sure they are set to chmod 755. The issue I have is the music is playing in the menu but it keeps playing when I launch and play a game. I'm on retropie 4.1.10

                                            Raspberry Pi 3 Model B /Retropie 4.3.2

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.