feat(sointu): make patterns local to track

The global pattern table is constructed only during compilation. At this point, we can do also all sorts of optimizations / changes e.g. remove unnecessary releases and reuse patterns if there's a pattern already that could be used.
This commit is contained in:
vsariola
2021-01-03 01:06:59 +02:00
parent 06c006086b
commit 5dd81430b7
100 changed files with 395 additions and 150 deletions

View File

@ -96,7 +96,7 @@ func (t *Tracker) sequencerLoop(closer <-chan struct{}) {
notes := make([]Note, 0, 32)
for track := range t.song.Tracks {
patternIndex := t.song.Tracks[track].Sequence[t.PlayPattern]
note := t.song.Patterns[patternIndex][t.PlayRow]
note := t.song.Tracks[track].Patterns[patternIndex][t.PlayRow]
if note == 1 { // anything but hold causes an action.
continue
}