Skip to content

Instantly share code, notes, and snippets.

@Sciss
Created October 8, 2014 12:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sciss/9257fb455dea088257cc to your computer and use it in GitHub Desktop.
Save Sciss/9257fb455dea088257cc to your computer and use it in GitHub Desktop.
import osc.Implicits._
val c = osc.UDP.Client(localhost -> 17737)
var marks = Vector.empty[Long]
c.action = {
case osc.Message("/query.reply", 1, count: Int) =>
c ! osc.Message("/doc/active/markers", "get", 2, "range", 0, count)
case osc.Message("/get.reply", 2, info @ _*) =>
marks = info.sliding(1, 2).flatten.collect {
case p: Int => p.toLong
} .toVector
println(marks.size)
case other => println(s"Not handled: $other")
}
c.connect()
c ! osc.Message("/doc/active/markers", "query", 1, "count")
marks // result
@Sciss
Copy link
Author

Sciss commented Jul 22, 2021

TCP variant

import osc.Implicits._
val c = osc.TCP.Client("127.0.0.1" -> 17737)

var marks = Vector.empty[Long]

c.action = {
  case osc.Message("/query.reply", 1, count: Int) =>
    c ! osc.Message("/doc/active/markers", "get", 2, "range", 0, count)
  case osc.Message("/get.reply", 2, info @ _*) =>
    marks = info.sliding(1, 2).flatten.collect {
      case p: Int => p.toLong
    } .toVector
    println(marks.size)
  case other => println(s"Not handled: $other")
}

c.connect()

c ! osc.Message("/doc/active/markers", "query", 1, "count")

marks // result

c.close()

@Sciss
Copy link
Author

Sciss commented Jul 22, 2021

markers are now (1.4.2) also printed via Debug > Dump Region Structure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment