Whew! We tried to lock release time frame and vary scope while developing the XOD visual language starting from this year. And it gives expected benefits: the new 0.28.0 release is here. Well, we had to sacrifice some features we wanted to implement initially, however, the most prominent and important improvements were made.

Show me your values

The main thing which is rolled out by the XOD team is the new look for the patch board.

A patch to format time as 11:12:13 AM

One serious flaw of the old visualization is that it hides the values bound to nodes’ pins which have no link attached. It makes the patch image incomplete: you cannot merely make a screenshot or print your program and understand it in full because the vital data is missing.

Even to read a program withing XOD IDE you have to click-click-click nodes and see the values associated with them.

With 0.28.0 the problem goes. Now XOD renders nodes exposing their pin labels as well as the bound values. Take a look:

Before XOD 0.28.0

After XOD 0.28.0

Nice, eh?

You might think more details come at the expense of density. Yes, it is, but the effect is not so crucial. The UI designer worked hard to include the necessary data and keep the grid in place. Eventually, he got a clear variant which only takes extra 20% of horizontal space and does not ever alter the grid vertical rhythm: the nodes are a bit higher, but the gaps between rows are smaller.

We are sure the new layout will help to understand, share, and discuss your programs better.

What else

The previous release gave us all the tweak nodes. Unfortunately, it lacks pulse tweaks. This was addressed, and now you can use the new xod/debug/tweak-pulse node to generate some pulses in real-time by just clicking a button in the inspector.

Along with the pulse tweak, we’ve added a few more standard nodes:

xod/math/min and xod/math/max — guess what they do

and — guess what they do xod/core/integrate-dt — integrates a numeric value over time

Another feature is that you can give arbitrary names to your C++ patch node pins, not necessarily a sequence valid as C++ variable name. You can even name your pin a 💩 although I don’t know whether it is a good idea.

Anyway, the symbols out of ASCII range get converted to character sequences like U1234 containing its code so the 💩 would become input_UD83D . To quickly understand what the final name a pin has in C++, the Quick Help sidebar is now functional when editing code. It lists all available symbol names in C++ terms: no more switching between the editor and patch to recall your names.

Tab management has been improved. The tab line is now scrollable when you open too many tabs. And, as in a browser, you can close a tab with a middle-click now.

Not the last, and not the least, the TAB key and focus issues finally resolved for the inspector sidebar. When you update a bound value for a pin, the input no longer loses its focus on pressing Enter: adjust the value as many times as you want and go on to the next input with the habitual TAB press.