sointu/track.go

26 lines
539 B
Go

package sointu
type Track struct {
NumVoices int
Effect bool `yaml:",omitempty"`
Order Order `yaml:",flow"`
Patterns []Pattern `yaml:",flow"`
}
func (t *Track) Copy() Track {
order := make([]int, len(t.Order))
copy(order, t.Order)
patterns := make([]Pattern, len(t.Patterns))
for i, oldPat := range t.Patterns {
newPat := make(Pattern, len(oldPat))
copy(newPat, oldPat)
patterns[i] = newPat
}
return Track{
NumVoices: t.NumVoices,
Effect: t.Effect,
Order: order,
Patterns: patterns,
}
}