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 01:15:15.652634+00 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 ascending chronological order (reverse):

#Comment made: 2003-03-10 14:52:52.242299+00 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 made: 2003-03-10 16:21:38.450514+00 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 19:30:24.796579+00 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 20:35:14.918655+00 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?)