Some new nodes, "native" and just patch

I’m playing with XOD and made a few nodes. Same seem to be actually useful.

data-to-pulse: convert data to pulse. if you need a pulse, but you only have a number or string or boolean as output. Compare with pulse-on-change. Some other x-to-pulse.

Various “values” nodes: can output the value on pulse/change.

Various “count” nodes: n…m by step. Probably “triangle” and “sine” next.

Needs a readme for documentation, at least.

Clocks per second, e.g. Hz.

Timestamp logging. Compare with logging: logs output, not just change.

I’d appreciate feedback.

I suspect you’ve forgotten to provide a link. I’d just leave it here.

Thank you for the effort!

I’m pretty sure you came from a programming background, not electronics. The nodes you’ve made bring R from the FRP world to XOD. I mean, you see the program as a pipeline of discrete data processors where a data stream of numbers 42-42-42-42 is clearly distinguishable from a simple constant 42.

Although, the runtime implementation allows to capture R (reactive) updates, in the standard library we intentionally kept all values in the F (functional) world where 42-42-42-42 is the same as constant 42.

Such concept is more understandable by electronics engineers (BTW, I’m a 15+/y developer, not ES) and I’m not sure we’ll support the reactive values as the first class citizens. For all reactive aspects, we have the pulse type. For any values, we use functional (value continuous over the time) paradigm.

If XOD would support F and R values at the same time, it should at least provide a clear visual difference between, say, a Functional Number and a Reactive Number. The reactive counterparts could be depicted as triangles, not circles, for example. But it would complicate the environment.

I hope you see my confusion.

So, you’re ahead of time! That’s good actually. We have a chance to try new concepts. Also, this is a very interesting question to discuss:

Do you think XOD should support both, the Reactive values (a value in a particular point of time) and the Functional values (a continuous value defined at any point of time)? Or support for Functional values only is enough?

my github for the nodes https://github.com/awgrover/xod_lib