I’m having to recreate my rig and a lot of my programs for my bands as my music laptop was stolen, along with a controller. I’m working on using pedals for variation changes. I stand when I perform on keys, so I have to do a little “dance” between sustain and variation increment/decrement pedals (among others).
This brings me to a question. Would scripting be able to pass a variation change once a pedal is pushed, and then ignore repeated pushes for a short time?
My issue is that sometimes the push registers as two pushes and jumps past the immediate variation above or below. This is probably caused by not being used to changing patches on the fly with my feet and maybe double tapping the pedals. The pedals are new Boss pedals (I have 4 for various triggering).
I was thinking a “delay only” would register the changes and and pass them on after the delay timed was reached. That is not what I want.
I want the first trigger to “send”, then ignore repeated presses if sent from the pedal, for a predetermined time (like one or two seconds), and then a new single trigger would again register after the delay.
Hopefully I will get used to the pedal jumping and this will not be such an issue, but I have shows coming up that will not allow me that time before the curtain rises.
With scripting that could be done.
But you need to unmapped the variation change in the global midi options.
What CC message are you using for increment/decrement ?
Here I made a proof of concept
This is a gig script which uses Rig Manager
var TW : MidiInDevice
CC_Active : Boolean
Ramp_CC : Ramp
initialization
CC_Active = False
end
//Called when a CC message is received at some MidiIn device
//The CC numbers must be within the specified range
On ControlChangeEvent(m : ControlChangeMessage) Matching 12 from TW
if CC_Active == False then
CC_Active = True
NextVariation()
TriggerOneShotRamp(Ramp_CC, 4000, 10)
Print("Triggered")
end
End
// Called by function generators as time passes
On GeneratorRunning(timeX : integer, timeY : double) from Ramp_CC
if timeX > 3900 then
CC_Active = False
StopOneShotRamp(Ramp_CC)
end
End
2 Likes
Another solutions is a scriptlet in the global rackspace, and this is the code
Just include a scriptlet and connect it with you MIDI In device (your controller)
and past the below code into the scriptlet editor.
//Called when a CC message is received at some MidiIn device
//The CC numbers must be within the specified range
var TW : MidiInDevice
CC_Active : Boolean
Ramp_CC : Ramp
initialization
CC_Active = False
end
On ControlChangeEvent(m : ControlChangeMessage) Matching 12
if CC_Active == False then
CC_Active = True
Print("Triggered")
TriggerOneShotRamp(Ramp_CC, 4000, 10)
OSC_SendStringSpecific("/RackSpace/NextVariation", "", "127.0.0.1", 8001)
Print("Triggered")
end
End
// Called by function generators as time passes
On GeneratorRunning(timeX : integer, timeY : double) from Ramp_CC
if timeX > 3900 then
CC_Active = False
StopOneShotRamp(Ramp_CC)
end
End
3 Likes