MusicCabinet - artist radio, genre radio & related artists

Artist radio, genre radio & related artists. A Subsonic server for music nerds.

Moderator: moderators

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Tue Aug 21, 2012 9:13 pm

btw: another good way of contributing to this project, would be to give constructive feedback on the MusicCabinet code. What can be done better? What would annoy you if you were to start working on this project? Any Java/SQL feedback is interesting. https://github.com/hakko/musiccabinet
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Thu Aug 23, 2012 5:23 am

Do you ask about albums displayed in the "Home" view? That layout may change (or be configurable into different options). If you're asking about how albums are displayed for a single artist, that's not likely to change anytime soon. I don't like this Subsonic layout: http://imgur.com/vZKAI , I think that album art and album name should be placed together and that albums should be displayed chronologically, not based on folder names.

You can of course also edit the source to fit your own needs. Look into the .jsp files in C:/subsonic/jetty (or equivalent), you can change them and create your own interface.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Sun Aug 26, 2012 1:42 pm

Some of your feature request (tag aliases, lyrics search, album layout in Home screen) have been added together with integration of last.fm recommended artists. Enjoy! viewtopic.php?f=4&t=9777&p=44973#p44973. Post further questions here.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby Ultraviolet » Sun Aug 26, 2012 6:45 pm

Awesome! The alias feature cleans things up nicely. I've only been playing with this for a short while, but the only odd behavior I've noticed is that the text size (on the Genre page) of the genre alias or combined genre name doesn't seem to reflect the sum of all the combined genres. For example, I used "1990s" as a name that includes last.fm genres of "1990s", "90s", "90's" and "90s dance". The breakdown of "artists in library" (from the Genre page) is as follows:
1990s 4
90s 506
90's 13
90s dance 6

The "1990s" text on my Genre page is tiny though--about the smallest on the page. I'm guessing it's just reflecting the original count of 4 and not summing all included genres.

I'm running a full scan now to check out the Recommended feature. Great stuff! Thanks again for all your hard work.

Actually, it seems I've lost the ability to manually kick off a scan:

Image
Ultraviolet
 
Posts: 62
Joined: Wed Jul 21, 2010 2:29 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Sun Aug 26, 2012 7:04 pm

Oh, I moved the scan kick-off to Settings -> Media Folders. I planned to do as Sindre and integrate Media Folders and Search into one single page (just keeping Media Folders), as Media Folders has changed behavior compared with 4.6 where a scan was automatically started when adding Media Folders. But since that doesn't happen anymore, it makes sense to have both configuration and the manual scan start on the same page. But then I got tired of working with GUI code again and finished half through, sorry. I'll finish it later on.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby phantom4 » Sun Aug 26, 2012 10:52 pm

I'm really liking the 0.7.8 release, but I found a couple of issues. For some reason, I'm getting a NullPointerException when trying to load some playlists. It doesn't happen on every playlist, but there doesn't appear to be anything different about the ones that don't load. They're standard m3u files and worked fine in version 0.5.5 and Subsonic 4.6/4.7b3.

Here's the exception:

Exception java.lang.NullPointerException
Message null
Java version Oracle Corporation 1.7.0_06
Operating system Mac OS X 10.7.4
Server jetty-6.1.x
Memory Used 153 of 218 MB
Stack trace java.lang.NullPointerException at net.sourceforge.subsonic.service.PlaylistService$M3UFormat.loadPlaylist(PlaylistService.java:216) at net.sourceforge.subsonic.service.PlaylistService.loadPlaylist(PlaylistService.java:103) at net.sourceforge.subsonic.controller.LoadPlaylistController.loadPlaylistConfirm(LoadPlaylistController.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:471) at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:54) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

Also, this is not strictly a problem with MusicCabinet/Subsonic, but I'm a pretty heavy user of SubsonicTV (on the Roku) and since upgrading to the 0.7.x versions of MusicCabinet, songs no longer play in the standard interface. When you hit 'play', it goes into the standard video playing interface, full screen (in this case blank) with a play bar. I'm not sure what going on there other than it looks like it thinks it's a video file. If I switch back to Subsonic 4.6/4.7b3 with the same music, it plays properly in the app interface.
phantom4
 
Posts: 9
Joined: Thu Aug 25, 2011 6:46 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Mon Aug 27, 2012 5:26 am

I'll look into this playlist issue - sounds like I haven't been careful enough to handle all situations, sorry.

I'm not sure about the SubsonicTV/Roku issue though. I guess I have to post over at their forum for getting help troubleshooting. I suppose it uses the REST API, like other apps? I only tried the 0.7 release on iSub and streaming music worked on it.

The REST API for random songs (as an example) on my 0.7.8 install returns XML like this:

Code: Select all
<song id="287314" parent="3946" title="Notion" isDir="false" album="Moleskine" artist="Sometree" duration="268" bitRate="278" track="2" year="2004" size="9387087" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Sometree/Moleskine/02 Notion.mp3"/>


.. which conforms to the official example.

However, when I checked how the REST API behaves for songs on the Subsonic demo server, it returns slightly different XML:

Code: Select all
<song id="558" parent="439" title="Tag am Meer" album="Microdub-Nummer eins" artist="Microdub" isDir="false" coverArt="439" created="2009-10-03T12:04:54" duration="210" bitRate="128" track="4" year="2008" genre="Reggae" size="3408000" suffix="mp3" contentType="audio/mpeg" isVideo="false" path="Microdub/Microdub Nummer Eins/04 - Tag am Meer.mp3" albumId="10" artistId="7" type="music"/>


.. so I could try to adapt to that (and add type="music") and see if it makes a difference, first of all.

I'll send you a new subsonic.war for evaluation in a day or so.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby vollbr0t » Mon Aug 27, 2012 6:38 am

Wow, great update! I love the recommendation-function! Awesome!
vollbr0t
 
Posts: 75
Joined: Wed Jan 19, 2011 6:35 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby jake- » Mon Aug 27, 2012 8:41 am

hakko wrote:Some of your feature request (tag aliases, lyrics search, album layout in Home screen) have been added together with integration of last.fm recommended artists. Enjoy! viewtopic.php?f=4&t=9777&p=44973#p44973. Post further questions here.


Great update! Thanks.

It seems I cannot disable the display of certain genres anymore (check mark isnt saved). Genre cloud is quite large now ;-)
jake-
 
Posts: 40
Joined: Sat Oct 16, 2010 8:09 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby vollbr0t » Mon Aug 27, 2012 9:20 pm

I think the search-function is not working properly. I don't know under what conditions, but some songs, albums or artists can't be found through a search query, while others return the correct results.

Does anyone else experience this?
vollbr0t
 
Posts: 75
Joined: Wed Jan 19, 2011 6:35 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Tue Aug 28, 2012 5:37 am

I think that if you searched for an artist like http://www.discogs.com/artist/The+The, the search wouldn't match as it's basically a word search, that ranks very common English words low. When I wrote the search mechanism, I had super long TO DO-list and with the search mechanism I aimed for "good enough" rather than "awesome". I don't have any specific plans right now but it might change in the future, a fuzzy search looking for artist/album/song names in your database would be a much better idea than a word search.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby vollbr0t » Tue Aug 28, 2012 6:55 am

:( I think the search-function is useless right now. It can't even find songs like "My Horse Likes You". Obviously every word is filtered out!? ... songnames kind of often contain common english words... :D
Another example... i have an artist called "Nick Cave & Warren Ellis"... the only way to find it is to search for "Ellis". Any other word (like "Nick Cave" or only "Nick" or even "Warren Ellis") does not find anything...
vollbr0t
 
Posts: 75
Joined: Wed Jan 19, 2011 6:35 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby goatsofdoom » Tue Aug 28, 2012 12:25 pm

I'm not able to scan folders with names that include Unicode characters or certain characters nor do their contents show up in the file tree browser. Any idea how to fix this or is it a bug; it never happened with vanilla subsonic. (Running Debian squeeze stable)
Example:
A directory in the file tree browser Image
Inside:
Image
goatsofdoom
 
Posts: 2
Joined: Tue Aug 28, 2012 12:19 pm

Re: MusicCabinet - artist radio, genre radio & related artis

Postby hakko » Tue Aug 28, 2012 4:03 pm

goatsofdoom wrote:I'm not able to scan folders with names that include Unicode characters or certain characters nor do their contents show up in the file tree browser. Any idea how to fix this or is it a bug; it never happened with vanilla subsonic


When you start your Subsonic service, do you give it the parameter file.encoding=UTF8? like

Code: Select all
java \
-Xmx512m \
-cp /path/to/subsonic-booter-jar-with-dependencies.jar \
-Dsubsonic.httpsPort=0 \
-Dsubsonic.port=4040 \
-Dfile.encoding=UTF8 \
-Dsubsonic.war=/path/to/subsonic.war \
(...)
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: MusicCabinet - artist radio, genre radio & related artis

Postby goatsofdoom » Tue Aug 28, 2012 5:41 pm

Thanks but adding that to the service sh file and restarting the subsonic service didn't fix it. Though changing the system locale to en_GB.UTF-8 then restarting postgresql and subsonic seems to do the trick. Thank you again for the mod :P .
goatsofdoom
 
Posts: 2
Joined: Tue Aug 28, 2012 12:19 pm

PreviousNext

Return to MusicCabinet

Who is online

Users browsing this forum: No registered users and 3 guests