- Main

* MP3 Server Box
    - Features
    - Developper Doc
    - Download / Install
    - News / Changelog

* MP3SB Clients
    - TK/perl
    - C/Curses
    - Perl/Curses
    - Cgi
    - PHP3
    - WM DockAppS
    - Java
    - Gkrellm
    - GMp3SB
    - Windows(tm)
    - Qt/Kde

* Hardware
    - Supply for car
    - LCD
    - IR
    - Mp3car Client

* Misc
    - FAQ
    - Links
    - Gtk Equal
    - Pictures Gallery

* About
    - Download
    - The Crew
    - Contact Us





Da Picture



MP3SB The Deamon
As said in the Intro, this mp3 player act as a deamon on the server box. It 's written in perl and use rxaudio or a patched version of mpg123 to perform the song playing. By this way, from everywhere on a network you can choose the song you want to play on the server box. This kind of thing can be strange for you .. But I don't know what to do with my old P133 box .. and I really hate the music stop when a reboot my workstation for kernel hack so .. And I now can play music in my living room (place where big loudspeakers are ) while I 'm in my computer_room.

Short example is better than long talk


telnet p2b 2345

Trying 192.168.1.20...
Connected to p133.soif.fr.
Escape character is '^]'.
STATUS
Playing|585|359|89|04:11|100|955|0|00000
SONG_INFO
|585|U2|War|sunday bloody sunday||4|39|1
PLAY 39
Ok

As we see here commands are really simple but not really human readable. So to use it you need a client. Build a client is fairly easy . So as you see there is lot of different kind of clients. (I don't know why but the only client nobody want to code is a Windows(R)(TM) client ? :)

Features
- Full support of artist / songname :
To make it easy to search for a artist .. a song .. I decide to use a SQL database. With this method you can use really large scale of mp3. I test that with over 7000 mp3s without any pb !! So when you add a new song to server or delete a one .. (or more ) you need to run a small program (mp3sync) to syncr the database with the content of the Hard-drives

To find the artist/album/songname/number of song / date
The script look for the tag in mp3 or comply with this design
/artist/album/song_number - title.mp3
or the warez scheme
/artist - title.mp3
(space are important !!!!! )


ls -R /mp3/Placebo/

/mp3/Placebo/Placebo:
01 - Come Home.mp3
02 - Teenage Angst.mp3
03 - Bionic.mp3
04 - 36 Degrees.mp3
05 - Hang on To Your IQ.mp3
06 - Nancy Boy.mp3
07 - I Know.mp3
08 - Bruise Pristine.mp3
09 - Lady Of The Flowers.mp3


/mp3/Placebo/Without You I'm Nothing: 01 - Pure Morning.mp3 02 - Brick Shithouse.mp3 03 - You Don't Care About Us.mp3 04 - Ask For Answers.mp3 05 - Without You I'm Nothing.mp3 06 - Allergic (To Thoughts Of Mother Earth).mp3 07 - The Crawl.mp3 08 - Every You Every Me.mp3 09 - My Sweet Prince.mp3 10 - Summer's Gone.mp3 11 - Scared Of Girls.mp3 12 - Burger Queen.mp3

Or for singles ..


Sonic Youth - In to the Groove (Covering Madonna).mp3
Sonic Youth - I Love You Mary Jane (Cypress Hill).mp3
Sonic Youth - Ca Plane Pour Moi.mp3
Sonic Youth - Moist Vagina.mp3

- Support for web hosted mp3s :
One of the most funny feature of mp3sb is that you don't have to store all you mp3 at the same place. You can use differents filesystems .. and differents workstations without the need of using exported filesystem like nfs or samba. To do this we code a robot that search for mp3 over your network like this

mp3sync -add http://p2b/files/mp3/

*** scanning http://p2b/mp3/files/big/music/ ***
fetch: http://p2b/mp3/files/big/music/ ... ok
fetch: http://p2b/mp3/files/big/music/Muse/ ... ok
fetch: http://p2b/mp3/files/big/music/Muse/Showbiz/ ... ok
new : http://p2b/mp3/files/big/music/Muse/Showbiz/01%20-%20SunBurn.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/02%20-%20Muscle%20Museum.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/03%20-%20Fillip.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/04%20-%20Falling%20Down.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/05%20-%20Cave.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/06%20-%20Showbiz.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/07%20-%20Unintended.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/08%20-%20Undo.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/09%20-%20Sober.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/10%20-%20Escape.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/11%20-%20Overdue.mp3
new : http://p2b/mp3/files/big/music/Muse/Showbiz/12%20-%20Hate%20This%20&%20I'll%20Love%20you.mp3
12 new files, 0 files gone, 0 up-to-date entries found

And yes this method use the same scheme for finding the artist / song ..name.

- Support of playlist / queue :
You can have some playlist and use them as queue because if you add a song to playlist the server will detect it and add it will you playing music .

- Support different kind of playing mode :
SHUFFLE / REPEAT SONG / REPEAT PLAYLIST / SCAN (only play the first 10 sec of a song) are really well easy to use i think. You have no need to reload the playlist to disable playlist .. and stuff like this.

- Support for statistics :
The number of played song is stored in the database. So you can know which song you heard most of the time .. things like "top 10" of played artists .. statistics are updated at the middle of the song because I usuallly heard "Sonic Youth" songs that ended with a lot of noise that i skip:))

- Support stranges things :
You can change the volume from remote, shutdown computer .. The mpg123 version of mp3sb support more things like the equaliser / ESD. Another feature is that you can heard the sound on other workstation by using esd. I code a small prog called esdroute that connect to a remote host, catch the current sound and reroute it to another workstation. I use it to have the same sound on the both workstation of my room. But be aware that this use a lot of bandwith (200K!!) .I really like esd with this you can ever have some vumeter or stuff like that.

Member of the VA Affiliate Underground



Last modified : Mon Jun 19 22:27:28 2000
Emacs, wml and Gimp Powered
Copyright Jérôme Kerdreux 1999
Contact Jerome.Kerdreux@finix.EU.org