This library dynamically manages the CloudWatch scheduled events. So you wouldn't have to create the Rules with aws-cli or aws console, but make a simple call to aws-lambda-scheduler lambda function.
To answer your question:
+ deletes the expired rules automatically.
+ new rules can be created with a simple lambda call.
+ there can be maximum of 300 EventBridge Rules in a region, aws-lambda-scheduler introduces optimizations to work around this limitation.
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.