Mapping (corresponding to the C major pentatonic scale)

Hafiz Atif's icon

Hi everyone
I hope you all are fine
I need some help.
If I have two separate lists.
Ist list contains data bt 1 and 40 integers
2nd list called scaled list contains some values like 2,4,7,9,etc
If both list have same number lets say 2 it will output as 2 but if number 8 which is not in scaled list it will mapped to nearest value i.e 9.
Will anyone please help me how to do the task?
Thanks in advance

Bill 2's icon

There's no doubt a few ways to do this, but I happen to have seen something very similar a few days ago: http://sites.uci.edu/computermusic/2014/09/22/adjust-pitches-according-to-a-pitch-class-set/

Roman Thilenius's icon

do you always start with c major?

if yes, you could translate it to 1,2,3,4,5... one time, and then use [zl nth] to play from the list you want to translate it to.

Hafiz Atif's icon

Thanks Bill Canty for your kind reply

Hafiz Atif's icon

Thanks Roman for your kind reply
Will you please tell me how to perform translation i means which command will do translation

double_UG's icon

Max Patch
Copy patch and select New From Clipboard in Max.

Roman Thilenius's icon

that would the reverse method of the output translation - you can also use zl nth.

if that is your input:

60, 62, 64, 67, 69

you would send the following list to the first input of zl nth:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 3 0 0 4 0 5

then it translates 60, 62, 64, 67, 69 to 1, 2, 3, 4, 5

in a second step you can now translate 1, 2, 3, 4, 5 to 300, 200, 100, hello, world using another zl nth.

it will work likewise with coll.

i would always prefer [zl nth] over [coll] - and in most situations it should be good advise to "normalize" arbitrary input sets to linear integers (starting with 0 or 1) before translating to another arbitrary set.

-110