guitar midi help!

Mar 6, 2009 at 12:33pm

guitar midi help!

Hey guys, ive just bought a roland gk3 to use within a live set up,

So…. at the moment there are six channels of midi data being sent into max, one for each string……

But what i was wondering was if these could be combined somehow, so i could tell straight away what kind of chord i was playing whilst improvising!?

Any ideas? be grateful for any help!,

H.k.

#42704
Mar 7, 2009 at 10:13am

You mean like an instant chord recorgintion system or what possible chords could be played while improvising (chord substitution ect…) ?

#152865
Mar 7, 2009 at 2:27pm

Indeed! thats exactly what i mean!

Best

H.K.

#152866
Mar 7, 2009 at 7:12pm

This is a yummy and complicated problem. One place to begin may be to use [% 12] to determine the pitch-class of each note. With that information you can determine the intervals of the chord. But the same chord in different inversions will give you different answers (unless you only play augmented or diminished chords). And you still have a tricky task to determine which is the root note of the chord–is that an Am7 chord or a C6?

#152867
Mar 7, 2009 at 11:19pm

I think Peter Elsea has addressed machine chord recognition using fuzzy logic principles within his Lobjects suite. Try googling Lobjects, fuzzy.

#152868
Mar 8, 2009 at 12:33am

H.K. wrote on Fri, 06 March 2009 06:33

So…. at the moment there are six channels of midi data being sent into max, one for each string……

But what i was wondering was if these could be combined somehow, so i could tell straight away what kind of chord i was playing whilst improvising!?

This was a fun challenge which rapidly turned more tricky than I originally thought… I should know better, heh. The example patch does some of what you’re looking for (and it’s a popular and useful task in music, no doubt!) … but there are some limitations, which I’m trying to wrap my head around. A couple different ways of analyzing the chords are there, which hopefully will give some ideas. Using [vexpr] and [zl], and in one case an [uzi], allows some specific filtering and comparisons to be done readily, but there are issues with what the assumed root note is (maybe you’d have to specify that). Still, with some fiddling you can certainly build something to recognize lots of the main chords you’d be playing.

I plan to keep tweaking this, maybe more ideas will come up. In the “More Thoughts” subpatch there’s a method with [uzi] and [vexpr] which actually looks more promising than the one I started with… it’s more “hard-coded” than I wanted (you specify each basic chord class and iterate through the 12 keys to check the incoming chord), but with some chord-class list creation up front, you’d have all kinds of chords readily identifiable. I think I’ll try that route and see what happens… in the meantime, try this and see if it gives some ideas.

I also want a MIDI guitar. You know, to test the patch and all.

– Pasted Max Patch, click to expand. –
#152869
Mar 8, 2009 at 12:06pm

Wonderful! i didn’t think too many people would be looking into this problem, but a fantastic wealth of responses i must say!

Particular thanks to seejayjames!,

My initial plan was to be able to create a melodic responce to my playing – With improvisation being my main focus,

this has certainly given me plenty of ideas! thanks alot guys! ill post back with any developments!

Best

H.K.

#152870
Mar 8, 2009 at 5:48pm

You might have a look at markov chains for creating melodies based on input. Which could give you an excuse to use the most unfortunately-named max object of all: anal.

#152871
Mar 9, 2009 at 7:09pm

pun overload….must…stop…myself…

Thanks alot Holland, ill def. check that out!

H.K.

#152872

You must be logged in to reply to this topic.