protected async Task <T> Send <T>(string path, int timeout = DEFAULT_500_MS_TIMEOUT, params object[] args) { //wait for the messages to complete being sent await Task.Run(() => _sender.WaitForAllMessagesToComplete()); if (args == null || args.Length == 0) { _sender.Send(new OscMessage(path)); } else { _sender.Send(new OscMessage(path, args)); } OscPacket packet = await RecieveOSC(timeout); return(FormatResponsePacket <T>(packet?.ToString(), path)); }