Jordan Rudess of Dream Theater does this cool thing where he’s programmed a chord progression pad using a foot pedal to step through them, letting him play his solos on top. This is probably a very common technique and one I’m tempted to go for using GigPerformer.
As I’ve mentioned in previous threads, I’m no coder/scripter. I can pull of very basic stuff, but here I’m not completely sure where to begin.
I have a MidiInBlock, “K49”. I want to use the sustain pedal as a trigger for a sustained note. The MIDI Monitor says “CC 64 Hold Pedal (on/off): 127 Channel 1” when I press the pedal. I figure I can use this in an On MidiEvent script. BUT, I quickly get stuck when checking to see if the script received an on or off signal:
m is a string, right? So why does it say mismatched? Am I using the if/else statement wrong?
I had only one = in that script. Using == gives this error:
As you can see, I’m getting really confused trying to do these very simple steps and I haven’t even begun to figure out the tricky part of triggering a sequence of preprogrammed chords.
My plan is to use RipChord to map a all notes C1-C2 to different chords, then have this script just step through the full octave, triggering 12 chords. This way I can reuse the script and use RipChord to program what chords I want to be played.
Here’s an early attempt at this. This isn’t working, it’s just to show the simple idea:
var K49 : MidiInBlock i : integer Initialization //or triggered by a widget i = 0 End On MidiEvent(m : MidiMessage) from K49 if m = "CC 64 Hold Pedal (on/off): 127 Channel 1" then SendNow(K49, Transpose(C1, i)) //C1 is the first note to be sent through RipChord i += 1 else end End
Any input on this would be highly appreciated! As soon as I get a basic script up and running, I’ll be able to expand on it to create more advanced functionality. But TBH I don’t find the script documentation very helpful. Like what is wrong in the screenshots I provided? How do I figure this stuff out on my own?