[PLUGIN] SmartQueue

Hi volumio community,

SmartQueue plugin available for testing. You can test it as follow:

git clone https://github.com/chourmovs/volumio-plugins-sources.git
cd volumio-plugins-sources/smartqueue
volumio plugin install

Plugin submitted to Volumio 3 plugin store. If you do not see it there, enable “Plugins Test Mode” in http://<volumio_address>/dev. If you still do not see it, that means the plugin has not yet been accepted and you are advised to wait.

Platform: armv7l, aarch64, x86_64
Dependencies installed: python3-requests, shellinabox
Tested on: Volumio primo, rpi3 and x86.

What is the purpose here :

Smarqueue plugin, like infinity playback native feature, will launch a python script that monitor the end of the queue, if last track is detected, behavior will vary following 2 options:

1 - If Lastfm infinite mix is ticked, it launch a request to lastfm API to find similar tracks, search this tracks in your database using “mpc search” and add found matches in the queue, then complete the queue up to <tracks # parameter>, by a simple mpc search genre in your database.

2 - If Blissify infinite mix is ticked AND you’ve launched bissify-rs by Pelochon street installation script AND scanned your library, another process will attempt to add tracks based on their musical proximity (euclidean distance calculation) up to <tracks # parameter>. This is very efficient here, please test it

I’ve also added a “drift” parameter to avoid being stuck in “always the same similar set of tracks”

For the moment, plugin has only english location,I will attempt to “localize” it later

Please test it and give me your feedback !

Note :

  • Scanning media library can be a slightly long process (only 400-1000 files / hours)
  • Activating blissify mix will override Lastfm mix.

1 Like

Two rooms, two atmospheres :smiley:

Hi @chourmovs_vs

Hi Vincent,

Is Bliss installed as part of the plugin or do we need to sort that part out by ourselves, because of this line?

Hi Weathen, blissify-rs install script is part of the plugin, but you have to launch it once plugin is installed.
(Installation script run was too long to be part of the initial setup)
In any case you are right, this was quite unclear and I need to clarify :+1:

Trying to test this on a rPi4, Volumio V3.742. (lates beta)

Status :Checking that the plugin is suitable for this version of Volumio Plugin failed the dependency check Node version 14.15.4 not usable with plugin. The plu gin cannot be installed on this version of Volumio.

	"engines": {
		"volumio": ">=3",
		"node": ">=14.21.3"
	},

Ohh, I copy that from standard plugin example :face_with_diagonal_mouth:

i’ve now moved to

"engines": {
		"volumio": ">=3",
		"node": ">=14"

Please redownload and try

hi @chourmovs_vs , this is why I asked you to check and recheck x10 :wink:
And with a fresh volumio installation

Balbuze Ive tested on 2 fresh install primo and virtual box, I don’t understand

I’m going to test on fresh latest beta (we never know, maybe I’m not the culprit :neutral_face:)

latest beta update bricked my primo device :sweat_smile:. Nice move
I’m ready for usb reset, I hope it will be ok

Should not be the update, did the same on my Primo without issues.

really? I installed from Github and no such problem, except the one noticed by @Wheaten. And not so simple installation.
No more ssh for primo?

1 Like

Installation is running now.

it’s ok, I’m back to business and on latest beta :+1:

A pre compiled version for blissify is required!

Now I understand the suspicious “ShellInAbox”, it’s for Bliss

yes it allow to control a console process and monitor it, the advantage is that if you close the shellinabox web page, it kill the associated process so you keep the control, better than a nohup …

Ok I’m going to commit a 1.0.5 version that install great on latest beta

get some errors with Bliss:

error[E0004]: non-exhaustive patterns: `sys::AVPixelFormat::AV_PIX_FMT_RPI`, `sys::AVPixelFormat::AV_PIX_FMT_SAND128`, `sys::AVPixelFormat::AV_PIX_FMT_SAND64_10` and 3 more not covered
    --> /home/volumio/.cargo/registry/src/index.crates.io-1cd66030c949c28d/ffmpeg-next-7.0.2/src/util/format/pixel.rs:481:15
     |
481  |         match value {
     |               ^^^^^ patterns `sys::AVPixelFormat::AV_PIX_FMT_RPI`, `sys::AVPixelFormat::AV_PIX_FMT_SAND128`, `sys::AVPixelFormat::AV_PIX_FMT_SAND64_10` and 3 more not covered
     |
note: `sys::AVPixelFormat` defined here
    --> /tmp/cargo-installew4GMU/release/build/ffmpeg-sys-next-b525e8aeeb6cefc5/out/bindings.rs:5478:1
     |
5478 | pub enum AVPixelFormat {
     | ^^^^^^^^^^^^^^^^^^^^^^
...
5600 |     AV_PIX_FMT_RPI = 120,
     |     -------------- not covered
...
5668 |     AV_PIX_FMT_SAND128 = 188,
     |     ------------------ not covered
5669 |     AV_PIX_FMT_SAND64_10 = 189,
     |     -------------------- not covered
5670 |     AV_PIX_FMT_SAND64_16 = 190,
     |     -------------------- not covered
5671 |     AV_PIX_FMT_RPI4_8 = 191,
     |     ----------------- not covered
     = note: the matched value is of type `sys::AVPixelFormat`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
     |
732  ~             AV_PIX_FMT_GRAYF32LE => Pixel::GRAYF32LE,
733  ~             _ => todo!(),
     |
                                                                                                                                                                                                                   
   Compiling extended-isolation-forest v0.2.3
   Compiling indicatif v0.17.8
   Compiling bliss-audio-aubio-rs v0.2.2
For more information about this error, try `rustc --explain E0004`.
error: could not compile `ffmpeg-next` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `blissify v0.4.1`, intermediate artifacts can be found at `/tmp/cargo-installew4GMU`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.