Announcement

Collapse
No announcement yet.

ANNOUNCE: MusicIP container for ARM based systems - first release.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    ANNOUNCE: MusicIP container for ARM based systems - first release.

    As part of the process of moving from an old x86 LMS server to an ARM based one I've been trying to find a way to get MusicIP running on the new system. I'm using an Odroid N2 running Ubuntu which uses 64 bit (aarch64) architecture and I haven't been able to get the steps detailed in the thread for the Raspberry Pi to work so I've tried the container route.

    The container is based on the one from ptoulouse and uses box86 for emulation. It seems to work fine on my system and the DTSM plugin uses it keep the music flowing. One thing I have noticed is that it may be necessary to wait a few minutes after stopping the container before it will restart but I'm not sure why at the moment. I haven't used it to fingerprint files, that's done on a much faster desktop with the results archived in the file so that MusicIP just has to scan them.

    box86 has been compiled without any specific hardware flags so that may be an issue for some systems but I'm also not sure to what extent docker masks those features. I'll be putting the build files on github at some point if people find it useful.

    If anyone is interested in giving it a go the details are at mwalters68/musicip-arm on the Docker Hub and I'd be interested to hear if it works on armhf as well as aarch64.

    Mark
    Last edited by sparkyuk; 2021-03-25, 11:57.

    #2
    Originally posted by sparkyuk View Post
    As part of the process of moving from an old x86 LMS server to an ARM based one I've been trying to find a way to get MusicIP running on the new system. I'm using an Odroid N2 running Ubuntu which uses 64 bit (aarch64) architecture and I haven't been able to get the steps detailed in the thread for the Raspberry Pi to work so I've tried the container route.

    The container is based on the one from ptoulouse and uses box86 for emulation. It seems to work fine on my system and the DTSM plugin uses it keep the music flowing. One thing I have noticed is that it may be necessary to wait a few minutes after stopping the container before it will restart but I'm not sure why at the moment. I haven't used it to fingerprint files, that's done on a much faster desktop with the results archived in the file so that MusicIP just has to scan them.

    box86 has been compiled without any specific hardware flags so that may be an issue for some systems but I'm also not sure to what extent docker masks those features. I'll be putting the build files on github at some point if people find it useful.

    If anyone is interested in giving it a go the details are at mwalters68/musicip-arm on the Docker Hub and I'd be interested to hear if it works on armhf as well as aarch64.

    Mark
    Great to see an alternative approach for ARM, in particular ARM64 (I think nobody tried the ARM64 approach with QEMU directly...

    Comment


      #3
      I did the following on an OSMC image on a raspberry Pi 4:

      Code:
      curl -sSL https://get.docker.com | sh
      Code:
      sudo usermod osmc -aG docker
      exit and log in
      Code:
      docker pull mwalters68/musicip-arm
      Code:
      docker run -d --name=musicip --platform=armhf -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 10002:10002 -v /mnt/MUSIC:/music:ro -v /home/osmc/MusicIP/MusicMagicMixer:/config --restart unless-stopped mwalters68/musicip-arm
      That will run MusicIP!
      but when I try to add music it does nothing.
      So I went to 192.168.1.29:10002, added /mnt/MUSIC to 'enter root folder of music' and pressed 'add music'. Nothing happens

      Tried this from the https://forums.slimdevices.com/showt...n-Raspberry-Pi topic:

      Edited the mmm.ini file in the /home/osmc/MusicIP/MusicMagicMixer folder.

      Tried editing mmserver too:
      Code:
      #! /bin/sh
      
      ### BEGIN INIT INFO
      # Provides: mmserver
      # Required-Start: $remote_fs $syslog
      # Required-Stop: $remote_fs $syslog
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Short-Description: Start MusicIP daemon at boot time
      # Description: Enable service provided by daemon.
      ### END INIT INFO
      
      
      # NON-PRIVIELEGED USER TO RUN MUSICMAGICSERVER.
      USER=osmc
      # PATH TO THE MUSICMAGICMIXERSERVER 
      export MUSICHOME=/home/osmc/MusicIP/MusicMagicMixer/
      case $1 in
          start)
      	# next line was original
      	# su - $USER -c $MUSICHOME"MusicMagicServer start & > /dev/null" 
      	sudo -u osmc /home/osmc/MusicIP/MusicMagicMixer/MusicMagicServer start & > /dev/null 2>&1 
      	echo "Running MusicMagicServer"
      	exit
      	;;
          stop)
      	# next line was original
      	# su - $USER -c $MUSICHOME"MusicMagicServer stop & > /dev/null"
      	sudo -u osmc /home/osmc/MusicIP/MusicMagicMixer/MusicMagicServer stop & > /dev/null 2>&1 
      	echo "Stopped MusicMagicServer"
      	exit
      	;;
          *)
              echo "Usage: /etc/rc.d/init.d/mmserver { start | stop }"
      	exit
      	;;
      esac
      But that made no difference.

      So what can I try now?
      Last edited by CypherMK; 2021-12-26, 15:24.

      Comment


        #4
        > So I went to 192.168.1.29:10002, added /mnt/MUSIC to 'enter root folder of music' and pressed 'add music'. Nothing happens

        Your docker run command is mapping /mnt/MUSIC to /music inside the container so you would have to use /music as the path "Add Music" from.

        Comment


          #5
          Still need to learn docker

          But I added /music, and it says: adding tracks. So far so good! Let's see what happens next...

          Comment


            #6
            Music is added. Now let's see if I can get this to work with LMS...

            Comment


              #7
              Originally posted by CypherMK View Post
              Music is added. Now let's see if I can get this to work with LMS...
              Sounds promising.

              Sent from my Pixel 3a using Tapatalk
              Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
              Bedroom: Radio
              Bathroom: Radio

              Comment


                #8
                Originally posted by slartibartfast View Post
                Sounds promising.

                Sent from my Pixel 3a using Tapatalk
                I'm now scanning in LMS, so let's see tomorrow.

                Comment


                  #9
                  So everything is scanned. MusicIP import was successful. But I can't create a MusicIP mix. Tried restarting LMS, but that made no difference.

                  Any ideas on how to proceed?

                  Comment


                    #10
                    Code:
                    docker run -d --name=musicip --platform=armhf -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 10002:10002 -v /music:/music:ro -v /home/osmc/MusicIP/MusicMagicMixer:/config --restart unless-stopped mwalters68/musicip-arm
                    I'm trying to mount my music on my network drive to /music instead of /mnt/MUSIC. So the path for LMS and MusicIP are the same. Maybe that makes a difference.
                    Doing a full rescan again, so I'll report back in a couple of hours.

                    Comment


                      #11
                      That's a good point, the path to your music files must be the same in both LMS and MusicIP. I'm not familiar with OSMC but whatever the path to your music is in the LMS Settings -> Basic Settings -> Media Folders page should also be used in the MusicIP container. Note that this is the second path for the -v option in the docker run command, not the first (-v physical_path:/path_in_container). For example, in my case, I'm running both LMS and MusicIP in containers and they both map my physical music file path (/storage/music) to /music in the container.

                      If the MusicIP interface reports files in the library after you've added them, and the Test Mix Creation button works the issue is likely to be with the LMS - MusicIP integration.

                      Comment


                        #12
                        Originally posted by sparkyuk View Post
                        That's a good point, the path to your music files must be the same in both LMS and MusicIP.
                        If you use SugarCube, or my fork of the LMS MIP DSTM mixer, these will convert paths to/from LMS - allowing these to be different. I process my files with MIP on a Linux laptop, save to default.m3lib, and then run MIP itself on a Pi4 - my DSTM plugin then handles converting the paths so that this functions correctly.

                        Alternatively, I wrote a simply python proxy script that will also do this conversion, allowing you to use the LMS supplied MIP plugin.
                        Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.

                        Comment


                          #13
                          And.....it works! Changing the path did the trick. This is so much easier then the other method. Just a few steps and your good to go. Thanks @sparkyuk for making this method work!
                          Last edited by CypherMK; 2021-12-28, 15:13.

                          Comment


                            #14
                            Originally posted by CypherMK View Post
                            Code:
                            docker run -d --name=musicip --platform=armhf -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 10002:10002 -v /music:/music:ro -v /home/osmc/MusicIP/MusicMagicMixer:/config --restart unless-stopped mwalters68/musicip-arm
                            I'm trying to mount my music on my network drive to /music instead of /mnt/MUSIC. So the path for LMS and MusicIP are the same. Maybe that makes a difference.
                            Doing a full rescan again, so I'll report back in a couple of hours.
                            If you use Spicefly SugarCube for your MusicIP mixes in LMS, it lets you do path "translation"
                            Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
                            Kitchen: Touch + Ikea ENEBY 30
                            Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905

                            Comment


                              #15
                              Not using spicefly. But I can set the path in the docker how I want it, so it's all good. changed it to /mnt/MUSIC like I had it in my old situation. Now I just need to install some plugins and settings and we're all good.

                              Comment

                              Working...
                              X