Incredible!

I am totally blown away.

It’s a weird feeling for me, having built these image files just yesterday to see it in the interface just few hours later.

So, you decided to skip the vertical rules?

1 Like

Well, I haven’t added them in yet as I was waiting for concensus due to @tehn’s stated preference. I can certainly add them if there’s call for it!

Nice one!

Something interesting to consider… using brightness to indicate how recently the value was changed. Either high brightness for a second or so on update. Or decreasing the brightness by 1 level each second to a baseline value.

I’m assuming that variable update sets a dirty flag/bit? If so, the difficulty is adding a timer to that design elegantly and without compromising anything else.

2 Likes

Yup.

No need to add a new timer, the display routine is already called regularly. Just need to add a count/compare.

1 Like

So it is. I’m being daft. It’s just the dirty status that is “on demand”.

I think he meant that he liked the left one with the vertical rules. But I am not sure. I think it looks great either way.

That’s an interesting idea that certainly adds a layer of information to the screen without having to add any new graphic elements. Is similar strategy implemented anywhere else in the TT environment? I am asking because it is adding a new design “gesture” which may or may not fit the overall TT graphic gestalt.

2 Likes

I thought he confused left and right and meant to say that he liked right-justification. :man_shrugging:

It isn’t used anywhere as far as I know.

If it’s an easy thing to code up, seeing a video might help with determining if it’s a good fit. I’m wondering if it may add a certain rhythmical flavour to the display.

Another candidate for something similar would be the metro icon changing brightness in time with the metro. We’d have to check if there were any performance issues with that though (less an issue for the variable monitoring as it can be turned off).

Performance hit will be proportional to the number of brightness levels and inversely proportional to the decay time.

Also, it will be no more than changing a variable value every screen update.

1 Like

If it’s an easy thing to code, I would like to see a video of “flashing” the value when it’s updated. How long the flash should last is probably easier determined by fiddling with the value.

Performance-wise, that was more aimed at trying something similar with the metro icon. Updating the screen before and after running the metro script might knock off the timing a bit (not that it’s that great at the moment anyway).

1 Like

I suppose it would. Though the changing numbers would already have similar dynamic.
In any case: the thing that appeals most to me about it, is the fact that there is an actual informational/data display value to it, and that it’s not simply esthetic.

Here’s the branch if anyone wants to take a peek at the implementation: https://github.com/burnsauce/teletype/commit/3ef02dedf5e712f812f43207e07253c12119f15f

1 Like

Ha ha! I suppose we should wait for some clarification from @tehn himself then?
:slight_smile:

1 Like

@scanner_darkly could probably add alt-~ to toggle the grid display too.

my plan was to use caps lock. there will be 4 different grid preview modes, so having to use a mod key might get in the way.

1 Like

Oooooh: caps lock is great idea for screen toggle.

I would have modified each variables OP to stop using the voodoo peek / poke code I wrote1 and use a normal function with the added “variable updated” function call. But your solution with shadowed variables is better.

How about losing the magic ordering required to make vp work and instead:

int16_insert_correct_no_of_stars vp[8] = { &scene_state.variables.a, &scene_state.variables.b, .... };

(and at least one const, at least.)

Oh boy, I really dislike C. Alternatively, add a severe warning in state.h about changing the order of the first 8 members.


1 I did feel very chuffed with myself when I figured out how to do that in C.

Well, it adds a dereference per, and really isn’t necessary. I wouldn’t exactly call struct ordering a “dark corner” of C, especially considering that this code is not expected to be portable.

I’ll add copious comments about the struct ordering. The only things that need to stay in order are those 8 variables, so it’ll be easy.

1 Like

On all my computers I have my caps lock behave as a control key.

Every time I hit it by accident and have the display changes out on me, I will curse both your names :stuck_out_tongue:

(but don’t mind me, I can easily change it in code for my own build, so if everyone else is happy, go for it)

All of C is a “dark corner” as far as I am concerned.

I think I need to find a drink… I’m in some sort of weird fruity mood this evening. Not enough sleep last night…

2 Likes

With my newfound rebase powers, I present to you: all the requested changes as a single commit! :slight_smile:

5 Likes