Share

DJMix

File Release Notes and Changelog

Release Name: alpha-20060208

Notes:
DJMIX Version 1.0
Author : Karl Soulabaille
Licence: GPL Licence
=============================================

DJMix is a mp3 dj'ing system. It consist of library for managing & mixing
MP3 plus a Trolltech QT front-end.

It has been tested mainly on Mac Os X and should also work on Linux.
It may work on other system on which QT has been ported as soon as the operating system
support POSIX thread library.

*WARNING* MacOsX wasn't supported anymore as i haven't any more Apple Mac :(

Functionnality are:
   - Work on Mac Os X (developping plateform) & Linux x86/PPC/AMD64 (yes!!!!),
	August 2005: The PPC would not be supported while Steve Job stop support it
	March 2006: The MacOs X PPC version stop to compile.... Does anyone want to fix it ????
	(does  anyone offer offer me a PPC dev kit :)). 
   - Loading cbr/vbr stereo mp3 files,
   - Loading raw files,
   - Multi-system sound output devices: CoreAudio, SDL, Alsa
   - MP3 File library support with sections & BPM support,
   - Support sample rate convertion from 44100 to 192000 hz (recommanded: 48000/96000 hz),
   - Support byte swapping operation on PowerPc architecture,
   - Support 16 bits signed Little Endian/Big Endian sound output device,
   - Support high-end 24 bits device (like M-Audio and others) if device use 32 bits sound format,
   - Core audio support extended soundcard like M-Audio revolution,
   - 4-voices turntable front end,
   - >2 channels output (for room output & headphone management),
   - Import most of GDAM song database (ascii format, not xml),
   - XML database,
   - Multithread support so it works better on Hyperthread or dual-core processors.

Library support :
   - Polynomial sample conversion from -200% to 200%,
   - Parametric number of voice mixing (default: 64),
   - Parametric output mixing voice (default: 8),
   - Use altivec on Mac Os (would not be supported anymore while Steve's job stop support it :( ),
   - MP3 File predecoding for better management of vbr seeking (and set down latency) that's why loading a MP3 is very slow!


Generic requirement:
The software require a fast engouht computer with 512 Mb of ram (decompressed file caching),
512 Mb of temporary space of disk drive for MP3 decoding.
A low latency sound card (Audigy or M-Audio) with high resolution's daci (24 bits is *highly* recommanded),
For MacOs, an altivec G4 1 Ghz CPU is recommanded.

Any processor would be supported now (PowerPc & x86 & x86-64...). Ihope that future strange cpu would also be working.


Software requirement:
- GNU Gcc 3.3+, autoconf 2.59, automake 1.6.3 (works with GCC 3.4),
- Posix thread Library,
- QT 3.3 (multithread (mt) are not required),
- Libmad 0.96 for mp3 decoding
- ALSA 0.9 sound kernel & Library on Linux operating system
  You will find SDL sound output library to help porting. However, it is not
  intended to be used as main output device driver.
- *or* SDL
- *or* CoreAudio
- Expat, for XML database management,

Main library (in kernel/ & lib/ directories) use only STL/posix libraries at this time.
They don't used QT library. Only "main" program (found in client/qt) use it.

About GCC:
There is bugs in G++ < 3.5 that prevent using "vector" for computing so it is not implemented at this time.


Configure parameters:
You need to select one output device
 --enable-alsa        For linux alsa sound system
 --enable-coreuadio   For Mac OS
 --enable-sdl         For SDL

 --enable-altivec      Enable use of some specific instruction of PPC

Altivec can be enabled on MacOS/PPC systems.

CoreAudio device use float kernel output format & use default bit rate setup on sound system.
It try to open 8/6/4/2 channels for headphone management.
 
Alsa supports devices using Signed 16 bits Little/Big Endian, or Signed 32 bits Little/Big Endian,
The device try to use in order 96 khz, 64, 48, 44 khz. If no one can be used, the software won't start.
It also try to open 8/6/4 channels for headphone management.

SDL supports only 44 khz device Signed 16 bits little endian. This device was created for porting purpose.
It manage only stereo device so there is not any way to use headphone.

Open Sound System will be never supported,

You should install fonts given in other/fonts directory.


To Do:
--------------------------------------------------------
* Filters,
* Replace polynomial speed change by an FFT high quality filter,
* DJ's mix effect (phaser, etc..),
* Definitely cut down ALTIVEC support,
* Definitely write down GCC VECTOR functions to use every simd instruction
  that cpu can deal with.
* Hardware device for mixing ;). Lot of jobs coming soon !
* Ogg Vorbis support,
* CDDA support,
* Implement DTD for XML parsing (should be never done  in fact !)
* Rewrite some C-coded parts to C++-coded parts (like file* => fstream, exceptions...)
* Improve error management,
...





Changes: March 30, 2006: - Explode client/qt/dbexplorer files into three files - File directory view (DB Explorer) is now filled only when user opened a directory from tree. March 26, 2006: - Updated autoconf & automake: "make install" now works, Expat checker - Added "Load"/"Save" database buttons March 25, 2006: - Cleanup doxygen doc - Added GPL copyright - Added configuration file support January 15, 2006: - SDL updated: supported no standard output fragment buffer - Device information into configuration January 4, 2006: - Ended Hotplug alsa device selection Sometimes it hangs .... Sorry ! December 9, 2005: - Added Hotplug alsa device selection - Start to wrote config editor November 205: - Wrote beat editor August 31, 2005: - Check about overflow in output functions, August 30, 2005: - Replace SongItem by SongItem* in map<SongDatabase>, - Implement repair db that recalculate length of each sections, August 13, 2005: - LCD display & beat editor use now back drawing & bitblt for free-flickers painting, - Beat Editor has been started August 05,2005: - Mutex has been rewritten and added on Source variables - Change vu-meter: the new one use a 1st order filter like analog VM. August 04,2005: - Change linear mixing gain by a logarithmic gain (like true mixer), - Checked for AMD 64, it works without any special thing ! There no changelog before because software was not really usable.