DETECTING REPETITIVE NOTES IN A MUSICAL PIECE
Hi guys, I'm VERY new to MAX/MSP and I'm having a bit of an issue trying to create an analysis patch that will analyse repetitive notes, record them for 3 seconds and play them back over 6 seconds through granuliser.
e.g I wish to detect in a piece of music (live or from audio file) if a note is being repeated, so if the performer plays an A then plays a section of other notes, I want the patch to tell me if the performer returns to another A. This could go into a bang that triggers recording.
The composer of the piece wants me to add effects to the note that triggers the repeat and so far I've tried doing this using flonum and trigger but I'm trying to successfully connect it to the pitch and k slider in analysis so it can record for 3 seconds and playback over 6 seconds through granulised synthesiser. I'm having a hard time managing to connect all of these things with success.
I NEED SOME TIPS!
Thank you.
First you'll need to translate the audio input to data you can analyse. This can be done with [fiddle~] The link provided gives you choice from a couple of analysis objects. Once you get the note information you can start building the compare logic and generative logic. But one step at a time:
http://www.maxobjects.com/?request=fiddle~
Thanks for the quick replies.
I'm currently using an analyser that I actually got from CNMAT and have managed to put the audio through the Kslider and connect that to flonum and use round to round the data of the note to trigger integer (t i i) and then through == so it gives me a bang when a note is repeated - the problem now is that I have connected that trigger to record and am having an issue getting it to record when it bangs (this is probably almost definitely down to the fact that I don't really know how to work the record and buffer system so cannot test to see if the trigger actually makes it record).
Just be careful at the == object. It's not just giving you a bang on repeat, it's giving you a bang on every state change. Put it through a toggle or an "= 1" object to only get bangs when the == is reporting a 1 - not 1 and 0.