Hi there
Terribly sorry. I've been travelling to trade shows and spending some time away from home so I haven't had reliable access to the internet.
You can have the signal based off of when strum is hit, that way it counts what each note is that is held and doesn't play anything until the strum is triggered. To do that, though, you're going to need to create a translator system for each chord. What I think would make sense is to assign a global variable to each string and a value to each fret. So, it would be something like string one is g0, fret one is g0=1, fret two is g0=2, etc. What you need to do is make sure there is a method of reseting the global variable to 0, because that's the only way chord combinations would work. So, for example, the signal sent by releasing the string could set the global variable.
You need to have one translator per string, and I would just set the value of the global variable to the fret's note value. So doing this would look something like:
Code: Select all
Translator 1: String 1
Incoming Message: F0 08 40 0A 01 01 pp F7
Rules: if pp!=64 then Goto "On"
if pp==64 then Goto "Off"
Label "On"
g0=pp
Exit Rules, execute outgoing action
Label "Off"
g0=0
Exit Rules, execute outgoing action
Outgoing Message: None
So each string has its own value, and when it is released the global variable is 0, so it can be ignored in the chord progression.
What we can then do is have the value of each string cross referenced when the strum up and down commands are used within a chord translator. So you'd have a translator for whole chords, and they wouldn't trigger unless all of the variables equal the correct notes. Does that make sense?
Sorry for the delay again, but I'm fighting jet lag and some of this is escaping my memory.