Skip to content

Releases: Barinzaya/warudo-osc

v0.2.5 - Bundle Handling & Node Performance

21 Jul 10:07
Compare
Choose a tag to compare

This update includes three changes, none of which are likely to be noticeable to the user.

First, rather than separating bundles into individual messages on the async thread and feeding them to the main thread one at a time, bundles are passed through to the main thread in whole. Most importantly, this ensures atomicity of bundles (per the OSC spec). All of the messages in a bundle are guaranteed to be processed on the same frame, and no other messages can be interspersed in the bundle. This also has the side effect of making it easier to implement bundle time tags in the future to "schedule" a bundle, but that hasn't been implemented yet.

Second, data output port changes are reduced, such that rather than recreating all data output ports every time an argument type changes, only the affected ports are recreated.

Finally, an unnecessary Broadcast on the input node is removed when processing a received message. This was incurring a large performance cost in serializing the node every time a message is received, but it's entirely unnecessary and has been fixed. Thanks to @TigerHix for pointing this out!

v0.2.4 - Argument Type Coercion

20 Jul 16:04
Compare
Choose a tag to compare

Added type coercion of arguments.

Bool <- Double/Float/Int/Long - 0/NaN is false, anything else is true

Float <- Bool - True is 1, false is 0
Float <- Int - Best-attempt conversion (i.e. a cast)

Int <- Bool - True is 1, false is 0
Int <- Float - Rounded to the nearest integer, then best-attempt conversion (i.e. a cast)

Strings are not coerced from/to any other type.

v0.2.3 - Address Wildcards

20 Jul 12:33
Compare
Choose a tag to compare

This release adds handling of wildcards in the addresses of received messages. This means that, for instance, a message addressed to //value will be received by nodes with addresses of /foo/value, /bar/value, and /foo/bar/baz/value.

I feel like this is a somewhat niche feature, but it's part of the OSC standard!

v0.2.2 - OscCore

20 Jul 11:14
Compare
Choose a tag to compare

This swaps the outdated and unmaintained OscSharp library for the more recent, faster, and more complete OscCore library.

This addresses #1 and #6, and will also help with addressing #3 in the future.

v0.2.1 - Message Dispatching

19 Jul 17:33
Compare
Choose a tag to compare

This release is changes to the internals only. There should be no functional changes.

Message dispatching is added at the Plugin level, meaning that only On OSC Message nodes configured with the correct address will process any received OSC message. This could result in better performance in the event that there are a lot of OSC nodes with different addresses, but will most likely not be a significant difference with reasonable numbers of OSC nodes.

v0.2.0 - Node Rework

19 Jul 14:22
Compare
Choose a tag to compare

The OSC Input node is now the On OSC Message node, and provides a flow output that is triggered any time a message with the given address is received, as well as allowing for configuration of any number of (simple) typed arguments. This makes the node both more versatile and simpler to use.

This is also a breaking change from the previous release, and any instances of the old node will disappear as the node's ID has changed. This plugin is still not published on the Steam workshop, so I consider this acceptable for now, but will refrain from breaking changes where possible once it's published.