example proxy for turning OSC messages over UDP into a TCP stream
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jordan Orelli b4d935e658 explain it 6 years ago
ex show client example 6 years ago
README.md explain it 6 years ago
main.go tuntun is here 6 years ago

README.md

tuntun

this is a proof of concept proxy music messaging server. tuntun acts as a bridge between a udp message and a tcp socket. note that tcp is not in general recommended for music applications of this sort; this project targets a specific piece of hardware that only speaks tcp. if you have the option of avoiding tcp for anything latency or time-sensitive, avoid it in favor of udp.

anyway, usage:

tuntun [--listen addr] [--forward addr]

starting tuntun listens for incoming OSC messages on the provided listen address, and forwards them to a tcp server on the forward address.

the one understood message at the time of reading is as follows:

/example,i N

(where N is some integer)

this can be verified using a combination of oscsend and netcat:

  • open three terminals
  • in terminal one, start tuntun
  • in terminal two, start a netcat tcp listener. i recommend doing this in a loop since netcat will only process one tcp socket, then quit. nc -l 9225
  • in terminal three, send an OSC message to tuntun with oscsend: oscsend localhost 9220 /example i 15
  • you should see "15" printed in terminal two, and some debug info in terminal one.

there's also a chuck client example provided, in ex/ex.ck

installing

there's a release in the releases folder. You can untar that and put the binary anywhere on your PATH and you'll be good to go. I strong recommend putting the binary on your PATH so that you can invoke it from ChucK directly.

building

if you want to build from source (maybe you're not on Linux and can't use that release for example), all you need is a Go compiler and the OSC library.

  • Install Go
  • install the Go OSC library with go get github.com/hypebeast/go-osc/osc
  • build and install the binary to your $GOPATH with go install -or- build the binary in the current directory with go build and move it to your $PATH manually.