DBMix project is a 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.
Here are some key features of "DBMix":
· 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.
· 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