Hi
I'm trying to generate an array of 64 values where each value is either a 1 or 0 based on whether the note number is within a scale or not.
My plan was to use the following:
{(1 to: 64) collect: [:i | i eq: (i transposeBySteps: !TransposeBy scaleIndex: !ScaleIndex012 tonic: !Tonic)]}
But this throws the hotvariable cannot perform transposePitchBySteps error. I also tried with i eq: i nn transposeBySteps but this also doesn't work.
If i use the evaluate function on the "!aPitch transposeBySteps: !TrspScaleSteps0 scaleIndex: !ScaleIndex012 tonic: !aNoteNumber" capytalk help function and substitue !aPitch with values that would be represented by i (e.g. 1, 2, 3, 4, 5 ....) it does work as I'd expect.
Where am I going wrong please?
PS. My plan is to use this to send 64 values to my monome Arc ring LEDs so that as i change !ScaleIndex012 value different segment LEDs light up to indicate the values that are in or out of the scale.
Edit: Ok, I figured out that I can't use 'i' as the variable for transposeBySteps, it has to be a hotvalue or a number. So I tried:
{(1 to: 64) collect: [:i|
i eq: ((!Pitch suffix: i) transposeBySteps: 0 scaleIndex: !ScaleIndex012 tonic: 0)]}
Chaging the generated !Pitch fader values to matching number (e.g. !Pitch 4 to 4) should then work (it does in the capytalk help).