Store an array of sections/segments. Each is an array of n positions, where n is the number of voices. Each position contains a pattern, a reference to a pattern or nil.
When reading file:
Find all players: this defines section array dimension
Create sections
When creating section: Section has dimension n
When creating/deleting player/voice; All sections are updated to have 1 more/less voice
Implementation Idea:
nil
.When reading file:
When creating section: Section has dimension n When creating/deleting player/voice; All sections are updated to have 1 more/less voice