From SME Server
Jump to navigationJump to search
PythonIcon.png Skill level: Beginner
Requires basic Yum Install and WGET knowledge

Madsonic (Subsonic) Music Streamer


Madsonic is developed and maintained by Madevil at Madsonic is a fork of the popular Subsonic developed and maintained by Sindre Mihus at


Madsonic is a free audio and video web based streamer for Linux, Windows, and Mac. There are several mobile and portable apps associated with it, and it has server transcoding capabilities allowing the client to stream as effortlessly as possible. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Madsonic is designed to handle very large music collections (hundreds of gigabytes), and has genre and tag capabilities. Although optimized for MP3 streaming, it works for any audio or video format that can stream over HTTP, for instance AAC and OGG. By using transcoder plug-ins, Subsonic supports on-the-fly conversion and streaming of virtually any audio format, including WMA, FLAC, APE, Musepack, WavPack and Shorten. If you have constrained bandwidth, you may set an upper limit for the bitrate of the music streams. Madsonic will then automatically resample the music to a suitable bitrate. In addition to being a streaming media server, Madsonic works very well as a local jukebox. The intuitive web interface, as well as search and index facilities, are optimized for efficient browsing through large media libraries. Madsonic also comes with an integrated Podcast receiver, with many of the same features as you find in iTunes. Based on Java technology, Madsonic runs on most platforms, including Windows, Mac, Linux and Unix variants.


Warning.png Work in Progress:
newburns has marked this page as a Work in Progress. The contents off this page may be in flux, please have a look at this page history the to see list of changes.

Information.png Tip:
Most instructions work for Subsonic Music Streamer. Variations will be noted in the instructions

Installing JAVA

Madsonic currently uses JAVA 7 or JDK 1.7
Subsonic currently uses JAVA 6 or JDK 1.6

Download JAVA 7

The download will be an rpm with the AuthPara appended to it, and must be changed for install.
DO NOT COPY CODE DIRECTLY, use as a template only.

mv jdk-7u25-linux-x64.rpm?AuthParam=1374499180_ba2f323c290aec0f6b07fb0dd355b80c jdk-7u25.rpm
Important.png Note:
In order to obtain the wget URL needed to download JAVA, begin the download in your web browser and pause or cancel. Then copy the link used in your browser's download. Right clicking on the JAVA download file directly from Sun will result in a "Fail to Download" due to the authentication issue. Subsonic will need JAVA 6, so download your JAVA files accordingly

Now that the file has been downloaded and renamed, install with:

yum localinstall jdk-7u25.rpm

At the time of this install, no other repositories were needed to resolve other dependancies.

java -version

Will show your current version of JAVA. If a previous version of JAVA is installed, remove before installing a newer JAVA.

Installing FFMPEG

Madsonic (Subsonic) uses FFMPEG to transcode audio and video for on-the-fly-streaming. Setup the DAG Repository as shown at

yum --enablerepo=dag install ffmpeg

"As of ffmpeg.x86_64 0:0.6.5-1.el5, EPEL Repository contains a newer version of the CPPUNIT dependancy which can be obtained by including --enablerepo=epel into the installation line. EPEL Repository can be seen at"

FFMPEG is installed and can be shown by

ffmpeg -version

Install Madsonic

Madsonic stable rpm can be obtained from the Madsonic Forum by

Information.png Tip:
Madsonic is currently in BETA and can be substituted for a stable Subsonic RPM from their website. Be mindful of the JAVA version that was installed

yum localinstall 20130718_madsonic-5.0.3560.beta4XE.rpm

There are some steps to make the Madsonic service available as a standard service that starts during bootup

ln -s /etc/init.d/subsonic /etc/rc.d/rc0.d/k02madsonic
ln -s /etc/init.d/subsonic /etc/rc.d/rc7.d/S98madsonic
ln -s /etc/init.d/subsonic /etc/rc.d/rc6.d/k02madsonic
ln -s /etc/init.d/subsonic /etc/rc.d/rc2.d/k02madsonic
ln -s /etc/init.d/subsonic /etc/rc.d/rc1.d/k02madsonic
config set subsonic service access public 
config set subsonic service status enabled
config set subsonic service TCPPort 4040
signal-event remoteaccess-update

Now you can control Madsonic with

service madsonic {start|stop|status|restart|force-reload}

Madsonic Tuning

You can adjust the JAVA Heap Size b editing the file

nano /usr/share/subsonic/

Adjust the SUBSONIC_MAX_MEMORY=x Once you have adjusteed the Heap Size, you have to adjust the Size of Memory Allocation by editing the sysconfig file

nano /etc/sysconfig/subsonic


Madsonic on a different port, or Port 80

Incomplete.png Incomplete:
This article or section needs to be expanded. Please help to fill the gaps or discuss the issue on the talk page