diff --git a/dist/hornverifier b/dist/hornverifier index ff0b173c..e5a4f859 100755 Binary files a/dist/hornverifier and b/dist/hornverifier differ diff --git a/dist/roverd b/dist/roverd index 891b1c45..1efe4b4a 100755 Binary files a/dist/roverd and b/dist/roverd differ diff --git a/dist/servoverifier b/dist/servoverifier index 35426b97..71f6a841 100755 Binary files a/dist/servoverifier and b/dist/servoverifier differ diff --git a/pi/roverd/cmd/hornverifier/main.go b/pi/roverd/cmd/hornverifier/main.go index 32e0bd06..a9f45802 100644 --- a/pi/roverd/cmd/hornverifier/main.go +++ b/pi/roverd/cmd/hornverifier/main.go @@ -144,7 +144,7 @@ func synthChord(writer *bufio.Writer, freqs []float64, rate, channels int, durat env := envelope(sampleIndex, attackFrames, steadyFrames, releaseFrames) sample := 0.0 for j := range freqs { - sample += math.Sin(phase[j]) + sample += sawFromPhase(phase[j]) phase[j] += increment[j] if phase[j] > twoPi { phase[j] -= twoPi @@ -181,3 +181,7 @@ func envelope(sampleIndex, attackFrames, steadyFrames, releaseFrames int) float6 } return 1.0 } + +func sawFromPhase(phase float64) float64 { + return 2.0*(phase/twoPi) - 1.0 +}