The proposal to control in some different modes i put in the first pic , where is two versions ..
And for the principle of generating multiple notes i have in my mind two version :) ...
I illustrated in the second pic .
A parameter named interval_ it adds at the note_scale from the
matrix like an simple number (first version) ,
so the vector is {0,1,2,3,4,5,6,7,8,9,10,11,12}, and the multiplicator_ is a number of how many intervals was generated.
For (i=1;i<multiple;i++)
{ note_scale=(note_scale + interval_*multiple_ ) } , or something ..
where multiple_ is limited at 32 or less notes per MIDI Channel.
Also in the future with more bigger ROM ,interval_ is a matrix generating double, chords and other sounds at different velocity...
I'm not a programmer, I'm just a fan of this site .