I currently have an output array which is the product of 3 input channels (lets call them a, b and c.) The output array produces the data so that it is in the order a1 b1 c1 a2 b2 c2......an bn cn. I need to organise this data so that it is split into three arrays, one for each channel, with the data in chronological order, i.e. a1 a2 .....an. I also need the process to be dynamic enough that it can cope with the number of channels changing each time the program is run. I am sure there must be an easy enough solution to this problem I am just not experienced enough to know what it is. Any help would be great.