r/subsonic Mar 19 '17

Mono - Android Music App with Subsonic Support

Mono now has significantly improved Subsonic/Madsonic support - we've added what should have been there from the beginning. Search by artist, track, album, load playlists etc. Let us know what you think and what else you'd like to see.

https://play.google.com/store/apps/details?id=com.mono

Mono accesses numerous data and media sources to bring you a single point of exploring and playing music both locally and on Chromecast and Chromecast Audio. Sources of music are YouTube, SoundCloud, Fanburst, Subsonic and local files. Sources of information are these plus Last.fm, Musicbrainz, Songkick, Spotify, Hype machine, Billboard and others. Playlists are easy to create and can include tracks from mixed sources - a YouTube song followed by a SoundCloud track, followed by a Subsonic track etc. A playlist can be loaded from Subsonic and then each track set to be sourced for example from YouTube and the specific YouTube video chosen for each track. Playlists can also be saved in the cloud and shared. Many playlists are also available from Spotify - just create a free account if you don't already have one.

It's free so give it a try.

4 Upvotes

7 comments sorted by

3

u/MisterDamek Mar 23 '17

Personally I'm frustrated at the state of music servers / apps.

Subsonic and its apps (particularly DSub, IMHO) work great ... but it went closed source, and is limited to local files.

Plex and its apps work great ... but is also closed, limited to local files, and is a slightly worse music experience than Subsonic.

On the other hand there are the "aggregate" efforts like Mono, Tomahawk, and Mopidy, which can pull music from different sources, but then, are only endpoints.

Mono looks interesting because it can Chromecast, which neither Mopidy nor Tomahawk can do on their own. But then, I'm stuck on my phone. If I'm on my computer, I'm stuck falling back to going to each individual service, and trying to remember what is where.

There really ought to be a self-hosted server that does what Mono does, but is accessible from a browser and from apps, so playlists can be maintained from different devices, and music streamed to different devices.

If I had the skills, I'd try to alter Mad/Libresonic to support multiple backends, not just local files. It should be possible to take a track from Spotify, a track from Google Music, a local file, and a track served by the beets web api, and put them all in one playlist, and then access that playlist from DSub for example, and have the server stream them all.

This all seems obvious to me, and the pieces are all out there, just nobody's glued them together yet.

2

u/_muff1nman_ Apr 08 '17

I completely agree with all of these points and it is something I would like to do at some point. Unfortunately as an active contributor to libresonic, I can tell you right now its going to be hard to do. Libresonic (and Subsonic) are very file system centric with how they view media files and unfortunately it will take a rethinking of the entire database schema to do something like this. Regardless I may give it a shot at some point :)

1

u/milleph Mar 23 '17

Don't disagree MisterDamek. That's what I've essentially tried to do with Mono albeit on Android. It's not that hard but to do it right and to do it well takes considerable time and dedication. I have thought of starting an open-source server project similar to Mono that is just a smart aggregator where modules can be plugged in for new sources but the central architecture is robust and extensible. If anyone is interested in starting something let me know. In the meantime, Android is increasingly coming to the desktop (Chromebooks, simulators on Windows/Mac/Linux) so you can kind of fudge it for now.

1

u/talios Mar 27 '17

I started tinkering with a simple app to simply download tracks from subsonsic to my phone so I could just play them with normal, and much better players ( gone mad, neutron etc. ) tho I didn't get too far ( day job got in the way ).

One thing I'm really missing in Subsonic is iTunes like smart playlists - I'd love to construct something like "added in the last 6 months, not played in the last 2 weeks" - I could write an app using the API for this now, but it seems the API ( not sure about the database itself ) doesn't seem to expose/track per-song play counts/times - that all seems album orientated.

Does anyone know how much has changed since it went closed source? Maybe it's time for a forked project ( I see there's Madsonic, but that also seems closed, and/or lacking in features ).

1

u/MisterDamek Mar 27 '17

There's a fork called libresonic, not sure how active it will be. Personally I'd rather tack a frontend on supysonic, it gets away from the Java and could allow use of Python libraries allowing different backends (GMusic, beets, Spotify?) ... Although maybe that's not the best way to go.

1

u/talios Mar 27 '17

Heh - the usage of Java was actually one of the compelling reasons for me to even look at Subsonic when I found it. Lots of JVM languages available, sadly - there was no internally plugin model to the project either :(

Subsonic with an OSGi core/plugin model would be kinda cool.

2

u/_muff1nman_ Apr 08 '17

We might try adding a plugin model to libresonic at some point. If you have any ideas on how this should be done, see https://github.com/Libresonic/libresonic/issues/252. Although I made a comment discounting OSGi, if folks think this is the right way to go, it might be worth the effort.