feat(sointu, vm): implement pure-Go interpreter for bytecode

The old "native" compiler bridged version is now started with cmd/sointu-nativetrack,
while the new pure-Go bytecode implemented bytecode interpreter is started with
cmd/sointu-track

Thus, you do not need any of the CMake / cgo stuff to run cmd/sointu-track
This commit is contained in:
vsariola
2021-03-02 20:47:17 +02:00
parent a035845b81
commit 6d2b63a5e9
13 changed files with 891 additions and 58 deletions

View File

@ -1,8 +1,6 @@
package compiler
import (
"fmt"
"github.com/vsariola/sointu"
)
@ -25,15 +23,3 @@ func NewSongMacros(s *sointu.Song) *SongMacros {
}
return &p
}
func (p *SongMacros) NumDelayLines() string {
total := 0
for _, instr := range p.Song.Patch {
for _, unit := range instr.Units {
if unit.Type == "delay" {
total += unit.Parameters["count"] * (1 + unit.Parameters["stereo"])
}
}
}
return fmt.Sprintf("%v", total)
}