Flutterby™! : Building a Jukebox

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Building a Jukebox

2003-03-10 02:15:15.652634+01 by Dan Lyke 4 comments

I'm spending a few minutes this afternoon putting together a jukebox app that's controllable via a named pipe that spawns simple players. My intent is to put this in that Via Eden. But a quick ldd of mpg123 and ogg123 reveals all sorts of intertwinglements with assorted libraries. Is anyone else interested in building a player and maybe sharing code and compiles, specifically starting with figuring out the easiest way to build a static compile of these two apps or something else that'll play Ogg Vorbis files easily?

[ related topics: Free Software Music Dan's Life Embedded Devices - Via Eden ]

comments in descending chronological order (reverse):

#Comment made: 2003-03-10 21:35:14.918655+01 by: canis

I'm working on something similar (amongst other things) with Cinnamon. Written in Python, UI in your browser, Metakit to store metadata indices. Cross-platform (well, Windows, Unix and theoretically MacOS but I haven't tried that one as I don't have a Mac). Can stream music back across http as well as control a local player.

Not released yet though. :}

http://www.lycanthrope.org/~canis/cinnamon.html

BTW have you tried "madplay" for command-line mpeg playing? Always worked pretty well for me (back before the sound chip blew on my openbrick *frown* anyone recommend an OpenBSD-compatible, USB sound device?)

#Comment made: 2003-03-10 20:30:24.796579+01 by: Brian [edit history]

When I did this for my car, I used XMMS in an xvfb wrapper. I'm using a python control library.. XMMS does a great job of being remote-controlled. I still had to install the basic X libraries, but I didn't actually have to touch the graphics hardware. For booting out of CF, that might still be too much disk space.

I thought about building my own player program. Before falling back to XMMS I looked at some other pieces that might be useful, presented here in no particular order:

http://silmarill.org/cymbaline/

http://irmp3.sourceforge.net

http://mixplayd.sourceforge.net

project named 'mc-foo', probably on freshmeat.net or sourceforge

boodler

http://www.cse.unsw.edu.au/~cgray/julie/

http://www.replaygain.org

http://www.ukuug.org/events/li...rs/html/TRathborne_web-gimp.html (example of running Gimp in an xvfb, I do the same with xmms)

http://www.luga.de/pytone/

I wanted to be able to use festival (or rather flite) to announce track names. I also wanted to be able to overlap those announcements with the songs themselves (mixplayd did multi-channel audio mixing) but gave up on that feature.

The current car jukebox has a python controller program that sends one-album playlists to XMMS and polls it to see when the songs are done. A USB joystick up by the driver's seat provides the UI.

#Comment made: 2003-03-10 17:21:38.450514+01 by: Dan Lyke

Yeah, it's not hard to do, it's just time consuming. And mpg123 has dependencies on X libraries and such.

And experimentation this morning shows me that mpg123[Wiki] has some buffer management issues on my laptop sound card that XMMS doesn't have. I haven't tried either on the Via Eden board yet, but just sorting out that crap is what's going to take most of the time in getting this thing going.

#Comment made: 2003-03-10 15:52:52.242299+01 by: FnDragon

It should be pretty easy - just go through the dependencies, one by one, and make sure you have a .a file for that .so. If you don't, get that source and build it. Then when you get to the mpg123/ogg123 you should have all the static dependencies met so you can ./configure --static or whatever and it'll link right up.

Comment policy

We will not edit your comments. However, we may delete your comments, or cause them to be hidden behind another link, if we feel they detract from the conversation. Commercial plugs are fine, if they are relevant to the conversation, and if you don't try to pretend to be a consumer. Annoying endorsements will be deleted if you're lucky, if you're not a whole bunch of people smarter and more articulate than you will ridicule you, and we will leave such ridicule in place.


Flutterby™ is a trademark claimed by

Dan Lyke
for the web publications at www.flutterby.com and www.flutterby.net.