Ooh, I like where this is going...
~Kyle
Conceptually you need a 1-D array for the order, a 3-D array of structs for the patterns (pattern#,row,channel), and one array per sample. I say conceptually because the actual layout could be different if it makes things any easier.
For Impulse Tracker files, the 3-D array is to be replaced by a sequence of 2-D arrays because each pattern may have a different number of rows; and also there's the concept of instrument which inserts itself between the concepts of pattern and sample.
IIRC.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada