gosc /

Filename Size Date modified Message
10 B
1.0 KB
1.5 KB
10.0 KB
3.5 KB
4.5 KB
2.4 KB
2.0 KB
1.7 KB


Pure Go support for OSC

Docs are available at

Build Status


go get

Client Example

import (

m := &osc.Message{Address: "/my/message"}
m.Args = append(m.Args, int32(12345))
m.Args = append(m.Args, "important")

// error checking omitted for brevity...
addr, _ := net.ResolveUDPAddr("udp", "")
conn, _ := net.DialUDP("udp", nil, addr)

numbytes, err := m.WriteTo(conn)
if err != nil {
    // handle error

Server Example

import (

osc.HandleFunc("/msg/address", func(msg *osc.Message) {
    fmt.Printf("Receieved message: " + msg.Address + "[")

    for _, arg := range msg.Args {
        switch v := arg.(type) {
            fmt.Printf("unknown argument type")
        case float32, float64:
            fmt.Printf("%f\n", v)


err := osc.ListenAndServeUDP(":8000", nil)

if err != nil {
    // handle error.

See the tests for more detailed usage.


Thank you!

  • Kelly Dunn (kellydunn)
  • Clinton Freeman (clinton_freeman)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.