[PLUGIN] SmartQueue

Still some mess-up with rights I guess, from the log looks like it is being executed as user Volumio not with sudo rights.:

Executing corechooser.py...
Error executing corechooser.py: Command failed: /usr/bin/python /data/plugins/user_interface/smartqueue/unit/corechooser.py
kill: (1266): Operation not permitted

mmm, I’ve not changed the nodejs exec command for a while…
…but I moved install.sh ā€œapt-get commandā€ to sudo recently, it may have break python … :unamused:

Please test this on a clean install of Volumio to be sure it works, before handing over. As this takes much time to test and debug.

My testing protocol on each machine (for v 1.1.1)

  • factory reset to pristine 3.703
  • volumio plugin init (user chourmovs)
  • install latest Smartqueue just released
  • add music source, scan it
  • activate plugin
  • reboot (to see if MPD still ok)
  • finish scan
  • configure the plugin for lastfm
  • test it (successfull on 3 machines)
  • launch bliss analysis after install (successfull on 3 machines)
  • test it (successfull on 3 machines)

What more can I do solo ? I need other users like you to go forward I’m afraid

I’ll do my best to improve my protocol but there’s a price to pay for this unbeatable plugin (for music lover) :sweat_smile:

No idea, but here I can get it started on the Motivo by saving the settings, but the rpi is just failing. Only when I execute the corechooser.py as sudo manually.
I don’t mind spending these hours (8-9 hours per test) , but if the very basics fails its not motivating.

Yes I understand and in addition you take already a great part of the mental charge on this forum to help everyone, this is huge , for years…:+1: Thx a lot

Are all your test machine moved to latest beta ? maybe need to add this option to my protocol…

I always update to the latest beta, part of testing for Volumio :slight_smile:

One thing that could make difference between you and me :
Did you factory reset your device before installing v 1.1.1 like me ?
version of my plugin before 1.1.0 installed request via pip, and I’ve proved that ā€œpip install requestā€ broke volumio
Pip and requests was not part of my uninstall procedure upon Balbuze request because python part could be used by other plugin or volumio
Now i’m installing requests via native ā€œpython-requestsā€ package (Why the hell didn’t I do that at first instance !?!) BUT, if you don’t have factory reset your device, pip and maybe all requests stuffs are still present on your machine so could have a bad influence
If you could answer this question (before any further test) it could be very helpfull for my dev path

I haven’t done a factory reset on the 2nd run as it Will take me to much time to scan the library again.
Maybe next week I can give it a go.

Any reason to stick with the outdated version of Python instead of Python3?

Another good question … matter of habit, I’m not as much expert and don’t even know why python and python3 still coexist in modern linux distribution
Do you have any advise/experience on this subject for me ?

I think the only reason is to support older coding.
But everything new should be preferred in Python3.

version 1.1.3 add

- switch to python 3 (no more reboot nor scan issue)
- translation fix
- remove sudo from install apt command

Tested successfully on fresh beta on primo and rpi3
@volumio
I believe it’s ready - at least for beta - and I would appreciate this move forward to enlarge my testing base

Patience.
Need to run a trouble free run first, then the impact needs to reviewed (need to be sure it won’t break anything). Then it will be ready to move into the Beta channel.
Almost there.

Tested on a rPi4, after factory reset.
Installation went fine and pretty fast, settings are remembered.
However after every restart you need to got into the settings and hit ā€œsaveā€ in order to have the plugin work.

@balbuze any idea how to solve this, as it’s very unpractical

I can’t test because I’m away, but it could be due to the fact that config.json is copied and permissions set by install.sh. It’s not required in a plugin.
@chourmovs_vs we spoke about this on GitHub

Hi Balbuze, this is no more the case since version 1.1.0, I addressed any of your remarks so far

At the beginning this was an unwanted situation, but I didn’t work on it because I found it pratical to have to ā€œstartā€ the engine. Indeed you are right (again) , There is already the on/off plugin section button, I need to fix this maybe this evening and this should not be the trickiest part.

I’ve ran it for a couple of runs now (using bliss), but the repeating songs…
Copied the playlist from <ip-address>/dev and sorted it:

1 - A Memory and a Dream
1 - A Memory and a Dream
1 - Cool Girl
1 - Three Little Birds (B Is For Bob Version)
1 - West Hills
1 - Wishing I Was Lucky
10 - Ik kan de zon weer zien
10 - Ik kan de zon weer zien
10 - I'm Looking Through You
10 - Road Rhythm Blues
10 - Road Rhythm Blues
10 - Road Rhythm Blues
10 - Road Rhythm Blues
10 - Road Rhythm Blues
10 - Road Rhythm Blues
10 - Road Rhythm Blues
11 - Cheyenne
11 - Circus Envy
11 - Hard Zinge Is Gezond
11 - Tranquilizer
12 - Banks Of The Hope (feat. Popcaan) (Remix)
12 - Banks Of The Hope (feat. Popcaan) (Remix)
12 - Cold
12 - Cold
12 - Got To Have Something
12 - Got To Have Something
12 - Totally Hot (Remastered 2022)
13 - Affirmation 3
13 - Affirmation 3
14 - Dansen Op De Vulkaan
14 - De Mooiste Verliezers (Live From HMH,Netherlands/2004)
15 - Cold
15 - Lose Control
17 - Serekunda
17 - Serekunda
17 - Serekunda
18 - Tell Her
18 - Tell Her
2 - Black Lungs (Abbey Road Version)
2 - Talk (Francois K Dub)
2 - The a Team (Live at the Tabernacle)
2 - Witchy Woman
2 - Witchy Woman
2 - Witchy Woman
2 - Zombie
21 - You
21 - Zij weet het (Studio Versie)
3 - Don't Give In
3 - Pool Song
3 - Rocking Chair
3 - The Happiest Days Of Our Lives
3 - The Happiest Days Of Our Lives
3 - The Happiest Days Of Our Lives
4 - Peter's Rap (Live)
4 - Rock the Night
4 - The Happiest Days Of Our Lives (2011 Remastered Version)
4 - The Happiest Days Of Our Lives (2011 Remastered Version)
4 - The Happiest Days Of Our Lives (2011 Remastered Version)
4 - Why I Sing The Blues
6 - Best Friend
6 - Best Friend
6 - Far Away Eyes
6 - Pompadour Hippie (Live)
6 - Pompadour Hippie (Live)
6 - Pompadour Hippie (Live)
6 - What It Is
6 - What It Is
7 - Brighton 75 Sieben
7 - Missing Out
7 - Vijf Pils Geleden
8 - A Sky Full of Stars
8 - Call Me
8 - Let Your Tears Fall
8 - Love Is My Disease
8 - Nergens Goed Voor
8 - Nergens Goed Voor
9 - Autumn Leaves
9 - Carmen
9 - Carmen
9 - Carmen
9 - Carmen
9 - Carmen
9 - Justifies and ancient
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Nergens Goed Voor
9 - Shadow Play
9 - Shadow Play
9 - Shadow Play
9 - Shadow Play
93 - For What It's Worth
93 - For What It's Worth

Ok, We’re starting to talk about the substance :smiley:, it smells good
Based on my tests, There are two techniques to avoid repetitions
with lastfm : using drift parameter > 0
with bliss : increase number of tracks (10 for example) and / or drift

i’m going to provide an how-to

These are my settings that generates multiple copies:

what part of your library has been bliss analyzed ?
I’ve removed drift from bliss.py for simplification.
I’ve never had this repetition level with 10 tracks queue but it’s understandable that with similarity metrics ā€œgravity holeā€ could occur in certain circonstance
It will also depend of your seeding song.
Maybe try to extend tracks # to 15 as test.
On last resort, I’ll modify the ā€œvolumio api postā€ logic to avoid repetition