Nice work! I have built a similar system for an ios app called Pacemaker DJ, it might be worth checking out for comparison/inspiration. I learned a couple of lessons from that project:
- some music is super easy to mix (minimal house) while others are basically impossible (punk rock)
- vocals in two tracks simultaneously always sounds bad/annoying. I ended up including a vocal detector in the algo.
- incompatible musical keys can sound really bad in some cases, in other cases just fine. I think it depends on the saliency of the notes, among other things.
- very few care about nice long beatmix transitions apart from djs. IME djing is mainly about playing good music and keeping a flow/vibe.
Hey, I actually checked out your app while doing research, great work!
> - some music is super easy to mix (minimal house) while others are basically impossible (punk rock)
I also found out that electronic music is easier to mix just because it's continous nature.
> - vocals in two tracks simultaneously always sounds bad/annoying. I ended up including a vocal detector in the algo.
Clashing vocals is a good problem to solve, I couldn't find a useful vocal detector in Python. I thought of EQ manipulation for it, cutting mid and high frequencies to totally ignore vocals, but it seems to kill the vibe.
> - incompatible musical keys can sound really bad in some cases, in other cases just fine. I think it depends on the saliency of the notes, among other things.
Keys are super important too, Essentia library has a great KeyDetection algo, and I implemented a Camelot Wheel harmonic matching functionality too. But it's not in the pyCrossfade yet.
> IME djing is mainly about playing good music and keeping a flow/vibe.
In the problem of choosing the next best song, I considered BPM and Key similarity, harmonic attrs etc. But I think, when mixing a playlist, it's more important to arrange the flow. Opening up with more calm songs and then reaching the climax, then giving people some time to catch their breaths. The whole DJ'ing process is track selection, some good tranisitions and managing flow/vibe as you said.
May I ask you: Is it hard to get Spotify API? I heard that Spotify would end it's every third-party support.
Yeah spotify is moving away from 3rd party playback, the apis you can get now are basically a remote control for the app. They didn't say why but I know labels don't like streaming djing because djs spend a lot more on downloads/physicals. Also, people used the api to make rippers which labels really hate.
6 comments
[ 0.17 ms ] story [ 24.2 ms ] threadYour logo idea is pretty neat, I might update the logo soon.
- some music is super easy to mix (minimal house) while others are basically impossible (punk rock)
- vocals in two tracks simultaneously always sounds bad/annoying. I ended up including a vocal detector in the algo.
- incompatible musical keys can sound really bad in some cases, in other cases just fine. I think it depends on the saliency of the notes, among other things.
- very few care about nice long beatmix transitions apart from djs. IME djing is mainly about playing good music and keeping a flow/vibe.
> - some music is super easy to mix (minimal house) while others are basically impossible (punk rock)
I also found out that electronic music is easier to mix just because it's continous nature.
> - vocals in two tracks simultaneously always sounds bad/annoying. I ended up including a vocal detector in the algo.
Clashing vocals is a good problem to solve, I couldn't find a useful vocal detector in Python. I thought of EQ manipulation for it, cutting mid and high frequencies to totally ignore vocals, but it seems to kill the vibe.
> - incompatible musical keys can sound really bad in some cases, in other cases just fine. I think it depends on the saliency of the notes, among other things.
Keys are super important too, Essentia library has a great KeyDetection algo, and I implemented a Camelot Wheel harmonic matching functionality too. But it's not in the pyCrossfade yet.
> IME djing is mainly about playing good music and keeping a flow/vibe.
In the problem of choosing the next best song, I considered BPM and Key similarity, harmonic attrs etc. But I think, when mixing a playlist, it's more important to arrange the flow. Opening up with more calm songs and then reaching the climax, then giving people some time to catch their breaths. The whole DJ'ing process is track selection, some good tranisitions and managing flow/vibe as you said.
May I ask you: Is it hard to get Spotify API? I heard that Spotify would end it's every third-party support.
Yeah spotify is moving away from 3rd party playback, the apis you can get now are basically a remote control for the app. They didn't say why but I know labels don't like streaming djing because djs spend a lot more on downloads/physicals. Also, people used the api to make rippers which labels really hate.
I think there is some alternatives like Beatsource's LINK, but it's not widely adopted, at least for end user.