Automated DJ based on microphone input.
Looking for a way to import a playlist of music files into Max, and have Max select them based on volume input into a mic (higher volume-> higher tempo track). I realize I'll have to probably manually tell Max what the tempo of each track is, and that's fine. Right now I'm planning on importing each song using sfplay~. I just need help with something that will analyze the volume level of the mic input. Thanks!
Check out the objects [pitch~], [fiddle~], [bonk~] and [sigmund~] ( http://crca.ucsd.edu/~tapel/software.html ).
Depending on the kind of music, you may be able to track the beat via maxmsp. One way to do it would be to set up a 'tap tempo' bit that receives 'taps' whenever there is a signal over a particular amplitude within a particular range of frequencies (e.g. the bass in techno, or whatever) - but I am sure this is something that has been done before so you can look it up and see what you find.
You can even use [meter~] and [scale] to make an association between volume levels and tempos.
Do you want something absolute (e.g. "if volume is 80db, then tempo is 120bpm; if volume is 100db then tempo is 200bpm" etc) or relative? (e.g. "if volume is higher than before, then next tempo should be higher than before")
I think it would be easier for me to do something absolute. Thanks for your help! Also I'm looking for only let the program change songs when the previous one has finished.