CDrummond / lms-material

Material skin for LMS (Lyrion Music Server)
MIT License
324 stars 77 forks source link

Titles and queue number seem to be mismatched #390

Closed tophee closed 3 years ago

tophee commented 3 years ago

I have repeatedly seen strange behaviour in the current queue and I couldn't quite figure out what was going on but now I managed to document this behaviour in a screencast here: https://www.screencast.com/t/um3hnrNr

Note that trying to move a title to next in queue leads to a different title being moved there instead.

Note also that removing the last title on the list (or what appears to be the last title) - a Mozart piece in the screenshot below -

image

results in the duplication of the third-last item on the list - Vivaldi in the screenshot below:

image

So there seems to be some kind of mismatch between the titles displayed and what is actually in the queue.

I am not sure if this is a bug in the Skin or somewhere else but I'm posting it here because when I tried the same actions using the default skin, both moving a title to next on queue and deleting the last item on the list worked fine.

CDrummond commented 3 years ago

Can't recreate this, play next and remove work fine for me. (Not saying there is no bug, I just can't recreate it myself). Does this always happen? Which LMS version? Is this local or streaming tracks? Does it matter the number of tracks? ie. would it happend iwth only 5? or does it need more than (e.g.) 50?

Please use Material's debug to confirm the messages sent back from LMS. e.g.

  1. Start material - http://SERVER:9000/material/desktop?debug=json
  2. Open you browser's developer tools
  3. Open the console tab in developer tools - messages are logged here.
  4. Load your music into the queue
  5. Clear any current log messages - use the clear or tradh can icon in the console tab
  6. Perform the 'Move to next in queue' action

'Move to next in queue' should produce messages long the lines of:

[08:36:30] JSON REQ: ["xx:xx:xx:xx:xx:xx",["playlist","move",45,44]] utils.js:111:17
[08:36:31] JSON UPDATING (xx:xx:xx:xx:xx:xx) utils.js:111:17
[08:36:31] JSON REQ: ["xx:xx:xx:xx:xx:xx",["status","-",1,"tags:cdegiloqrstyABKNSTR"]] utils.js:111:17
[08:36:31] JSON PLAYER (xx:xx:xx:xx:xx:xx): {"playlist mode":"off","power":1,"playlist repeat":0,"rate":1,"mode":"pause","time":7.18289005470276,"playlist_timestamp":1608626190.86553,"playlist shuffle":0,"player_ip":"127.0.0.1:34030","can_seek":1,"playlist_tracks":51,"player_connected":1,"mixer volume":75,"signalstrength":0,"digital_volume_control":1,"duration":207.666,"seq_no":0,"player_name":"Laptop","playlist_cur_index":43,"playlist_loop":[{"playlist index":43,"genre":"Rock","bitrate":"220kbps VBR","title":"Born To Be Wild","band_ids":"2146","album":"The Best of the Best Air Guitar Albums in the World...Ever!","tracknum":"43","artist_id":"2896","album_id":"3381","id":45743,"type":"mp3","band":"Various Artists","duration":207.666,"artist_ids":"2896","samplerate":"44100","artist":"Steppenwolf","coverid":"623652a3","year":"2005"}]} utils.js:111:17
[08:36:31] JSON REQ: ["xx:xx:xx:xx:xx:xx",["status",0,500,"tags:cdegilqtysAKNSR"]] utils.js:111:17
[08:36:31] JSON RESP: {"params":["xx:xx:xx:xx:xx:xx",["status","0",500,"tags:cdegilqtysAKNSR"]],"id":0,"method":"slim.request","result":{"player_name":"Laptop","playlist_loop":[{"tracknum":"1","album_id":"3381","artist_id":"4123","album":"The Best of the Best Air Guitar Albums in the World...Ever!","title":"Fat Bottomed Girls (Live)","band_ids":"2146","genre":"Rock","playlist index":0,"artist":"Queen + Paul Rodgers","coverid":"623652a3","year":"2005","band":"Various Artists","duration":347.933,"artist_ids":"4123","id":45701},{"id":45749,"duration":137.6,"band":"Various Artists","artist_ids":"4100","coverid":"623652a3","artist":"Buddy Holly","year":"2005","genre":"Rock","playlist index":1,"title":"That'll Be The Day","band_ids":"2146","album":"The Best of the Best Air Guitar Albums in the World...Ever!","artist_id":"4100","album_id":"3381","tracknum":"49"},{"coverid":"623652a3","artist":"The Troggs","year":"2005","duration":155.96,"band":"Various Artists","artist_ids":"4136","id":45748,…

I've truncated the last line, but it should contain the compelte play queue as returned from LMS. If you do the above, does the list returned match what Material shows in the queue? If so, its an LMS issue, if not then its Material.

If you paste the RESP into https://jsonformatter.curiousconcept.com/ it can produce a formatted output that is easier to check. If you do this you need to remove the [08:36:31] JSON RESP: prefix and utils.js:111:17 (if logged at end)

tophee commented 3 years ago

Will look into the debugging as soon as possible.

Re your questions:

Does this always happen?

I don't think so but at this point I can't specify the circumstances under which it happens.

Which LMS version?

Version: 7.9.3 - 1597753178 @ Sun Aug 23 19:21:22 CEST 2020

Is this local or streaming tracks? local

Does it matter the number of tracks? ie. would it happend iwth only 5? or does it need more than (e.g.) 50? will test this.

Another thing that I might mention is that I use spicefly sugarcube (which automartically adds a new track to the queue when the last one starts playing), but I can't really see how that could interfere here.

I happen to know how yesterday's playlist (the one in the screencast) was generated:

There was a single track in the queue when I hit "play". Sugarcube added one more. When that one started playing sugarcube added another one (and the same happened maybe once or twice more). I then added a saved playlist with 39 titles to the queue. I then moved one title up to play next (I think I did that via drag and drop). I worked fine, I think. I then tried to move another track, which failed as shown. Thereafter I recorded the screencast.

Can't test this right now, but I suspect the problem might be triggered by moving a track, i.e. the error might only occur uppon second move.

CDrummond commented 3 years ago

I did try multiple moves.

In your screen cast has the error already occurred before starting? I ask because I have just noticed the last track is repeated.

tophee commented 3 years ago

Yes, the error occurred also before recording the screencast. The last track being displayed as repeated (I believe it is only the display, it would play two different tracks once it reaches those tracks) must be the result of that.

Another thing: I do all the moving while the player is playing.

And: I have seen this happen both on tbe desktop and the mobile ui.

CDrummond commented 3 years ago

Code is same between mobile and desktop. Anyhow, to progress you will need to look at the RESP messages sent back from LMS. This will indicate where the error is.

When the queue is out-of-sync/has-duplicates - does it have duplicates if you load Material in another browser? i.e. recreate the error, change nothing, but start another browser and look at its queue. Does it also show as corrupt in other control points? e.g iPeng, Squeezer, SqueezeCtrl - as in the queue is incorrect in the display on these after the error has occurred. If it is i nerror there, then its LMS that is sending the wrong queue back. If not, and a new Material instance shows it OK, then its probably a Material issue.

tophee commented 3 years ago

OK, I followed your instructions above but the results are difficult to interpret for me, so in addition to the console log I'm posting the a screencast showing how I generated those logs:

https://www.screencast.com/t/bmyDKxR4

Here are the logs:

material.min.js?r=2.1.2:229 [11:20:55 PM] JSON REQ: ["00:04:20:27:da:2d",["status",55,500,"tags:cdegilqtysAKNS"]]
material.min.js?r=2.1.2:229 [11:20:55 PM] JSON RESP: {"method":"slim.request","result":{"player_name":"Radio","player_connected":1,"player_ip":"192.168.1.122:55260","power":1,"signalstrength":0,"mode":"pause","time":2.94755700683594,"rate":1,"duration":307.771,"can_seek":1,"mixer volume":0,"playlist repeat":0,"playlist shuffle":0,"playlist mode":"off","seq_no":"19","playlist_cur_index":"0","playlist_timestamp":1608675571.87578,"playlist_tracks":57,"digital_volume_control":1,"playlist_loop":[{"genre":"Symphony","title":"Symphonie Nr. 9: III. Adagio molto e cantabile","trackartist":"Ludwig van Beethoven","id":48656,"year":"1991","coverid":"e1712cb8","composer_ids":"15423","tracknum":"3","composer":"Ludwig van Beethoven","album_id":"4714","disc":"1","playlist index":55,"albumartist":"Philharmonia Slavonica","trackartist_ids":"15423","duration":819.973,"disccount":"1","artist_id":"15423","album":"Beethoven: Symphonie Nr. 9","albumartist_ids":"15402"},{"album":"Highlights Der Klassik","artist_id":"15421","albumartist_ids":"15084","artist_ids":"15421","duration":428,"disccount":"1","composer":"Peter Tschaikowsky","artist":"Peter Tschaikowsky","tracknum":"5","composer_ids":"15421","year":"1990","disc":"1","playlist index":56,"albumartist":"Various Artists","album_id":"4875","genre":"Classical","title":"Peter Tschaikowsky: Blumenwalzer (Nussknacker Suite)","id":51029,"trackartist":"Peter Tschaikowsky"}]},"id":0,"params":["00:04:20:27:da:2d",["status","55",500,"tags:cdegilqtysAKNS"]]}
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON REQ: ["00:04:20:27:da:2d",["playlist","move",40,1]]
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON UPDATING (00:04:20:27:da:2d)
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON REQ: ["00:04:20:27:da:2d",["status","-",1,"tags:cdegiloqrstyABKNST"]]
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON PLAYER (00:04:20:27:da:2d): {"player_name":"Radio","player_connected":1,"player_ip":"192.168.1.122:55260","power":1,"signalstrength":0,"mode":"pause","time":2.94755700683594,"rate":1,"duration":307.771,"can_seek":1,"mixer volume":0,"playlist repeat":0,"playlist shuffle":0,"playlist mode":"off","seq_no":"19","playlist_cur_index":"0","playlist_timestamp":1608675663.53064,"playlist_tracks":57,"digital_volume_control":1,"playlist_loop":[{"disccount":"1","duration":307.771,"trackartist_ids":"17144","type":"mp3","albumartist_ids":"17144","bitrate":"320kbps CBR","album":"Philip Glass: Solo Piano","artist_id":"17144","id":52587,"trackartist":"Philip Glass","samplerate":"44100","genre":"Classical","title":"Metamorphosis Five","playlist index":0,"disc":"1","albumartist":"Philip Glass","album_id":"4980","composer":"Philip Glass","year":"1989","composer_ids":"17144","tracknum":"5","coverid":"308e3f3c"}]}
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON REQ: ["00:04:20:27:da:2d",["status",0,500,"tags:cdegilqtysAKNS"]]
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON RESP: {"result":{"player_name":"Radio","player_connected":1,"player_ip":"192.168.1.122:55260","power":1,"signalstrength":0,"mode":"pause","time":2.94755700683594,"rate":1,"duration":307.771,"can_seek":1,"mixer volume":0,"playlist repeat":0,"playlist shuffle":0,"playlist mode":"off","seq_no":"19","playlist_cur_index":"0","playlist_timestamp":1608675663.53064,"playlist_tracks":57,"digital_volume_control":1,"playlist_loop":[{"albumartist_ids":"17144","artist_id":"17144","album":"Philip Glass: Solo Piano","disccount":"1","trackartist_ids":"17144","duration":307.771,"album_id":"4980","playlist index":0,"disc":"1","albumartist":"Philip Glass","tracknum":"5","composer_ids":"17144","coverid":"308e3f3c","year":"1989","composer":"Philip Glass","trackartist":"Philip Glass","id":52587,"genre":"Classical","title":"Metamorphosis Five"},{"albumartist":"Jan Johansson","playlist index":1,"disc":"2","album_id":"5526","tracknum":"15","coverid":"ced94678","year":"2007","id":55496,"trackartist":"Jan Johansson","title":"Skåningens Hemlängtan","genre":"Jazz","albumartist_ids":"18414","album":"piano (data track)","artist_id":"18414","disccount":"2","duration":141.024,"trackartist_ids":"18414"},{"artist_id":"18971","composer_ids":"18972","year":"0","album":"No Album","composer":"Pachelbel","artist":"Brooklyn Duo","album_id":"4862","playlist index":2,"title":"Canon in D","genre":"Classical","artist_ids":"18971","duration":302.367,"id":57639},{"albumartist_ids":"18414","artist_id":"18414","album":"Piano: Ett Urval 1960-1968","disccount":"2","trackartist_ids":"18414","duration":175,"album_id":"5525","disc":"1","playlist index":3,"albumartist":"Jan Johansson","year":"2007","coverid":"51c1ff3c","tracknum":"12","trackartist":"Jan Johansson","id":55470,"genre":"Jazz","title":"Liksom em herdinna"},{"album":"Debussy: Piano Works (1888-1910)","artist_id":"15155","albumartist_ids":"15154","duration":312,"trackartist_ids":"15155","disccount":"1","composer":"Claude Debussy","year":"1989","composer_ids":"15155","coverid":"32358669","tracknum":"3","playlist index":4,"disc":"1","albumartist":"Peter Schmalfuss","album_id":"4592","title":"Clair de lune","genre":"Classical","id":46645,"trackartist":"Claude Debussy"},{"disccount":"1","duration":342.223,"trackartist_ids":"17144","albumartist_ids":"17144","album":"Philip Glass: Solo Piano","artist_id":"17144","id":52589,"trackartist":"Philip Glass","title":"Metamorphosis One","genre":"Classical","playlist index":5,"disc":"1","albumartist":"Philip Glass","album_id":"4980","composer":"Philip Glass","coverid":"308e3f3c","composer_ids":"17144","tracknum":"1","year":"1989"},{"year":"2005","composer_ids":"15423","coverid":"da18705a","tracknum":"7","composer":"Ludwig van Beethoven","album_id":"4704","albumartist":"Friedrich Gulda","playlist index":6,"title":"Klaviersonate No. 25 G-dur op. 79: 2. Andante","genre":"Piano Sonata","trackartist":"Ludwig van Beethoven","id":48589,"artist_id":"15423","album":"Friedrich Gulda spielt Beethoven - Klaviersonaten No. 23, 24, 25, 26 & 27","albumartist_ids":"15476","trackartist_ids":"15423","duration":155.96},{"genre":"Opera","title":"Nessun dorma","trackartist":"Andrea Bocelli, Giacomo Puccini","id":54158,"composer_ids":"15509","tracknum":"1","coverid":"6ef22414","year":"1995","composer":"Giacomo Puccini","artist":"Andrea Bocelli, Giacomo Puccini","album_id":"5212","playlist index":7,"albumartist":"Andrea Bocelli","disc":"1","artist_ids":"17871, 15509","duration":192.757,"disccount":"1","artist_id":"17871","album":"Viaggio italiano","albumartist_ids":"17871"},{"album":"Piano Works","artist_id":"17281","albumartist_ids":"17274","duration":168.16,"trackartist_ids":"17281, 17282","disccount":"1","composer":"Erik Satie","year":"1992","composer_ids":"17274","coverid":"a2f7c3f0","tracknum":"7","albumartist":"Erik Satie","playlist index":8,"disc":"1","album_id":"4993","genre":"Classical","title":"Gnossienne 4 - Lent","id":52951,"trackartist":"Daniel Varsano, Philippe Entremont"},{"id":48628,"artist_ids":"15423","duration":531.306,"genre":"No Genre","title":"Konzert für Klavier und Orchester Nr. 5 Es-Dur, Op. 73: Adagio Un Poco Moto - Attacca?? / ? / ????2 / \u0010 / ?????????N / \u001a / ??????????????M / \u0015 / ???????????? / ? / !????","playlist index":9,"album_id":"4709","album":"Die 5 Klavierkonzerte","artist":"Ludwig van Beethoven","artist_id":"15423","tracknum":"5","coverid":"f80831d1","year":"1999"},{"id":48551,"trackartist":"Ludwig van Beethoven","title":"Klaviersonate No.12 As-dur op.26: 3. Marcia funebre","genre":"Piano Sonata","playlist index":10,"albumartist":"Friedrich Gulda","album_id":"4701","composer":"Ludwig van Beethoven","year":"2005","coverid":"69f7ead4","composer_ids":"15423","tracknum":"7","duration":424,"trackartist_ids":"15423","albumartist_ids":"15476","album":"Gulda spielt Beethoven - Klaviersonaten No.11, 12, 13 & 14","artist_id":"15423"},{"disccount":"1","conductor":"Willi Boskovsky","duration":580.78,"artist_ids":"18198","albumart
material.min.js?r=2.1.2:229 [11:21:04 PM] JSON REQ: ["00:04:20:27:da:2d",["status","-",1,"tags:DD"]]
material.min.js?r=2.1.2:229 [11:21:06 PM] JSON REQ: ["00:04:20:27:da:2d",["status",55,500,"tags:cdegilqtysAKNS"]]
material.min.js?r=2.1.2:229 [11:21:06 PM] JSON RESP: {"method":"slim.request","result":{"player_name":"Radio","player_connected":1,"player_ip":"192.168.1.122:55260","power":1,"signalstrength":0,"mode":"pause","time":2.94755700683594,"rate":1,"duration":307.771,"can_seek":1,"mixer volume":0,"playlist repeat":0,"playlist shuffle":0,"playlist mode":"off","seq_no":"19","playlist_cur_index":"0","playlist_timestamp":1608675663.53064,"playlist_tracks":57,"digital_volume_control":1,"playlist_loop":[{"tracknum":"3","composer_ids":"15423","coverid":"e1712cb8","year":"1991","composer":"Ludwig van Beethoven","album_id":"4714","disc":"1","playlist index":55,"albumartist":"Philharmonia Slavonica","title":"Symphonie Nr. 9: III. Adagio molto e cantabile","genre":"Symphony","trackartist":"Ludwig van Beethoven","id":48656,"artist_id":"15423","album":"Beethoven: Symphonie Nr. 9","albumartist_ids":"15402","trackartist_ids":"15423","duration":819.973,"disccount":"1"},{"title":"Peter Tschaikowsky: Blumenwalzer (Nussknacker Suite)","genre":"Classical","id":51029,"trackartist":"Peter Tschaikowsky","artist":"Peter Tschaikowsky","composer":"Peter Tschaikowsky","year":"1990","composer_ids":"15421","tracknum":"5","albumartist":"Various Artists","playlist index":56,"disc":"1","album_id":"4875","duration":428,"artist_ids":"15421","disccount":"1","album":"Highlights Der Klassik","artist_id":"15421","albumartist_ids":"15084"}]},"id":0,"params":["00:04:20:27:da:2d",["status","55",500,"tags:cdegilqtysAKNS"]]}

I've truncated the last line, but it should contain the compelte play queue as returned from LMS. If you do the above, does the list returned match what Material shows in the queue? If so, its an LMS issue, if not then its Material.

So the first thing I can say is that the "last line" in my log does not contain the complete queue. Because of that, I was not able to verify what happens at the end of the queue. Earlier (before the recorded screencast) I tried reducing the playlist to about 10 or so items and then I got the full queue, but then the issue with the last track being duplicated was also gone.

But let's look at what's documented above. Note that the track I'm trying to move is "Deborah's theme" but the one that get's moved is the one immediately above it ("Skåningens hemlängtan"). The returned queue (as far as it is returned) is correct in the sense that the item with "playlist index":1 corresponds to the second item shown in the queue. But it is not correct in the sense that that item is not the one that was supposed to that position.

The last thing I looked at, trying to figure stuff out was the move command as it is logged:

[11:21:04 PM] JSON REQ: ["00:04:20:27:da:2d",["playlist","move",40,1]]

So if I understand the indexing correctly, this means that the 41st item should be moved to the second position, right? If this is correct, then the logged command is correct, because the item I tried to move was indeed the 41st item on the list (it is a bit difficult to count the tracks on the screencast, but I managed to do it.)

So does this mean that LMS is failing to execute the command correctly?

When the queue is out-of-sync/has-duplicates - does it have duplicates if you load Material in another browser?

Yes, it does. The duplicates are consistent across browsers and devices.

Does it also show as corrupt in other control points? e.g iPeng, Squeezer, SqueezeCtrl - as in the queue is incorrect in the display on these after the error has occurred.

No, the end of the playlist looks different in the Squeezecontrol App (Android).

Compare this: image

with this: Screenshot_20201222-235916

CDrummond commented 3 years ago

Sorry, but please just do as I ask. Lots of screenshots and recordings do not help. If I ask for debug that's what I need. Your debug seems to imply you have more than 500 items in the queue, but your screenshot has "1 of 57" - and you never answered my question about whether it matters the size of the queue. (If the queue as more than 100 items Material uses slightly different code). If it happens with only (e.g.) 10 items in the queue then produce the debug messages when there are 10 items in the queue. I need this debug to see what is going on, without it the rest is just noise. Sorry. I know that if a logged message is too long Firefox will truncate it and its shown in pink with "..." - but you can click on that and it will expand. I'm not asking you to interpret the messages, just add the full contents here.

The fact that duplicates are shown across devices and browsers implies this is an LMS issue. Different control UIs (e.g. SqueezeCtrl) will react differently to corrupt responses - hence the end of the queue being different.

tophee commented 3 years ago

Sorry, I didn't know that it is the Browser that truncates the long line. I just copied the contents of the console as shown in the screencast. Will redo and send a non-truncated version when I'm back at my desk.

Sorry, but please just do as I ask.

I believe I did. Where do you think I deviated?

Lots of screenshots and recordings do not help. If I ask for debug that's what I need.

You didn't ask for the debug. You asked me to look at it to determine the source of the error. The reason I also captured what is displayed is that you asked me to compare the debug response with what is displayed.

Your debug seems to imply you have more than 500 items in the queue, but your screenshot has "1 of 57"

I don't know why the debug says 500. The actual queue includes no more than 57 items. The screenshots show the exact same queue as shown in the screencast (after the move) and the screencast shown exactly the moment when I copied the debug from the browser console, i.e. exactly the debug I posted above.

you never answered my question about whether it matters the size of the queue.

I said:

Earlier (before the recorded screencast) I tried reducing the playlist to about 10 or so items and then I got the full queue, but then the issue with the last track being duplicated was also gone.

Does this not answer your question? Do you want me to further narrow down the number of items required in the queue for the error to occur? I can say that the test shown in yesterday's screencast is the first time I had more than 50 items in the queue. Previously, the queue included around 40 items.

If the code differs only for queues with more than 100 items, then I it seems implausible that I would get a different result with 10 and with 40. Do you want me to double check that?

CDrummond commented 3 years ago

Sorry, if I was not clear. I wanted you to post the JSON response so that I could see what LMS is returning. Without that there is not much I can do. Sorry if I offended, was not my intention.

However, seeing as when you load a new instance of the browser it still shows the corrupt queue - then this strongly implies its an LMS issue. Does it only happen if SugarCube is running? Perhaps the issue is there?

tophee commented 3 years ago

The problem seems to occur regardless of whether SugarCube is enabled or disabled, but I haven't extensively tested this (e.g. didn't restart the server).

Below is a lost with the plugins I have installed. Which of those could interfere with the queue numbering? Alternatively, which ones can be crossed off the list of suspects?

Since you can't reproduce the issue on your system, any of the plugins you have installed can be ruled out, I guess?

Additional Browse Modes 1.0
Chromecast bridge 1.45.0
Classical.com 1.0
Custom Browse 2.15.676
Customize Device 1.0
Date and Time 1.0
Deezer 1.0
Digital Inputs 1.0
Don't Stop The Music 1.0.0
Drag & drop music files to play 0.1
Dynamic Playlists 2.10.247
Full text search 1.0.0
Image Browser 1.0
Info Browser 1.0
IR-Blaster 6.2.2
JazzFM 0.3
Last.fm Audioscrobbler 1.0
LastMix 2.0.0
Lazy Search Music 3.6.6
License Manager 1.1.40
Line In 1.0
Live Music Archive 1.0
Material Skin 2.1.3
MOG 1.0
Multi Library 2.8.168
Music Information Screen 4.4.12
Music, Walk With Me 1.1.1
mysqueezebox.com services handler 1.0
Network Test 1.0
Pandora 3.0
Playlist Generator 1.2.3739
Playlist Manager 6.1
PowerSave 7.4.1
Presets Editor 1.0
Radio 1.0
Random Mix 1.0
Remote Music Libraries 1.0
Rescan Music Library 1.0
RSS News Ticker 1.0
Save Playlist 1.0
SettingsManager 2.1.17
Song Lyrics 1.1.3856
Song Scanner 2.0
Spicefly SugarCube 5.22
Spotty 4.4.6
Switch Player - Group Player compatible 0.4
The Synchronizer 0.10.0
SyncOptions 2.2.4
TrackStat 3.3.602
Visualizer Screensaver 1.0
What Was That Tune? 1.0.7
YouTube 0.127.0
CDrummond commented 3 years ago

As stated, I need the JSON output - that will let me know what LMS thinks the queue should be. I can then feed that into my instance, and see if there is an error with how Material is handling this.

CDrummond commented 3 years ago

Asked for JSON three weeks ago, no response. Closing.