Played more with the arpeggios and added support for more octaves and random generation of integer sequences. I had to remove some less used functions like random key because the buffer limit is causing issues.
Random arpeggio sequences can be generated using:
(1,3,3) = any random 3 numbers between 1 and 3.
(1…3) = suffle numbers between 1 and 3.
(1…7,3) = suffle numbers between 1 and 7 and pick 3.
This sample plays 6 random notes for i v and vi chords. N2 is used to set number of octaves in a chord:
zplay “N2 G(1,6,6) i 0 v 0 vi”
Same as before but ensures that each note is unique:
zplay “N2 G(1…6) i 0 v 0 vi”
This syntax can also be used in combination with […]-choose from array syntax to produce more interesting semirandom melodies:
live_loop :arpeggios do
zplay "N3 G[1324,e32q123,(3…7,4)] %-1 ii^m9 v^add13 %2 i^maj9 %-2 vi^m9 ", key: :f3