Osc: how to register a method?

I’m using a node-red dashboard to control casparCG and it works well. Now I want to receive the status messages by osc-protocol. Therefor I use an osc-node to listen at port 5253 for osc-messages. It works, but I receive every osc-message not the only needed ones. What I want now is to register some paths to only receive these. I could also send osc-messages by another osc-node. But I don’t know the structure of the osc-path for registering a method and the port where to send at.

Can somebody help me? Perhaps I have some wrong understanding of how osc communication works.

You can find bellow

/channel/1/stage/layer/1/foreground/file/time
/channel/1/stage/layer/1/file/frame
/channel/1/stage/layer/1/file/fps
/channel/1/stage/layer/1/foreground/file/path

 Sub oscstartandregister()
	On Error Resume Next
	If sOscServer Is Nothing Then
		OscPacket.LittleEndianByteOrder = False
		sOscServer = New OscServer(ttype, IPAddress.Any, cmboscport.Text)
		sOscServer.Start()

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/500/type")
		If ServerVersion = 2.1 Then
			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/601/type")
		Else
			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/600/type")
		End If

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/profiler/time")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/format")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/profiler/time")

		If ServerVersion > 2.1 Then
			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/foreground/file/time")
		Else
			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/time")
		End If


		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/frame")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/fps")


		If ServerVersion > 2.1 Then

			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/foreground/file/path")
		Else

			sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/path")
		End If


		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/time")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/frame")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/type")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/background/type")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/profiler/time")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/transition/frame")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/transition/type")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/video/width")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/video/height")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/video/codec")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/audio/sample-rate")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/audio/channels")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/audio/format")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/audio/codec")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/loop")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/host/path")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/host/width")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/host/height")


		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/host/fps")


		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/host/buffer")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/" & "nb_channels")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/1/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/2/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/3/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/4/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/5/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/6/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/7/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/8/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/9/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/10/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/11/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/12/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/13/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/14/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/15/dBFS")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/16/dBFS")



		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/200/frame")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/200/path")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/200/fps")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/paused")


		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/150/file/frame")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/150/file/path")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/port/150/file/fps")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/vframe")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/file/speed")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/output/file/frame")

		'for server 2.2 start
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/foreground/file/name")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/mixer/audio/volume")

		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/foreground/file/streams/0/fps")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/buffer")
		sOscServer.RegisterMethod("/channel/" & g_int_ChannelNumber & "/stage/layer/" & g_int_PlaylistLayer & "/foreground/file/stime")
		'for server 2.2  end 

		sOscServer.FilterRegisteredMethods = False 'false so that if we change by hand the method name in client it will react to new method.

		dgvosc.RowTemplate.Height = 18
		dgvosc.Rows.Clear()
		dgvosc.Rows.Add(sOscServer.RegisteredMethods.Count)

		Dim iregisteredmethods As Integer
		For iregisteredmethods = 0 To sOscServer.RegisteredMethods.Count - 1
			dgvosc.Rows(iregisteredmethods).Cells(0).Value = sOscServer.RegisteredMethods(iregisteredmethods)
		Next
	End If
End Sub
2 Likes