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:
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.
Clients - responsible for creating input to the system, and writing the data to a dbfsd channel. Example generators are xmms, mpg123, and sox.
DBAudiolib - this is the client interface API to dbmix.
It provides transparent format conversion and pitch/speed control.
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
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:
Output multiple audio channels (up to 8 inputs) using a single sound device
Cueing support using multiple soundcards. (ability to have one sound device used for a master output, and a second sound device for headphones)
Cueing support using a single soundcard.
Supports the standard digital audio format of 16bit signed data at 44.1 KHz
Use of the Open Sound System for sound device control
Session recording to a wav file (controlled by the dbmixer options menu)
A single DJ Mixer style GUI interface for controlling DBMix channels.
Independent channel controls: volume/gain/level, pitch/speed control +/-
10%mute, cue, and pause.
IPC layer to allow the mixer to control the play/pause/stop/etc of dbmix client programs.
Crossfader
Punch buttons (allows you to add in the muted crossfader input. Handy
for popping in sound bytes)
Control of master and cue soundcard mixers
Swap master and cue soundcards on the fly
Autofade buttons with fade speed control
L/R Balance control
Clipping notification
The mixer is optionally controled by an external device. See section
titled Exmixer.
Digital Sampler with start/end editing abilities, and Load/Save samples
Beat matching synchronization tools (sorry no UI yet)
Multiple client support: xmms output
plugin, mpg123, dbcat, terminatorX, gqmpeg
(Note: to use gqmpeg, openthe preferences dialog, choose the Output tab, and
enter "-s" in the User options field to enable output to stdout. To launch
gqmpeg, type "gqmpeg | dbcat &" at the command prompt)
speed/pitch control.
format conversion from:
8 bit signed mono and stereo data
8 bit unsigned mono and stereo data
16 bit signed mono and stereo data
The following features will be included in future versions of DBMix:
ALSA sound system output support.
Network client support
freeBSD port
Icecast support
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:
Digital Sampler (vertical column second from right)
Beat Matching syncronization buttons (marked -S .]S[. and S+ on each
channel)
Digital Sample playback buttons for each channel (makred Once and Loop)
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:
The clipping notifier in the upper right corner. This "light" will turn
red when clipping occurs.
Each pitch control now has 3 speed buttons, the left and right buttons
will adjust the pitch by +/- 5% and the center button will reset the pitch
to 100%.
The Autofade buttons are the three button immeadiately to the
right of the crossfader. The "<" button will fade from right to left, the
"/\" button will fade to center, and the ">" button will fade left to right.
The Slider marked "Audtofade Spd." controls the speed of the fade.
Each channel now has a PAUSE button. Thanks to the dbmix IPC layer, you
can now transparently pause dbmix clients. Also, pressing the < or >
autofade buttons will cause a PLAY message to be sent to the proper client.
So, cue up that song to the place you want, pause it, and autofade will
start it for you!
Cue Split button - similar to the cue split found on DJ Mixers, this
will cause the master output to be played in one ear of your cue headphones,
and the cue output in the other ear.
Mic Talkover - enabling this button will cause the main output to be cut
by 75% so that the microphone can be clearly heard.
Balance control - adjust your speaker balance on a song by song basis.
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?
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.
Soundcards sound ... good. For around $50 USD you can get a soundcard with the same output capabilities of a $500+CD player.
Hard drives won't skip like cd/record players when jostled.
Digital audio are stored safely on the Hard Drive. No worries about having your CD"s or vinyl damaged from scratches!
File managers, drap 'n drop, and play lists greatly simplify organizing the music for the event.
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