Back

DJ Application

Built with the JUCE Framework - March 2023

Time out!
This project is scheduled for removal soon as I make room for new and improved work. Most of its content has already been removed, but thanks for stopping by in the meantime!

Github repo is made private as part of University of London regulations.

OVERVIEW

Description

A user-friendly DJ application designed for effortless audio manipulation. With a straightforward graphical user interface, the DJ application empowers users to seamlessly blend audio from two decks (expandable for more) simultaneously, unleashing a spectrum of creative possibilities. Users can intuitively cue tracks, create loops with precision, fine-tune audio using high pass filters, and conveniently store their music library in local storage. This application simplifies the art of DJing, making it accessible and enjoyable for both novices and experienced DJs, offering a wide array of features for audio mixing and music exploration.

Retrospective

A project that impressed many of my peers, which is interesting because it wouldn’t have been the one I felt would be the most impressive to others. That being said, it was my first C++ project, and it did nothing less than show me how much I prefer C++ over the languages I had been learning prior. Was the transition from JavaScript hard? A little, but C++ has become my default language when I code something to solve a small problem. An interpreted language would be faster, but starting it in C++ means I could continue the project if I wanted to. I didn’t find this project hard at all; I loved every minute of it, and this is probably the point at which my coding became a lot more elegant, meaningful, and professional.

Tech Stack

JUCE, C++

PROGRAMMING

Functionality > Appearance

Though I made this application as aesthetically pleasing as possible, it was very important to me that it worked exactly as you would expect it to. I wanted it to be something DJs could use if they wanted to. Although the application is very limited in its current state, its features are useful to its users. Saving a song library isn’t the most flashy feature, but it is one of the most important ones.

Built on the principles of OOP, this project is extremely modular and adaptable. Adding new decks is easy, and adding new features is just as straightforward. This modularity will eventually be useful in personalizing and creating a “setup” for future users.

DESIGN

An aesthetic application

The DJ application I created features a design that mirrors the appearance of real DJ setups and professional DJ applications. It revolves around two decks, each equipped with a set of controls. These decks include graphical records that animate as songs play, providing an authentic DJ experience. A seek-able waveform display offers precise control over music playback. It was important for the application to feel intuitive to beginner and experienced DJs.

Playback controls, volume adjustments, and high or low pass filters are seamlessly integrated into each deck, ensuring that sound manipulation tools are easily accessible to DJs. Below the decks, a unified song library simplifies music management, allowing users to search, filter, and organize their music effortlessly. The design focuses on user-friendliness and a familiar layout to ensure that the focus is only on audio manipulation.

THE END