DBMix Digital Audio Mixing System


The ftp, web, and cvs space, as well as mailing lists and discussion forums for DBMix are graciously hosted by sourceforge

Last tarball released: version 0.9.8 2/24/02 (24/2/02)

This page last updated 2/24/02 (24/2/02)

Comments? Bug Reports? Feature Requests? Contact me at BobDean@users.sourceforge.net

On the topic of *BSD support: As of freeBSD version 4.2, it was not possible to run dbmix on FreeBSD systems due to a issue with blocking I/O on pipes. After contacting the FreeBSD development teams I was told that a patch for "linux style" pipes was in the works. Once this patch is available, I will port DBMix. If the patch is available now, please let me know.


Overview

DBMix is a software DJ mixing system for digital audio. DBMix allows a user to output multiple simultaneous audio streams on a single sound device, and to transform/modify each stream independently. There are five main components to DBMix:
  1. Fourier Synthesis Daemon - this is a daemon application that handles adding multiple data streams into a single data stream for output, allowing you to play multiple songs simultaneously with a single soundcard. Each data input stream to the fourier synthesis daemon is refered to as a "channel", because this is the name given to each input to an analog DJ Mixer.
  2. Clients - responsible for creating input to the system, and writing the data to a dbfsd channel. Example generators are xmms, mpg123, and sox.
  3. DBAudiolib - this is the client interface API to dbmix. It provides transparent format conversion and pitch/speed control.
  4. Mixer - the mixer is the user interface to the DBMix system. It allows a single interface to control all input channels. An example of a mixer is the DBMixer application. DBMixer allows the user to mute, change volume, cue, and crossfade inputs
  5. Peripherals - hardware devices that you can use to control aspects of dbmix. See the section on exmixer below for and example.

Features

For a full description of new features, the release notes and change log for the current version of DBMix can be found here.

DBMix currently supports the following feature set: The following features will be included in future versions of DBMix:

Exmixer

What is an exmixer you may ask? Simple. A young lad by the name of Simon Werner came up with the brilliant idea of controlling DBMix with a device that would connect to the joystick port found on most PC's. His full documentation explaining the who's, what's, when's, where's, why's, and most importantly the how's can be found here.

There are two pictures of Simon's exmixer. The outside, and the inside.

Download

The various tarballs can be found at the sourceforge project page. While you are there please sign up for one of the mailing lists, or browse through the public forums. Any helpful suggestions for the improvement of DBMix are appreciated!

You can also access the CVS repository here.


Screenshots

Version 0.9.8

This is the unified dbplaylist:

The playlist allows you to determine your song order, and then send each song to the proper player for playback. This image shows five songs in the playlist. The first two have already been cued (sent to a xmms session). The next song to be cued is highlighted in pink. This is the revised dbmixer UI of the 0.9.8 release:

New elements in this release: Version 0.9.7-2

This is the revised dbmixer UI of the 0.9.7-2 release:

The mixer only has two clients, one xmms playing at 110% speed, and the DBIn line in client. The new additions are:

Version 0.9.6

This screenshot (272 Kb) depicts DBMix running dbmixer with four clients: 2 xmms clients, one command line client using mpg123 with dbcat, and terminatorX.

Version 0.9.5

The big screenshot.(193K) It's big, but it's got everything you want to see! This screenshot shows most of the capabilites of DBMix. On the left is an xterm running the dbfsd sound daemon in debug mode. In the center you can see the DBMixer GUI. As you can see from the gui, this instance of dbfsd has four input channels, as well as cueing support. Clustered around the GUI are four separate instances of xmms.

Here's a more traditional mode of operation. dbfsd was launched with the "-n 2" option to only allow two input channels. Cueing is also enabled.

And here's one showing off pitch control. In the image we have 2 audio inputs one at 80% speed, and the other at 110% speed.

Why Digital Audio Instead of Analog?

or "you fool! only losers use mp3's to DJ!"

First off, vinyl and turntables are great. Those that can use them well are the true masters, and personally I think that they do sound better. The problem is that vinyl and CD's require a certain level of care. One scratch and they are worthless. So enter digital audio.

Why is this better?
  1. Easier to manage. The computer can be put under a table where it cannot be kicked, jostled, or have liquid spilled on it. You can use a cheap (and therefore replaceable) keyboard and mouse. The monitor takes little bit more effort to protect, but it can be done.
  2. Soundcards sound ... good. For around $50 USD you can get a soundcard with the same output capabilities of a $500+CD player.
  3. Hard drives won't skip like cd/record players when jostled.
  4. Digital audio are stored safely on the Hard Drive. No worries about having your CD"s or vinyl damaged from scratches!
  5. File managers, drap 'n drop, and play lists greatly simplify organizing the music for the event.
  6. As computing power increases, so does the potential of what you can do with digital audio. According to Signals and Systems theory, any electrical system can be represented mathematically. It just so happens that computers are really good at math. Therefore, it is possible to build a software based DJ system that has the exact same capabilities as an analog system. (Note: this is the point in the argument that the analog guys bring up such things as Quantization error, etc. Thier argument becomes moot when compared against 16bit digital samples and 18bit+ DACs. Do you listen to CD's? QED)
So what are you waiting for?! Download it already!


This page maintained and copyright by Robert Michael S Dean
Last modified: Tue Mar 7 00:47:27 CST 2000