Subsonic Hacks

自宅のMacSubsonic をインストールして家の外(iPhone App, 会社!)からアクセスできるようにしています。(過去エントリ http://d.hatena.ne.jp/hiboma/20110702/1309591830 )

だいたい便利なのですが、ひじょーに細かいで不満があったので自分でパッチを当てて改造してみました。

SubsonicJava

Java についての開発経験がほとんどないので、手順・パッチにおかしいところなどあったらツッコミ歓迎です。

ソースは http://sourceforge.net/projects/subsonic/ から手に入れられます。ライセンスは GNU General Public License version 3.0 (GPLv3)

Subosnic を ビルド

この記事を書いている時点での安定版のバージョン 4.7 をビルドしてみます。

$ svn checkout http://svn.code.sf.net/p/subsonic/code/tags/release-4.7
$ cd release-4.7/subsonic-main
$ mvn install

できあがった subsonic.war を、Subonic.app にコピーして入れ替えします

$ cp target/subsonic.war /Applications/Subsonic.app/Contents/Resources/subsonic.war

Subsonic を再起動すると変更が反映されます。( この warファイルをLinuxにコピーしても動くかな? )

なおHTMLをいじるだけなら /Library/Application\ Support/Subsonic/jetty/バージョン番号/webapp/WEB-INF/jsp 以下の .jsp ファイルを直接編集するのがお手軽です。ただしその後 subsonic.war ファイルを更新すると、jspファイルが上書きされてしまうので注意してください。

Hack1. アートワークのサイズを大きくする

デフォルトのアートワークのサイズが110px固定になっていて小さくてイマイチだったので、大きくしてみました。

diff --git src/main/webapp/WEB-INF/jsp/home.jsp src/main/webapp/WEB-INF/jsp/home.jsp
index 8792d60..87d8633 100644
--- src/main/webapp/WEB-INF/jsp/home.jsp
+++ src/main/webapp/WEB-INF/jsp/home.jsp
@@ -93,7 +93,7 @@
                             <c:import url="coverArt.jsp">
                                 <c:param name="albumId" value="${album.id}"/>
                                 <c:param name="albumName" value="${album.albumTitle}"/>
-                                <c:param name="coverArtSize" value="110"/>
+                                <c:param name="coverArtSize" value="200"/>
                                 <c:param name="showLink" value="true"/>
                                 <c:param name="showZoom" value="false"/>
                                 <c:param name="showChange" value="false"/>
  • before


  • after

アートワークが大きいと楽しいですね! 楽しいですね!

Hack 2. Play All ボタンを増やす

これは大分便利。ランダム/最近追加のリストに Play all のボタンを追加します。画面遷移しないでアルバムを再生可能になります。

diff --git src/main/webapp/WEB-INF/jsp/home.jsp src/main/webapp/WEB-INF/jsp/home.jsp
index 87d8633..199f51d 100644
--- src/main/webapp/WEB-INF/jsp/home.jsp
+++ src/main/webapp/WEB-INF/jsp/home.jsp
@@ -127,6 +127,7 @@
                             <c:otherwise>
                                 <div class="detail"><em><str:truncateNicely lower="15" upper="15">${album.artist}</str:truncateNicely></em></div>
                                 <div class="detail"><str:truncateNicely lower="15" upper="15">${album.albumTitle}</str:truncateNicely></div>
+                                <a href="javascript:void(0);" onclick="top.playQueue.onPlay(${album.id});"><fmt:message key="main.playall"/></a>
                             </c:otherwise>
                         </c:choose>
 
  • after


アートワーク見ながら適当にアルバムを探しまくる => 再生 が楽になるかと思います。

Hack 3. デフォルトの表示件数を増やす

デフォルトで表示されるアートワークの件数を増やします。ストックしている件数が多い方は、表示件数多い方がざくざく見れて快適かと思います

これは .java をいじらないといけない。

diff --git src/main/java/net/sourceforge/subsonic/controller/HomeController.java src/main/java/net/sourceforge/subsonic/controller/HomeController.java
index 0e3aca8..0e6b0d2 100644
--- src/main/java/net/sourceforge/subsonic/controller/HomeController.java
+++ src/main/java/net/sourceforge/subsonic/controller/HomeController.java
@@ -51,7 +51,7 @@ public class HomeController extends ParameterizableViewController {
 
     private static final Logger LOG = Logger.getLogger(HomeController.class);
 
-    private static final int DEFAULT_LIST_SIZE = 10;
+    private static final int DEFAULT_LIST_SIZE = 50;
     private static final int MAX_LIST_SIZE = 500;
     private static final int DEFAULT_LIST_OFFSET = 0;
     private static final int MAX_LIST_OFFSET = 5000;

デフォルト表示を50件にしたのですが、Macbook Air の画面が小さ過ぎてスクショとれないので略...


まとめ

見た目をちょいと変えたり、再生ボタンを追加しただけですが 使い心地は大分よくなりました。

バージョンアップに追随しないといけない面倒はありますが、ちょっとしたテコ入れで音楽聴きたい欲が刺激されるようになったのが良かったなと思いました。