Thank you for your donation!


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


DLNA to moode
#21
(02-03-2024, 11:41 AM)Nutul Wrote: In theory you are right.
In practice... as has been said: you don't write a UpNP controller every day...
If you need it only to be able to play in moOde without using a phone/tablet as a controller, couldn't you just add the music library through shared SMB folder in moOde?

I understand that.
I just wanted to express that it would be a useful feature and it would be nice to have such a function.

If I were to integrate the existing music library into Moode via an SMB share, I would have access to the music, but only via the structure of the media library created by Moode.
With UPnP, on the other hand, there are many ways to prepare the structure of the library and thus make the music collection more individually accessible.
In my case, a structure perfectly prepared for our needs is already available via the Minimserver and is also already being used on other devices. For example under Kodi. However, it can currently only be used via Moode via an external control point.
Reply
#22
(02-03-2024, 11:49 AM)psychofaktory Wrote:
(02-03-2024, 11:41 AM)Nutul Wrote: In theory you are right.
In practice... as has been said: you don't write a UpNP controller every day...
If you need it only to be able to play in moOde without using a phone/tablet as a controller, couldn't you just add the music library through shared SMB folder in moOde?

I understand that.
I just wanted to express that it would be a useful feature and it would be nice to have such a function.

If I were to integrate the existing music library into Moode via an SMB share, I would have access to the music, but only via the structure of the media library created by Moode.
With UPnP, on the other hand, there are many ways to prepare the structure of the library and thus make the music collection more individually accessible.
In my case, a structure perfectly prepared for our needs is already available via the Minimserver and is also already being used on other devices. For example under Kodi. However, it can currently only be used via Moode via an external control point.

The usage scenario makes sense, and if someone can find an actively maintained Open Source project that provides the capability to make a UPnP media server appear as a browsable Linux file system on RaspiOS I'll have a look. What code does Kodi use?

For some history moOde did include this functionality prior to release 8.1.0 (2022-06-21) but as noted in the 8.1.0 release notes it was removed.

Code:
- UPD: Remove UPnP browser (djmount) which is unsupported on 64-bit RaspiOS

Note that even barring the failure to run on 64-bit RaspiOS, the djmount project is also long since abandoned. The last update was nearly 20 years ago. https://github.com/mbarbon/djmount and so that alone would have gotten it on the "To be removed" list.

The other issue with approaches like djmount which proxy all the UPnP media server data into a Linux file system is slow performance and duplicate references to files because of how the UPnP data is structured.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#23
Ah, minimserver. What a lovely thing that is. I run it on my NAS for when I'm listening on headphones via my phone. That does indeed make the UPnP offered from moOde (miniDLNA I believe) look decidedly clunky so I see why you wouldn't want to move the library.
It took me quite a while to adjust to the moOde implementation of the MPD database after using minimserver exclusively for a couple of years before hand. If you could describe your minimserver organisation, there may be a way to at least approximate it in the moOde interface?

Just until a bored UPnP wizard stops by to build us a suitable control point that is Smile
----------------
Robert
Reply
#24
(02-03-2024, 01:56 PM)the_bertrum Wrote: Ah, minimserver.  What a lovely thing that is.  I run it on my NAS for when I'm listening on headphones via my phone.  That does indeed make the UPnP offered from moOde (miniDLNA I believe) look decidedly clunky so I see why you wouldn't want to move the library.
It took me quite a while to adjust to the moOde implementation of the MPD database after using minimserver exclusively for a couple of years before hand.  If you could describe your minimserver organisation, there may be a way to at least approximate it in the moOde interface?

Just until a bored UPnP wizard stops by to build us a suitable control point that is Smile

Just to avoid setting false expectations. It's definitely a no-go to integrate or support a UPnP control point in moOde.

The only additional UPnP functionality that could be considered would be an actively maintained project that provided an improved replacement for the ancient djmount.

By improved I mean that it would at a minimum:

- Handle differences in how various UPnP media servers structure their data
- Present a unified Artist/Album/Track file structure to moOde that filters out all duplicate references to albums and songs
- Provide performance similar to SMB or NFS
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#25
A lot of the apparent organization of a UPnP Media Server's content is illusory. By this, I mean the server + control point offer a user different but apparently real paths to tracks based on user's search criteria (genre, performer, etc) but these "paths" are mapped internally to the server's actual directory structure. I don't think offering the minimserver music library contents as a Samba share will cut it for this user.

UPnP isn't for me but I'm always on the lookout for clever practical implementations of technology.  I'm not holding my breath on this particular one.

Regards,
Kent
Reply
#26
No, of course not structured as a Samba share. I was referring to the differences in the way various UPnP media servers name and render their data structures. Control points just read these as-is but to turn them into a standard artist/album/track file hierarchy readable by moOde is a big challenge.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#27
Argh. I was actually responding to Al but didn't get it posted before you got yours in.  Not the first time that's happened Angry
Reply
#28
(02-03-2024, 01:01 PM)Tim Curtis Wrote: What code does Kodi use?

If I see this correctly, Kodi seems to use Platinum UPnP.
Reply
#29
(02-28-2024, 02:11 PM)psychofaktory Wrote:
(02-03-2024, 01:01 PM)Tim Curtis Wrote: What code does Kodi use?

If I see this correctly, Kodi seems to use Platinum UPnP.

The Platimum dual license requires close reading but I “think” it says FOSS developers can use the code under GPL 2.0 or later.

Does not appear to be actively maintained. Last change to actual code was 4 years ago.

Fully featured and pretty well documented.

Regards,
Kent
Reply
#30
And then I said "...pretty well documented".

Let me retract that. The README looked pretty well documented but when I sat down to play I realized even that isn't.

Tried to build in RaspbiOS and got tripped up just past the starting point because I hadn't figured out some of the details of configuring for it. Simply defining an alias or link somewhere would probably fix it but what/where? OTOH the build ran to completion on my Linux laptop.

The code base is C++. The listed language bindings are Objective-C, C++/CLR, and Android/Java/JNI. The build tool is scons (available in Debian distro) rather than make.

The actual documentation is the usual Doxygen output of C++ class lists, etc. The main page of the output reads


Quote:Introduction
The Platinum SDK contains all the software components necessary to build and use the Platinum UPnP Framework. This includes the Platinum framework and the Neptune C++ runtime library.

Architecture
The Platinum framework consists of a core framework that implements the UPnP core specifications including GENA, SOAP and SSDP. Building on top of that, the Platinum framework provides the foundation for UPnP AV Media Server and Media Renderer compliant implementations.

The Platinum framework leverages the Neptune C++ runtime library which offers an elegant platform abstraction layer for multithreading, file system and network operations. Additionally, it provides support for XML parsing, string and time manipulation, template based linked-lists, stacks and arrays, and a configurable cross-platform logging system.

Maybe a real developer could work with this but it's way too low-level for me to play with, not to mention written in a language I never fully grokked.

Regards,
Kent
Reply


Forum Jump: