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
Results 1 to 10 of 292
Thread: ANNOUNCE: LMS Monitor 2020
-
2020-03-08, 00:27 #1
ANNOUNCE: LMS Monitor 2020
-
2020-03-08, 17:30 #2
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?
-
2020-03-08, 20:15 #3
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
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.
-
2020-03-10, 13:00 #4
- Join Date
- Dec 2015
- Posts
- 90
I would like to have the precompile files. Thanks!
-
2020-03-12, 14:40 #5
- 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
-
2020-03-12, 22:58 #6
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?
-
2020-03-13, 08:11 #7
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
-
2020-03-15, 18:24 #8
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
-
2020-03-15, 20:32 #9
- Join Date
- Dec 2015
- Posts
- 90
-
2020-03-15, 21:58 #10
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
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)
if all dependencies look good try running the monitor without the wrapper
Code:sudo ./lmsmonitor -n {your squeezelite name here} -rcxtiv -m sa
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
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
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