I hoped to put together a system that compares the backs to the fronts and lists the output to find cool transitions, but I have no idea how to actually "grade" the similarities
Beyond basic BPM matching on the drums tracks, nothing I've tried has made for anything really compelling (sounds random... :( )
The script [1] uses Essentia Chromaprint [2] to "grade" the similarity of audio tracks, and combine the ones with the closest chromaprint. No crossfade or BPM matching, just yolo concatenation.
I have a track on Soundcloud which uses the above technique (mashing together short generated clips by their chromagram), trained on Cannibal Corpse [3]
1: https://github.com/sevagh/1000sharks.xyz/blob/master/sampler...
2: https://essentia.upf.edu/reference/std_Chromaprinter.html
3: https://soundcloud.com/user-167126026/1000sharks-domainal-sk...
However I did get sound similarity working using an audio tagging neural net [1]. I chopped off the first and last 15 seconds of every song in my collection and ran them all through this analysis which produces a ~520 dimensional vector. I then targeted specific endings I wanted to match and used Euclidian distance to find the closest matching song beginning.
YMMV but I thought it actually worked pretty well, I just never got to automating the BPM matching. I can try to look for my old script if you're interested :)
it separates the components of tracks that it can download (and process), not of a live audio feed
- select the best next song given a simple input (for example, a microphone or a camera looking into the crowd)
- mix it into the current song
- repeat
Using AI you could probably intuit the "pulse" of the music to find the first beat of the first bar of a measure, and sync tracks up so that they mix in a place that makes musical sense.