Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 20 12311 ... LastLast
Results 1 to 10 of 191
  1. #1
    Senior Member shunte88's Avatar
    Join Date
    Aug 2010
    Posts
    101

    ANNOUNCE: LMS Monitor 2020

    Likely with pCP 6.00 being released today this post won't get too many eyeballs; oh well

    And, apologies if I've double posted - mods delete this post if I have

    I've been a long time user of LMSMonitor, even going as far as to build enclosures with custom mill work to incorporate an OLED with LMSMonitor completing the setup.

    I hope kabavol doesn't mind my retooling the solution given the repo has not had updates in several years now.

    See the repo for details.

    TL;DR - highlights are:
    • Built for pi4 and earlier models
    • Scrolling text for long labels
    • A "retro" clock when not playing
    • Stereo VU Meters visualizer
    • Spectrum Analysis visualizer


    The visualizer uses shared memory if the monitor is installed on the same pi as pCP, if not it will use the VisionOn server event solution that is used by my RGB solution.

    Here's a display dump showing the main features. The dump solution makes this look a little blocks but on the pi4 a healthy 17 FPS makes the scrolling action buttery smooth, and the visualization modes very kinetic



    If folks are interested and don't wish to compile themselves, I'll submit build for pi3, pi4 an pi zero to the repo

  2. #2
    Senior Member chill's Avatar
    Join Date
    Mar 2007
    Location
    Nottingham, UK
    Posts
    1,652
    That's rather neat. The photo in your repo of the mounted display looks really nice.

    So you run this under pCP? A build for a Pi4 or 3B+, running pCP6.0.0, with instructions for how to install it, would encourage people to use it, I'm sure. What sort of display can it be used on - does it need to use a particular driver?

  3. #3
    Senior Member shunte88's Avatar
    Join Date
    Aug 2010
    Posts
    101
    I currently have this version running on my test bench, so the setup is the most complex.

    I'll add detailed instructions to the repo but here's the skinny.

    The simplest setup is the same as the original kabavol version with the executable and a wrapper script in the
    Code:
    /mnt/mmcblk0p2/tce
    folder and executed via a user command configured via the pCP web frontend.

    I'll check these into github so its as simple as downloading and copying to the folder.

    The monitor detects the current active player and determines if it is running on the same device, if it is it sets itself to consume the shared memory data operating the same as Jivelite. If its not the same device it looks for the VisionOn service that streams the visualization data. That's my test bench setup.

    The monitor has run on every version of pCP since 2012 with this version being developed under pCP 5, I'm now running pCP 6 and so far so good.

    The OLED is a 2.42" 128x64 i2C flavor SSD1306 driver spec I sourced via eBay, I purchased several in 2012. Any 128x64 OLED supported by the Adafruit driver can be used.

    The 'zon has this in stock in the US. With C19 it may be tough getting really cheap OLED's direct from China, but eBay has some excellent deals.

    I'm working on a version that will use a color display. It needs a good few changes for layout and taking advantage of the color but hopefully I'll have something by the end of the month.

    More details to follow.

  4. #4
    I would like to have the precompile files. Thanks!

  5. #5
    Junior Member
    Join Date
    Feb 2016
    Posts
    18
    Fantastic, I have been hoping for LMSmonitor to be updated, but I don't have the skills to do it myself. Now. I just have to remember how to install it. Used a lot of time to find it out last time.


    Sent from my iPad using Tapatalk

  6. #6
    Senior Member
    Join Date
    Apr 2019
    Location
    Wunstorf, Germany
    Posts
    356
    This project looks very interesting! Thank you for your work!

    I have a LMS-only installation of piCorePlayer on a Pi 4B inside a Argon one case (https://www.argon40.com/catalog/prod...rry-pi-4-case/).
    There is no jivelite installed on it because it only act as a server without display. But I attached a USB speaker (Harmon Kardon Soundsticks I) to it and I can use it via webpage.

    Is it possible to attach this screen to it and let it work? There are other clients that play from this server, so which music will be shown on the display?

  7. #7
    Senior Member shunte88's Avatar
    Join Date
    Aug 2010
    Posts
    101
    I'll be supplying detailed install instruction shortly

    I'm currently looking at minimizing the library dependencies and I'm creating a slimline version that is pCP specific, minus the SSE stream

    I've targeted the weekend to get that done and check-in the install binaries

    As for surface mounting an OLED, the version I have there are 4 mounting holes that you could use to mount with stand-offs. The screens have a thin metal surround so it may not look too DIY.

    This is pCP specific so other music services would not display unless you're using plugins, if that is the case remote sources will display just fine.

    Apologies for the delays here

  8. #8
    Senior Member shunte88's Avatar
    Join Date
    Aug 2010
    Posts
    101

    Binary and "install" now in the repo

    I've added install instructions and a pCP lightweight binary with required support files to the repo

    This only supports the shared memory visualization mode as used by Jivelite

    Its tested under both 5.0.0 and 6.0.0 pCP on pi3B+ and pi4

    There were missing files under 4.0.0 and I couldn't find a clean way to source them so for now this is 5.0.0/6.0.0 supported only

    I also tested with a 0.96" and a 1.3" OLED, usable and readable on both sizes.

    Peak meter is implemented but is disabled in this build s it looked terrible on a 0.96" version of the OLED

    Currently only one visualization mode at a time may be specified but I'll be adding a mechanism to specify multiple modes in the near future

    Let me know if you uncover any nasties

    I know of one issue where multiple lines of scrolling text can get *confused*, you'll know it if you see it

  9. #9
    Quote Originally Posted by shunte88 View Post
    I've added install instructions and a pCP lightweight binary with required support files to the repo

    This only supports the shared memory visualization mode as used by Jivelite

    Its tested under both 5.0.0 and 6.0.0 pCP on pi3B+ and pi4

    There were missing files under 4.0.0 and I couldn't find a clean way to source them so for now this is 5.0.0/6.0.0 supported only

    I also tested with a 0.96" and a 1.3" OLED, usable and readable on both sizes.

    Peak meter is implemented but is disabled in this build s it looked terrible on a 0.96" version of the OLED

    Currently only one visualization mode at a time may be specified but I'll be adding a mechanism to specify multiple modes in the near future

    Let me know if you uncover any nasties

    I know of one issue where multiple lines of scrolling text can get *confused*, you'll know it if you see it
    I have the old LMSmonitor installed and working. Now I follow your instructions but no display

  10. #10
    Senior Member shunte88's Avatar
    Join Date
    Aug 2010
    Posts
    101
    two things to check

    the script eats any output so we may be throwing an error

    first, could you enter the following, it'll tell us if all the dependencies are met

    Code:
    ldd lmsmonitor
    we should see all dependencies met, something like the following:

    Code:
    tc@aardvark001:/mnt/mmcblk0p2/tce$ ldd lmsmonitor 
    	linux-vdso.so.1 (0x7e8bd000)
    	libpthread.so.0 => /lib/libpthread.so.0 (0x76f22000)
    	librt.so.1 => /lib/librt.so.1 (0x76f0b000)
    	libwiringPi.so => /usr/local/lib/libwiringPi.so (0x76eec000)
    	libArduiPi_OLED.so.1 => /lib/libArduiPi_OLED.so.1 (0x76ed1000)
    	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x76d84000)
    	libm.so.6 => /lib/libm.so.6 (0x76d17000)
    	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x76ce8000)
    	libc.so.6 => /lib/libc.so.6 (0x76ba7000)
    	/lib/ld-linux-armhf.so.3 (0x76f4b000)
    	libcrypt.so.1 => /lib/libcrypt.so.1 (0x76b68000)
    	libi2c.so.0 => /usr/local/lib/libi2c.so.0 (0x76b56000)
    note this is on a pi3B+ and there may be minor differences on pi4

    if all dependencies look good try running the monitor without the wrapper

    Code:
    sudo ./lmsmonitor -n {your squeezelite name here} -rcxtiv -m sa
    don't forget sudo as we need permissions to get to shared memory
    the t option will spool track details to the screen
    the i options enables minimal debug

    Example:
    Code:
    tc@aardvark001:/mnt/mmcblk0p2/tce$ sudo ./lmsmonitor -n aardvark001 -rcxitv -m sa
    This is ./lmsmonitor, compiled Mar 15 2020 18:58:00.
    Sending LMS Discovery ...
    LMS (Server) responded:
    Server IP ....: 192.168.1.25:3483
    Player Name ..: aardvark001
    Player ID ....: bb:aa:ee:77:aa:dd
    Player IP ....: 192.168.1.37
    Initializing SHMEM ...
    SHMEM Actively Monitoring ...
    _____________________
    Lee Scratch Perry
    History, Mystery & Prophesy [US] [162-539 774-2]
    Nice Time
    Lee Scratch Perry, Lee "Scratch" Perry
    _____________________
    Lee Scratch Perry
    History, Mystery & Prophesy [US] [162-539 774-2]
    Tiger Lion
    Lee Scratch Perry, Lee "Scratch" Perry
    track details will display if squeeze is playing

    you should also see the details on the OLED

    and when not playing the time is displayed

    post the output from the ldd command, and any errors you get on command line for the monitor

    I that didn't work:

    - add the startup script as described in the repo

    - backup your unit via the web forms

    - and then reboot

    hopefully that brings it up clean


    I do have one small edit for the gomonitor script

    change the killall line so it reads thus:

    Code:
    sudo killall -8 lmsmonitor > /dev/null
    that's a just change of the -1 to -8

    we shouldn't need the killall if this is the first time execution, its just there so I can roll during testing

    I'll update the archive on repo with the same edit early in the AM US EST

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •