To access and modify this information, we use a series of dict.unpack and array objects. The image below shows the basic blocks required to extract and modify note data from Live
![](https://static.wixstatic.com/media/edc571_52a81da87d2d4aeb8763940f71f348fb~mv2.png/v1/fill/w_710,h_517,q_90,usm_50.00_5.00_1.00/edc571_52a81da87d2d4aeb8763940f71f348fb~mv2.png)
The array.map object lets us iterate through and modify elements of an array. The image below shows what happens when we send an array into an array.map object.
![Using the array.map object in a Max for Live Midi Tool](https://static.wixstatic.com/media/edc571_f0a2f65e895740b59afe718510044929~mv2.png/v1/fill/w_701,h_450,q_90/edc571_f0a2f65e895740b59afe718510044929~mv2.png)
An array is a collection of elements, each identified by an index. In this case, each element in the array contains information about a MIDI note inside of the clip. If you were to select 8 notes to transform, the live.miditool.in object would output an array with 8 elements… 1 for each note.
The transform algorithm gets executed by sending a “bang” message into the live.miditool.in object, which then outputs an array of note data from live.
![](https://static.wixstatic.com/media/edc571_6a0c0176bb0c4e2d8b2be741865d9edb~mv2.png/v1/fill/w_742,h_361,q_90/edc571_6a0c0176bb0c4e2d8b2be741865d9edb~mv2.png)
![](https://static.wixstatic.com/media/edc571_99de489971534ffdb47753309784363f~mv2.png/v1/fill/w_716,h_473,q_90/edc571_99de489971534ffdb47753309784363f~mv2.png)