diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b090da..f310d8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). roughly to -12 dBFS true peak. ([#211][i211]) ### Fixed +- Occasional NaNs in the Trisaw oscillator when the color was 0 in the Go VM. - The tracker thought that "sync" unit pops the value from stack, even if the VM did not, resulting it claiming errors in patches that worked once compiled. diff --git a/vm/go_synth.go b/vm/go_synth.go index 446b869..2391dd4 100644 --- a/vm/go_synth.go +++ b/vm/go_synth.go @@ -500,7 +500,7 @@ func (s *GoSynth) Render(buffer sointu.AudioBuffer, maxtime int) (samples int, r *statevar -= float32(int(*statevar+1) - 1) phase := *statevar phase += params[2] - phase -= float32(int(phase)) + phase -= float32(int(phase+1) - 1) color := params[3] switch { case flags&0x40 == 0x40: // Sine