I have been working on a small scriptlet project and have found myself using some code that could be much more optimal with an update to GPScript. I do accept I may also not be realising there could be a better way to do it and stand ready to be educated!
I am using some discrete parameters. Here is an example:
paramOffset("Interval Offset") : discrete parameter "unison","+2nd","+3rd","+4th","+5th","+6th","+7th","+8th","+9th","+10th","+11th" = "+5th"
To ascertain and utilise the chosen value I am using this code:
On ParameterValueChanged(p : Discrete, i : Integer) matching param1Offset
Select
p == "unison" do
currIntervalIndex = 0
p == "+2nd" do
currIntervalIndex = 1
p == "+3rd" do
currIntervalIndex = 2
p == "+4th" do
currIntervalIndex = 3
p == "+5th" do
currIntervalIndex = 4
p == "+6th" do
currIntervalIndex = 5
p == "+7th" do
currIntervalIndex = 6
p == "+8th" do
currIntervalIndex = 7
p == "+9th" do
currIntervalIndex = 8
p == "+10th" do
currIntervalIndex = 9
p == "+11th" do
currIntervalIndex = 10
End
End
What would be brilliant (for this type of scenario) would be if the event callback could be declared more like this:
On ParameterValueChanged(p : Discrete, i : Integer, discreteParamIndex : integer) matching param1Offset
currIntervalIndex = discreteParamIndex
End
where the third parameter in the callback function declaration is the index of the discrete parameter that has been selected.
Am I missing an already existing way to do this? Would it be useful for enough use-cases to warrant being added to GPScript?