[linux-audio-user] Algorithmic mixing/DJ'ing?

Ken Restivo ken at restivo.org
Wed Feb 14 05:30:29 EST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Long rambling question here; it's late.

I'm having fun making groove-like peices with various GNU/Linux tools (ardour, fluidsynth, rosegarden, ams, whysynth, et al), but I'm finding I just don't have a good feel for dance/DJ-style mixing.

So what I've been doing is just keeping the number of tracks relatively low, and keeping the peices very short, becuase they get boring after a while.  But that's not what I want. I'd like longer peices that evolve.

In other words, I can layer loops on top of loops like there's no tomorrow, but then the result is really too dense. I could sit here with ardour fader automation or something like Freewheeling/tapeutape, and try to randomly vary these and play around with mixes, but I don't have a good feel for it, I don't have the time sit through or choose from many iterations of 10-15 minute mixes, and there's no *audience* here to judge the result, so the exercise would be useless. I can't rely on past experience either: I've never done much live playing (and it's been 10 years since I did), and I'm too old to have ever done any live DJ'ing. That experience of "mixing" music live for an audience-- and varying dynamics and textures in order to keep the humans listening to it engaged and happy-- is priceless. And I just don't have it. 

The "social/human" answer would be: well, go find yourself a producer, someone who has similar tastes and who has lots of experience DJ'ing. I generally don't do well with collaboration, and finding the right people is always challenging, but that's one option, and I looked into possibly using ccmixter.com or splicemusic.com and letting "the group mind" do this for me.

The "DIY" answer would be: teach yourself how to do it. That's usually my default answer for anything, and it may be what I end up doing. But trying to find an audience to test the results, is difficult for me due to other obligations and limitations. I have been looking into options, like asking the owner of my local coffee shop if I can take control of his stereo for a few hours a day, plug a laptop and keyboard controller into it, and thus obtain an audience that has no idea they are an audience. But even then, I need a starting point first. I was going to begin by mapping out the "mix structure" of a few peices that I like (i.e., just about anything on Groove Salad on somam.com), and then edit the ardour fader automation visually to match. But I'd have to map out at a lot of mixes to try to distill their common features and how/why they work as mixes. 

Finally, I thought, wait a minute, there's another answer: the "geek answer". Instead of trying to find another human to mix for me, or trying to train myself how to mix, why not train the computer how to do it? What I'm on after is kind of a "mix algorithm", that I can execute. Why not teach the compter how to do it?

What I'd like to find or write, is a program that will take in lots of loops, and will generate mixes, based on some rules or examples derived from successful peices in this genre, and hopefully one which I can "train" by basically using myself as the audience, or possibly actually use in a live performance situation.  I'd either manually tag the loop samples, or ideally have it do some signal analysis to determine rhythmic density, tonal density, frequency range, etc. of each loop, and "slot" it in to the appropriate place in the mix. Even better if it does this in real time, so I can sit here with a keyboard and play stuff, and have the program decide on the fly where each loop might fit in the mix.

So my question would be: 
	1) Is there anything out there already (OSI licensed) which will do this?
	2) If I were to write it, what language/environment would be best suited for it (i.e. csound, pd, supercollider)?

Thanks.

- -ken
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFF0uTFe8HF+6xeOIcRAnbEAJ9J2FBkj9cvYSZ2v5MiumAfrBxI5wCeMojx
E25KCxa49jSqXFt9I80o5VA=
=IxBJ
-----END PGP SIGNATURE-----



More information about the Linux-audio-user mailing list