[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