Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Problem: no audio info in 9.2.0
#21
(01-01-2025, 04:15 AM)TheOldPresbyope Wrote:
(01-01-2025, 03:38 AM)Tim Curtis Wrote:
(01-01-2025, 02:16 AM)TheOldPresbyope Wrote: @Tim Curtis 

For the last week I've been mostly quiet due to family events in MD, VA, and PA (Ah, what we Silverbacks do to see grandkids!).

A quick check tonight on a moOde 9.2.1 player vis a moOde 9.1.5 player

1. both players UPnP renderers set to service type: UPnP-A/V. Using mconnectLite on my iPad as UPnP control point and a local UPnP media server on my NAS. Using a Firefox browser on my Linux laptop. Start playing a track and in the webUI Playback screen click on '...' and choosing Audio info:

     - for the moOde 9.1.5 player I see the Audio information modal with the Track box highlighted and no track info displayed. Clicking the Playback box gets me the usual playback information (Input/output, etc.).

     - for the moOde 9.2.1 player, I get no modal popping up.

2. set both renderers to service type: OpenHome. Using Lumin on my iPad as UPnP control point. Everything else is the same.

     - the results are the same.

Haven't had time to look for any errors being logged. Suggested places to look?

Regards,
Kent

In file /var/www/command/audioinfo.php

Add the following workerLog() line above the switch statement. It will print the contents of the $_GET array to the moode log. This will show the 'cmd' and 'path' values which will allow you to walk the code path, possibly to the place where its blowing up.

Code:
workerLog("DEBUG:\n" . print_r($_GET, true));
switch ($_GET['cmd']) {
.
.
.

If nothing prints to the moode log then the blow up is prolly happening in function audioInfo() in upstream /var/www/js/playerlib.js.

Back to UPnP-A/V service type on the moOde 9.2.0 player and mconnectLite as Control Point. Start a track. With your added line, I get the following in the log (where 10.0.0.2 is my NAS and port 8200 is the miniDLNA service on it)

Code:
20241231 230248 worker: Ready
20241231 230711 DEBUG:
Array
(
   [cmd] => track_info
   [path] => http://10.0.0.2:8200/MediaItems/3173.flac
)

Regards,
Kent

Ok, that would result in this case being executed
Code:
    case 'track_info':
        $sock = getMpdSock();
        sendMpdCmd($sock,'lsinfo "' . $_GET['path'] .'"');
        echo json_encode(parseTrackInfo(readMpdResp($sock)));
        break;

Try the following:

1. Turn on debug logging in System Config

2. Enter MPD lsinfo command on that URL and see if it returns the tracks metadata
Code:
telnet localhost 6600
lsinfo "http://10.0.0.2:8200/MediaItems/3173.flac"

3. If no metadata is returned check the moode log for 
Code:
DEBUG: parseTrackInfo(): Returned null

4. If metadata is returned then the function parseTrackInfo() would need to be instrumented
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#22
@Tim Curtis 

For both moOde 9.1.5 and moOde 9.2.1 players:

Metadata is returned by MPD


Code:
rho@m920blue:~ $ telnet localhost 6600
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
OK MPD 0.23.5
lsinfo "http://10.0.0.2:8200/MediaItems/3173.flac"
Title: It's No Secret
Artist: Jefferson Airplane
Album: 2400 Fulton Street: An Anthology
Genre: Rock
Date: 1987
Label: RCA
AlbumArtist: Jefferson Airplane
Track: 1
Disc: 1
OK


OTOH, in moode.log I see occurrences of


Code:
20250101 133436 DEBUG: enhanceMetadata(): error: currentsong file is NULL



Regards,
Kent

PS - may not be relevant but early on in moode.log I see occurrences of


Code:
20250101 133254 DEBUG: chkVariables(): Excluded key: path
20250101 133255 DEBUG: chkVariables(): Excluded key: path
Reply
#23
Those excludes are ok.
The metadata from lsinfo looks ok.

This entry suggests there is no 'file' tag returned by the mpd currentsong command.
20250101 133436 DEBUG: enhanceMetadata(): error: currentsong file is NULL

While the track is playing try
Code:
telnet localhost 6600
currentsong
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#24
(01-01-2025, 07:03 PM)Tim Curtis Wrote: Those excludes are ok.
The metadata from lsinfo looks ok.

This entry suggests there is no 'file' tag returned by the mpd currentsong command.
20250101 133436 DEBUG: enhanceMetadata(): error: currentsong file is NULL

While the track is playing try
Code:
telnet localhost 6600
currentsong

For either player

Code:
OK MPD 0.23.5
currentsong
file: http://10.0.0.2:8200/MediaItems/3173.flac
Title: It's No Secret
Artist: Jefferson Airplane
Album: 2400 Fulton Street: An Anthology
Genre: Rock
Date: 1987
Label: RCA
AlbumArtist: Jefferson Airplane
Track: 1
Disc: 1
Pos: 0
Id: 10
OK

Regards,
Kent
Reply
#25
Debug on Firefox I get this when I try to click to get the audio info:
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
4 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
6 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
3 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 4
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
2 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
2 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> playerlib.js:2818
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> playerlib.js:2818
jQuery 2
playerlib.js:4932:25
GET
http://192.168.1.36/imagesw/thmcache/.jpg
[HTTP/1.1 404 Not Found 1ms]

Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> playerlib.js:2818
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> playerlib.js:2818
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
2 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
2 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
2 playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> scripts-panels.js:1663
jQuery 2
playerlib.js:4932:25
Uncaught TypeError: can't convert undefined to object
itemInfoModal playerlib.js:4932
audioInfo playerlib.js:4919
jQuery 8
audioInfo playerlib.js:4918
jQuery 10
audioInfo playerlib.js:4910
<anonymous> playerlib.js:2818
jQuery 2
playerlib.js:4932:25
Reply
#26
(01-01-2025, 07:37 PM)TheOldPresbyope Wrote:
(01-01-2025, 07:03 PM)Tim Curtis Wrote: Those excludes are ok.
The metadata from lsinfo looks ok.

This entry suggests there is no 'file' tag returned by the mpd currentsong command.
20250101 133436 DEBUG: enhanceMetadata(): error: currentsong file is NULL

While the track is playing try
Code:
telnet localhost 6600
currentsong

For either player

Code:
OK MPD 0.23.5
currentsong
file: http://10.0.0.2:8200/MediaItems/3173.flac
Title: It's No Secret
Artist: Jefferson Airplane
Album: 2400 Fulton Street: An Anthology
Genre: Rock
Date: 1987
Label: RCA
AlbumArtist: Jefferson Airplane
Track: 1
Disc: 1
Pos: 0
Id: 10
OK

Regards,
Kent

Ok, it looks like the lack of a file tag from lsinfo for UPnP paths is causing a blank array[0] element in the output from function parseTrackInfo() in command/audioinfo.php.

That can be fixed.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#27
Ok, after looking at the code this morning its turns out to be a length index that needed to be bumped in command/audioinfo.php. See commit https://github.com/moode-player/moode/co...8d772c9d18
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#28
(01-02-2025, 02:19 PM)Tim Curtis Wrote: Ok, after looking at the code this morning its turns out to be a length index that needed to be bumped in command/audioinfo.php. See commit https://github.com/moode-player/moode/co...8d772c9d18

Pressed for time here but a quick test on this commit on both the moOde 9.1.5 and moOde 9.2.1 players seems to work fine. The audioinfo modal pops up on both and the track info is shown on both. Nice!

Regards,
Kent
Reply
#29
Cool.

Btw I tried to setup a quick UPnP config with dlna server on one pi and upnp renderer (OpenHome) on another pi and I could not get either Linn Kazoo or MConnect Lite to discover anything. I was able to Lumin to do it though. It instantly discovered the dlna server and moode upon renderer but its UI is ... challenging.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#30
(01-02-2025, 06:24 PM)Tim Curtis Wrote: Cool.

Btw I tried to setup a quick UPnP config with dlna server on one pi and upnp renderer (OpenHome) on another pi and I could not get either Linn Kazoo or MConnect Lite to discover anything. I was able to Lumin to do it though. It instantly discovered the dlna server and moode upon renderer but its UI is ... challenging.

I find the whole UPnP environment...challenging. On the one hand, it's kind of painless to stream to local UPnP media renderers which might be hiding in our house. Examples: the LG smart TV and the Sonos soundbar. OTOH, it's a PITA to get media control points sorted vis-a-vis the service protocol. I have a stable of control points on my iPad and Pixel phone to deal the mess but I can never remember which knows only one service, which knows only the other, and which is ambidextrous, None has a UI that I particularly like but different strokes for different folks.

Regards,
Kent.
Reply


Forum Jump: