Releases: Barinzaya/warudo-osc
v0.2.5 - Bundle Handling & Node Performance
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
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
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
v0.2.1 - Message Dispatching
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
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.