# Tutorial 2: Algorithmic Manipulation The code below plays the first four notes of the default scale on repeat: ``` python p1 >> pads([0,1,2,3]) ``` It's possible to manipulate this by adding an array of numbers to the Player object This raises the 4th note played by 2 degrees ``` python p1 >> pads([0,1,2,3]) + [0,0,0,2] ``` And this raises every third note by 2 ``` python p1 >> pads([0,1,2,3]) + [0,0,2] ``` These values can be laced and grouped together ``` python p1 >> pads([0,1,2,3]) + [0,1,[0,(0,2)]] ``` This behaviour is particularly useful when using the follow method. ``` python b1 >> bass([0,4,5,3], dur=2) p1 >> pads().follow(b1) + [2,4,7] ``` You can schedule players to do things This will tell p1 to reverse the notes every 4 beats ``` python p1 >> pads([0,2,4,6]) p1.every(4, "reverse") ``` You can "chain" methods together by appending them to the end of the original line: ``` python p1 >> pads([0,2,4,6]).every(4, "reverse") ``` To stop calling "reverse", use `never`: ``` python p1.never("reverse") ``` Here are a few other methods you can use: Using `stutter` will play the same note `n` number of times with different attributes specified ``` python p1.every(4, "stutter", 4, oct=4, pan=[-1,1]) ``` Rotate will move all the values over by 1 in their order ``` python p1.every(4, "rotate") ``` To randomise the order of the notes, use `shuffle` ``` python p1.every(4, "shuffle") ```