Data structures for JET, cont'd Dec 27, 2017

I made some good progress on the design of an early prototype for last week’s JET data structure design. So far, it’s all working out well (I’m coding this in C), with some useful refinements:

What this all means, is that I think I now have an early-but-working starting point for implementing the Pd-like JET engine, which can fit in small µCs and support a flexible message-based dataflow design.

I realise that all these deliberations and notes about “JET” will mean very little to most people. It’s all based on a vague idea I’ve been toying with for several years now.

Here’s a little example to show how the different ideas will hopefully come together later on. This is a “circuit” to control the brightness of an LED via a rotary encoder:

A few notes to clarify this diagram:

At this stage all of this is imaginary, i.e. pure vapourware. And I don’t even have any practical experience with Pure Data, so many, many details are bound to change.

I also want to implement a visual diagram editor in the browser, so that the above is literally the way circuits are constructed. With a set of “gadgets” to allow building interesting stuff. But that’s for later…

The reason this keeps me hooked, is that it could all excel in terms of modularity and scalability, IMO. The “gadgets” are self-contained modules, and the messages flowing between them clearly define the interfaces. Anyone can add more gadgets, and they can expose all the intricacies of the underlying hardware.

These circuits are self-documenting and trivial to extend. Also, since everything is message- (i.e. event-) based, intercepting them will allow convenient debugging.

The Node-RED project has numerous similarities, but its engine is JavaScript and intended to run on much heftier systems than what I’m aiming for. Then again, I wouldn’t be surprised if JET could be made usable in combination with Node-RED.

Is JET ambitious? Heck, yes - I’m not sure it’s even possible to get it all working across remote links and pared down enough to fit in a small µC. But it’s a worthy goal, IMO!

And with that, dear reader, we’ve reached the end of 2017. I’m going to make some changes to my posting frequency - starting right now - by announcing a break for the coming month. I need some time off (for a number of reasons, not all related to me or this weblog) and want to be able to work on things which take a bit longer to complete.

Allow me to wish you a peaceful, healthy, and fulfilling 2018, with lots of creative energy. I’ll post again in February, 2018!

Weblog © Jean-Claude Wippler. Generated by Hugo.