Skip to content

iKadmium/kadmium-osc

Repository files navigation

kadmium-osc

An OSC Library for .Net

codecov build status

Usage

Receiving OSC events

int port = 10000;
using OscServer server = new OscServer();

// Listen for any message at all
server.OnMessageReceived += (object sender, OscMessage message) => 
{
	Console.WriteLine(message.Address);
	foreach (var argument in message.Arguments)
	{
		if (argument is OscString str)
		{
			Console.WriteLine(str); 
			string otherString = str;
		}
		else if (argument is OscFloat flt)
		{
			// process it somehow...
		}
	}
	// OscStrings, OscFloats, etc, have implicit conversions to their C# types
	float firstArgument = message.GetArgument<OscFloat>(0);
};

// Listen for messages to a specific address route
server.AddAddressRoute("/stopAll", (sender, msg) => Process(msg));
server.AddAddressRoute("/track/*/{play,stop}", (sender, msg) => Process(msg));

// Listen for any messages that don't match any address routes
server.OnUnhandledMessageReceived += (sender, msg) => ProcessUnhandled(msg);

server.Listen(IPAddress.Loopback.ToString(), port);

Sending OSC events

int port = 10000;
string address = "/test";
string payload = "Hello world!";
string hostname = "example.com";

using OscClient client = new OscClient();

OscMessage message = new OscMessage(address, payload);
await client.Send(hostname, port, message);

About

An OSC Library for .Net

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages