(Party) DJ Player

DJP.124.Large.png
DJP.124.Small.png

Motivation

A few years ago I was looking for a simple DJ tool to play songs at a party but my search wasn't successful (in my opinion). All of the tools that I found had disadvantages I couldn't live with. Most of the tools were complicated to install. Other tools weren't easy enough to use or had other disadvantages. Therefore, I decided to develop my own DJ player. As a starting point, I thought about my own expectations.

Expectations

First of all, my own player should be as easy as possible to use.
(Even if I'm drunk, I should still be able to use it. ;-)

Second, the player should be free of charge. Best would be an open source license.

Next, the player should be portable. That means no installation should be required. Starting a simple exe should be enough.

Furthermore, the player should run on most of the common (MS Windows based) operating systems. Therefore, the player should run on 32-Bit ans 64-Bit based systems staring with WinXP, if possible, as a native application without any "bad tricks" or pre-requirements.

Another expectation was that even an old computer should be able to run the application without any restrictions. Less than 1 Giga Byte of RAM should be enough.

The player should be able to play as many audio file formats as possible. I didn't want to convert every songs to as single specific format.

Gapless playing of a list of songs with automatic cross fade would be nice. It's not necessary to offer "club dj work" support (http://en.wikipedia.org/wiki/Disc_jockey#Equipment_and_techniques) . In my opinion the audience should hear if a new song is starting.

Finally, I looked for a real live application to test the event-based programming paradigm, especially my AB3.AppBuilder (See: https://ebcappbuilder.codeplex.com/)
Update (2015-12-03):
Meanwhile I switched to the followup project called AD4.AppDesigner (http://ad4appdesigner.codeplex.com/).

Approach

To reach my own expectations I started doing a "little" research concerning useful components because I didn't want to develop everything on my own or reinvent the wheel. I ended up at:

BASS audio library for the audio output: First, this library is very small, easy to use and is free of charge for open source software. This library is almost platform independent an really stable. Furthermore, almost every common file format is supported. (http://www.un4seen.com/)

taglibsharp to work with tags of the songs: This is a common open source library that is able to read the tags of almost every audio file format. (https://github.com/mono/taglib-sharp)

SQLite to store the songs and their properties: It's a very powerful and easy-to-use database library that can handle even big data in a very fast way. And it's open source too! Perfect to store structured data as small images like album art and so on. (http://www.sqlite.org/)

WPF (Windows Presentation Foundation) is used to build the user interface. With MS Visual Studio it is possible to create a suitable user interface that doesn't need many CPU resources because it uses the GPU instead.

AB3.AppBuilder to design the data flows in a graphical way and to use in the application directly to run the application (https://ebcappbuilder.codeplex.com/).
Update (2015-12-03):
AD4.AppBuilder class which is generated by AD4.AppDesigner is used now (http://ad4appdesigner.codeplex.com/)

C# as programming language because it's my favorite language ;-)

Quick Start

Install the Pre-requirements
Microsoft .NET Framework 4.0
The easiest way is to use the Microsoft Web Installer
http://www.microsoft.com/en-us/download/details.aspx?id=17851

Microsoft Visual C++ 2010 Redistributable Package
32 Bit: http://www.microsoft.com/en-us/download/details.aspx?id=5555
64 Bit: http://www.microsoft.com/en-us/download/details.aspx?id=14632

Get DJP

From "DOWNLOADS" section.
Extract to a folder
Start "DJP.WPFFrontEnd.exe" (the application doesn't install anything!)
Enjoy ...

Last edited Dec 3, 2015 at 1:56 PM by InneHo, version 25