Thanks for the wonderful images of kit I neither own or can afford. It makes me wish my shares were doing just a bit better than they are at present Keep 'em coming. I love it.
Now, many moons ago, when I was about 12 or 13, I used to program computers...some of which you have probably never heard of. I programmed in BASIC, COBOL and Assembler. Unfortunately, most of that knowledge has melted awy with time and the odd drink or twelve.
However, if I recall correctly, when we were programming with lots of related and movable data, we used to use something called data arrays. Basically tables of numbers which were able to be quickly and easily accessed and manipulated.
Now this may be a simplistic analogy, but with DMX data, there 3 principle fixture elements: 1) The starting address. 2) Length of address string (number of channels used by fixture. 3) The data value held by each address.
There is a fourth element which relates to the number of values held for each data value box, i.e. the number of steps within the total chase count, but we will come back to that.
So the above is held in array. The array does not know anything other than it holds numbers.
Now, If we need to move an item in this array, we need to know its starting address and the string length and the position it needs to move to. We can then test the destination to see if there is space to place it. If there is, a simple copy & delete routine is carried out to move the values. The length of time the execution takes is determined by the fourth element as mentioned above.
Now forgive me if I got this wrong, it is some time since I did this sort of thing, but with todays processing power, even with hundreds of steps in a show, this should only take several seconds to execute.
There is no reason why, if the data structure of the application is thought trough prior to coding, any sort of data manipulation should be possible with minimal additional coding. Hell, they could probably pull this type of routine from open source coding libraries these days, something I never had so had to code from scratch.
Anyway. As Chris previously said, I have too much time to waste here and should just get on with the job in hand.
See you in a few days.