The Haiku/BeOS Tip Server
Tips and tricks for Haiku/BeOS users

MP3Box

December 14th, 2007 by shacker

This project is extinct. Info below preserved for historical reasons.

This page serves as a home base to coordinate efforts of the BeOS community in building dedicated MP3 playback hardware running BeOS. If you’d like to build an MP3 box of your own, please subscribe to the mp3box mailing list by sending a blank email message to:

mp3box-subscribe@egroups.com

List archives and account management functions can be found at:

http://www.egroups.com/list/mp3box/

News

12/00: Stephan von Egmund has created a fantastic plug-in for SoundPlay called Be in Your Stereo. In fact, it’s so good that I’ve suspended all future work on the mp3box perl scripts. BIYS is all those scripts ever wanted to be and more. Now we can get back to the business of building our boxes.

11/00: John L. Varga has an MP3box well into production. Read his testimonial here.

03/00: Etienne Pelaprat is rapidly developing emp3Box, which consists of much original perl code plus portions of and concepts from mp3box (below). Eventually, the two projects will probably be folded into one. Both projects control SoundPlay remotely through a web interface, but emp3Box adds playlist management facilities to the picture (mp3box lets you create playlists through system queries, but does not let you edit them after the fact).

11/99: Scot Hacker has released the first version of mp3box, a perl-based system that can be used to control SoundPlay on a remote BeOS machine, such as one that might be found in a home entertainment system. Full details are in the readme. Currently seeking code contributions and bug fixes from the community.

What

If you’ve only listened to MP3 audio at 128kbps through your computer, you may not realize just how good the MP3 codec actually is. At bitrates of 160kbps and higher, played through your home stereo, the sound quality really does approach or equal that of CD audio. Wouldn’t it be great to have a home stereo component dedicated to the task of playing MP3 and other audio file formats? Such devices do exist, but are typically very expensive. There are a lot of plans, parts, and drivers floating around out there for building similar devices based on Windows or Linux, but there are none based on BeOS. Let’s change that.

The basic formula is simple, though there are virtually infinite possible variations on the basic scheme.

  • Choose an older processor that generates little heat so you can get by with
    a small, quiet fan.
  • Choose a small, specialized motherboard that will fit into a home stereo component form factor. Optionally design and build a custom compact case.
  • Run it headless. No monitor, but stick an LCD display in a free drive bay.
  • Control it via infrared remote (optionally wire custom buttons to the front
    of the case).
  • Make sure it has ethernet and an IP address so you can FTP MP3s into it,
    telnet in to manage playlists or build them from command-line queries.
    Possibly even build a web interface so you can select songs from a browser on
    another machine in the house. Wireless LANS are also an option.
  • For those without existing home networks, alternatively use USB for file transfer. Another possibility is to use removeable cartridges such as Jaz or Orb, though this requires owning two drives (one on your computer and one on the mp3box).
  • Allow for reading data from either HDD or CD, so you have a home stereo component capable of playing both audio CDs and MP3 data CDs.
  • Decide on an MP3 player that can be controlled via BMessages / scripting.

The implementation details are trickier. It would need:

  • Drivers for the LCD and the IR receiver, both of which can communicate back
    to the MP3 player.
  • An MP3 player possibly modified to receive these messages (though SoundPlay
    or CL-Amp may already be scriptable enough to handle this; I’m not sure).
  • A system for managing playlists, sorting, shuffling, skipping, etc.
    Possibly a script of some kind that autoruns on boot and interfaces with the
    IR and LCD drivers somehow.
  • Other stuff I haven’t thought of yet.

Why BeOS?

While it would probably be easier to use existing Windows and Linux software to implement this, there are some good reasons to go with BeOS:

  • Very fast boot times. A BeOS device should be capable of booting in 15 seconds or less. Due to its fully-journaled filesystem, reboot times will still be fast if you should lose power or crash.
  • Filesystem attributes will let us do cool things like creating custom playlists on the fly by querying on ID3 tags copied to attributes. Attributes can also store crossfade settings for each individual file, or for entire playlists.
  • Real-time BeOS features implemented in players like SoundPlay will let us do fast-reverse and fast-rewind without skipping, by speeding up or slowing down the playback speed. A command-line player might be more efficient, but would lack some of SoundPlay’s cooler features.
  • BeOS is media-optimized from the ground up. While this probably isn’t much of an advantage for simple playback, it does open up the possibility of extending the capability of custom devices to handle others kinds of audio/video streams. By attaching a full monitor (LCD?) rather than a miniature display, we could end up essentially building something similar to Be’s IPAD device.
  • Easy integration with the Diamond Rio, if you have one of those.
  • BeOS is the coolest operating system on the planet, and deserves to be at the heart of a cool device.
  • Be now focuses huge amounts of effort on BeIA, the Internet Appliance version of BeOS. This means we’ll likely see lots of optimizations and drivers for unusual, compact hardware beginning to appear.

Car

There’s absolutely no reason why such a system shouldn’t be flexible enough to work in both the home and the car, or to do just one or the other. People have different listening habits and needs. Once this group has come up with basic playback systems and driver ports, implementation details are up to each individual.

Hardware

Here are some of the suggestions that have come up so far. Other possibilities will be added as they arise on the mp3box list.

  • Notebooks: These would provide several advantages right off the bat, such as compact size and quiet operation. Their disadvantages include difficulty of getting supported sound in BeOS, poor sound quality even with supported sound, potentially higher cost, and inability to use an embedded LCD display. However, they’re perfect for car players. Some people might not mind using the full built-in LCD monitor, either, which puts them ahead of the game in some respects.
  • Matrix-Orbital: This company makes both keypads and small LCD displays. All we need are drivers.
  • Irman: A remote control designed to work with WinAmp and various Linux players.
  • Impy3: An ugly handheld unit that can be used to control a laptop unit in the trunk of a car.
  • MPEG (LAYER 3) AUDIO BOARD: Can potentially be used instead of a standard sound card. Includes a dedicated MP3 DSP and built-in RCA outputs (no need for line adapter).
  • PCM-5862: A very small motherboard that would probably work very well in custom case designs.

What We Need

We particularly need people with the skills to get drivers for LCD and IR devices recompiled and working on BeOS. If you think you can help get drivers for anything here ported to BeOS, please volunteer your services on the list.

  • Master controller application. Negotiates communication between input device, display, and MP3 playback software. Currently, mp3box and emp3Box are the best candidate applications, and mesh perfectly with Be’s Internet Appliance strategy. However, these will not work for car-based implementations.
  • LIRC: Linux Infrared Remote Control — software interface for standard IR receive / transmit units.
  • Universal Infrared Receiver: Similar to LIRC
  • Drivers for LCD displays. Several of these have appeared on BeBits (canned query).

More Information

We don’t need to invent everything from scratch. Start by doing some research at the many existing sites out there:

  • The mp3stereo mailing list (mostly inhabited by Linux users, but a very good source of information). Send a message to mp3stereo-subscribe@lists.gofast.net with the word “subscribe” as the subject.
  • Linux MP3 Players Project Page
  • CarPlayer.com
  • LC-DAT
  • MyGOD — Car MP3 player with lots of good pictures.
  • MP3OnDemand — A proprietary solution with much good info.
  • MP3 Server Box
  • Ampro This company makes a variety of small motherboards and PC-104 form factor modules. Quoting jacob lehrbaum (jlehrbaum at ups dot edu):

    ampro boards are tweaked to boot up as fast as possible, and they have one of
    the lowest bios-boot periods of any board. They are high quality parts that
    operate in extreme temperatures (-50 to 100 celsius spec), and you get pretty
    good tech support / customer support.. but you pay for it, they are not cheap.

  • MP3-o-Phono
  • XIMP
  • Obsequieum
  • PC104.COM — Small motherboards