mirror of
https://github.com/vsariola/sointu.git
synced 2025-05-28 03:10:24 -04:00
There is a new "sync" opcode that saves the top-most signal every 256 samples to the new "syncBuffer" output. Additionally, you can enable saving the current fractional row as sync[0], avoiding calculating the beat in the shader, but also calculating the beat correctly when the beat is modulated.
34 lines
682 B
Go
34 lines
682 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/vsariola/sointu/oto"
|
|
"github.com/vsariola/sointu/rpc"
|
|
"github.com/vsariola/sointu/tracker/gioui"
|
|
"github.com/vsariola/sointu/vm"
|
|
)
|
|
|
|
func main() {
|
|
syncAddress := flag.String("address", "", "remote RPC server where to send sync data")
|
|
flag.Parse()
|
|
audioContext, err := oto.NewContext()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
defer audioContext.Close()
|
|
var syncChannel chan<- []float32
|
|
if *syncAddress != "" {
|
|
syncChannel, err = rpc.Sender(*syncAddress)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
synthService := vm.SynthService{}
|
|
gioui.Main(audioContext, synthService, syncChannel)
|
|
}
|