» VL: One frame at a time
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

VL: One frame at a time

Newsflash!

Here are two new little features we want to make sure you're aware of. Not completely finished but already helpful:

StepByStep

Press F6 to pause and step through your patch one frame at a time. Press F5 to continue running the patch.
F6, F6, F6, F6, F5

Note how the Quad (topleft) indicates run/pause. Tremendous you say? Indeed, but beware the following caveats for now:

  • this works only for vl, so if you have parts of your patch in vvvv, those will still continue to run as usual!
  • tooltips don't work in this mode yet, so you'll need IOBoxes wherever you want to inspect values
  • no stepping through slices of loops

Still you'll see that in cases where you're looking for a logical problem in your patch it is already useful to be able to step through its execution one frame at a time to better understand how it is evolving.

JumpToError

Set RuntimePauseOnError to TRUE in the settings in case you want to have the patch paused in case an error occured.
Pink: the node that threw the runtime-error.
Bright: the call stack, leading up to the error.
Dark: nodes not executed.

This can be useful when you're on a debugging spree and expect an error to happen at some point. Activate this option to be brought to the point where the error occurred, the moment it happened. Saves you some navigation and highlights the nodes involved leading up to the error. Again press F6 to step or try F5 to get the patch running again after you solved the problem.

Caveat: Look closely, the error message in the tooltip actually belongs to the Add of the Dictionary. The reason for that is code-optimization which sometimes leads to the error-indicator being one node off. A setting to disable code-optimization is pending..


As mentioned, both features are not finished but are a first step into the direction of better debugging support. Still more to come..

joreg, Tuesday, Dec 19th 2017 Digg | Tweet | Delicious 6 comments  
microdee 19/12/2017 - 22:29

it's nice to see VL getting this feature. this will ease debugging a lot!

velcrome 19/12/2017 - 23:46

Tremendous appetizer, I say. Made me hungy for the main course F10 alongside F11. Maybe F9 for desert?

tobyk 15/05/2018 - 17:35

This works great! I'd love a 'break' node I can use to automatically pause when some condition is met.

tonfilm 15/05/2018 - 20:17

@tobyk you can use the Throw node to throw an exception to stop the runtime.

tonfilm 16/05/2018 - 16:11

@tobyk we discussed this internally and the question is whether you want to stop calculation of the frame exactly at the place where the node sits, or do you want to complete the frame and only stop the calculation of the next frame.

tobyk 16/05/2018 - 16:58

@tonfilm
Thanks for this, as usual you guys are one 'step' ahead. ahahahahahahaha

If there's an option i'd prefer the break/throw node to stop exactly where the node sits. If I want it to complete the frame I could patch that node such that it should get executed last. I think.

  • 1

anonymous user login

Shoutbox

~1d ago

nanotekt: a brief VL.stride study https://youtu.be/B2Nlz5VZ9lM ...and a massive 'thank you' to the devvvvs!

~2d ago

everyoneishappy: @overtones this would require 4D noise, which is possible but not implemented in Fieldtrip

~4d ago

overtones: Hi! SF2D has Time & DomainOffset inputs, but SF3D only DomainOffset. Is there a way to use Time in SF3D or it makes no sense? Thx

~7d ago

joreg: @SabrinaVerhage this could be useful for you next "hacking sex" workshop: https://buttplug.io they have a .NET nuget for use in vvvv!

~15d ago

ravazquez: Happy new year!

~15d ago

sunep: Happy new year everyone!

~19d ago

ggml: confirmed. thanks

~19d ago

david: @ggml fixed. please try again.

~19d ago

joreg: @ggml confirmed. we'll investigate..

~21d ago

ggml: node workshops on talque seem to be no longer available