Inspiration

I love music, especially EDM. This program was created for DJs with the intent that they will have a playlist that follows the rules of the circle of fifths, so that they can think less about making the perfect playlist and work more on their mechanical skills.

What it does

It requires a .csv file exported from the Serato DJ software's history tab. Once it parses the file, it stores all the tracks' information into a vector container and assigns a value depending on the key the song is in (based off the Camelot wheel). After that the user selects the starting track, the program finds and displays the user the harmonically compatible tracks relative to that track. The user selects the next track, and the user can continue building the playlist track by track. Once the user is satisfied with their playlist, they are provided with an option to exit the program

How I built it

C++, Serato DJ (for input .csv file)

Challenges I ran into

string parsing in C++ is different than C. The input file is sensitive to how Serato DJ is setup for an individual user. Main.cpp is ugly. Time constraints, I had more ideas I want to add to the program (i.e. export to file).

Accomplishments that I'm proud of

I learned a ton! Good work on string parsing in C, object oriented programming, and combining my developer side with a passion project I've been thinking about for awhile.

What I learned

Serato DJ needs to support developers! How to parse a .csv file and OOP practice

What's next for Harmonic_DJ_Playlist_Generator

Export to file option, Input validation (when building the playlist), and more rules such as a BPM difference % constraint.

Built With

Share this project:

Updates