все "множественные" дорожки в партиях - звучат. только в зависимости от их свойств - одновременно или попеременно..
как будут играться более 6 элементов - не знаю. подозреваю, что какие-то 6 из общего числа будут, остальные-нет.
думаю, на начальном этапе, при формировании стиля, можно рассматривать, что элементов ровно 6,
а при чтении исходить из значения "количество элементов".
Если стоит узкая задача - вставить событие "Recorded Data" думаю, алгоритм будет такой:
1. Вставляем для i-й дорожки
2. Ищем адрес этой дорожки в секции DRUM или OTHR
3. образуем дырку из 3-байт по этому адресу
4. Увеличиваем на 3 байта адреса всех дорожек, начиная с i+1
5. Увеличиваем на 3 байта адрес секции OTHR, если дорожка из секции DRUM
6. Увеличиваем на 3 байта размер файла
7. Увеличиваем на 3 байта всё остальное, что я забыл указать
8. Вставляем в дырку 00 E5 00
9. PROFIT
Другой вариант, если файл уже считан и распарсен в стуктуру (я это уже делаю, а ты к этому движешься) -
просто в каждую (или в избранные) дорожку вставить событие
и при сохранении расставить актуальные адреса.