Good point 
Now, chances are pretty good I’ll have to take a nap once I get home from work today and therefore I won’t get much done (still Fn sick..). But here is what I’m thinking now:
There are definatly some recognizable patterns in the dump data, look at colums 9-12 in the first three sets. Those alone are enough to re-inforce my assumption that the data is at least partially comprised of 16 byte rows. However, I’ve not yet figured out where certian data is represented. Since this is an unkown I’ll be starting by figuring out what information the 320 bytes must represent.
We know that a pattern contains information about 4 tracks, each with 3 layers and each layer with 16 positions that hold a value. We know that the largest value a position needs to hold will be 127, which requires 7 bits. We also know that a position being muted only needs a single bit.
We know that other track information needs to be represented as well. The BPM divider, the play mode and direction, the event type all need to be represented as well.
We can assume that TK has been, as always, efficient with his code and little to no space will be wasted.
Next, what kind of specific information can we gather about this particular string?
We know that each layer will have it’s own mute value and it will initialzed to off (0?)
We know that the information is used differently in drum mode and is probably more compact. Perhaps someone has a .syx of a blank pattern they could send me? I still can’t upload to a PIC..
SO, with these assumptions what can we see?
Perhaps it’s just a coincidence but the first 12 rows of data look likely to hold the information about the 12 tracks. We can see that there are 3 sets of similar rows, leading to the conclusion that each set of 4 rows represents layers A, B and C for each of the 4 tracks. We can see that within each “Layer” there are only a few differences between rows. The first and most interesting difference is the 9th column. This is the only unique column amoung the 12 rows and it is interesting to note that all the values between 24 and 2F are represented here. The only other inconsistancy are the first 4 columns of the first row which contain “3E” instead of “3F”. Only this first “layer” has this feature.
We can see that each row of each layer starts with 8 identical values. This is good, perhaps what we are looking for. These 8 values are followed by rows 9-12 with their interesting relationship discussed. It is interesting to note that column 12 has the same value for every row. The last 4 colums for each “layer” are all the same value.
It is also interesting to note that there is an extra byte in the footer. Although the “10” isn’t part of the proper sysex command I don’t believe it could be part of the data dump as we already have exactyly 320 bytes..