FAQ for MusicBox

1. Why use SDL/SDL_sound ?
----------------------------
   SDL is designed for game development, but it also offers
   great control of CD-ROM, audio and video system. Combined with
   SDL_sound for audio format support, almost all the functions required 
   for MusicBox exist in a single library, which minimizes the problems
   of portability, installation, and audio format support.
   Otherwise, at least five libraries are required to reach the same
   functions of SDL/SDL_sound, and it is very troublesome to
   maintain the integration among these libraries.
   The video system may be used for visualization in the future.
   There are two SDL applications doing that already.
   SDL also offer OpenGL support, which is used in 3DKit.
   Actually, SDL might be able to be another backend of GNUstep.
   An addition SDL_TTF2 using FreeType 2 can be used for font drawing.
   There is a paraGUI toolkit using SDL for GUI development.

2. It complains "audio: /dev/dsp...: Device busy" ?
---------------------------------------------------
   That means the audio device is occupied by other application.
   For FreeBSD, read handbook about how to add the virtual audio device.
   Set environmnet variable SDL_PATH_DSP or AUDIODEV to the unused
   audio device. It should be able to avoid conflicting with gsnd.
   Since FreeBSD and Linux use the same OSS, it should work on Linux.

   This is what I do on my FreeBSD-4.5 box:

   1. Use `sysctl -a` to find out the audio device channel:
      hw.snd.pcm0.vchans: 0
   2. Either use `sysctl hw.snd.pcm0.vchans=4` or 
      add `hw.snd.pcm0.vchans=4` in /etc/sysctl.conf to
      increase the virtual device number into 4.
   3. Check the /dev/dsp*. There should be dsp0.0 - dsp0.3.
      Those are all the virtual audio device.
      If not, try `sh MAKEDEV snd0` in /dev. 
      More details in FreeBSD handbook.
   4. Normal application will use the /dev/dsp, which is 
      links to /dev/dsp0 and /dev/dsp0.0.
      Therefore, /dev/dsp0.1 - /dev/dsp0.3 are free.
   5. Set SDL_PATH_DSP or AUDIODEV to any of the free virtual device.
      Ex. `export SDL_PATH_DSP = /dev/dsp0.2` for bash.
   6. It should works now. Good Luck.

  (FreeBSD-5.x will automatically allocate the free channel via DeviceFS)

3. Why use the command-line program to encode the song ?
--------------------------------------------------------
   Because it is more easy to do that.
   The way MusicBox encoding music is the same as Mp3Maker.app.
   (http://www.users.comcity.de/~schueler/Apps/mp3maker.html).
   The existing CD rip programs on FreeBSD are dagrab, cdda2wav and cdparanoia.
   cdparanoia is the only official supported CD ripper.
   There are many libraries which can encode mp3,
   but the legal issue exists for all of them.
   Using the command-line programs rather than linking to libraries
   may minimize these possible problems.
   Sox supports so many kind of audio formats,
   but lacks the bitrate setting.
   Therefore, both oggenc (in vorbis-tool) and sox are used.
   Actually only oggenc is officially supported 
   becuase OGG is the official format used in MusicBox.
   The encoder using sox is NOT installed by default.

4. I don't want the weird kinds of playlist.
--------------------------------------------
   MusicBox offers many kinds of playlist.
   You can comment them out in GNUmakefile if you don't want to install them.
   All of them except the plain playlist are under AudioModule directory.
   The main library is the must-have, and will show up automatically.
   The plain playlist is not in AudioModule,
   therefore, you can't comment it out, 
   but it won't show up unless you create one.
   See USAGE for more details about playlist.

5. I don't want the encoding function.
--------------------------------------
   Comment out the EncoderModule/ in GNUmakefile
   so that the encoder won't be installed.

