Posts

Showing posts from July, 2022

using the CHOP EXECUTE DAT node - VALUE CHANGE

 Will make other posts as I learn how to use the other bits! use case - say you have a Count CHOP and wish to execute a set of instructions everytime the value changes, the CHOP Execute DAT node is what you want! Eg, take values from a NOISE and apply them to a TRANSFORM, everytime the Count changes value. This is a bit like sample/hold of random values. Create the CHOP EXECUTE DAT. Next type in the name of your Count node in the CHOPs box The part we're interested in is this segment of code- def onValueChange(channel, sampleIndex, val, prev):     return We can delete everything above that! Also make sure on the Chop Execute, that "Value Change" is set to ON. so after the colon, we can make some variables (this is for clarity, not necessary) def onValueChange(channel, sampleIndex, val, prev):          source=op('NOISE')     target=op('TRANSFORM')              target.par.tx=source[0]     target.par.ty=source[1]                   return     we're making

using the replicator to preload a bunch of images

Use case - you need to preload a bunch of high-res images and then randomly load them into a movie-file-in TOP. (if you just load them straight from a Folder DAT, there might be some lag) Create your Folder DAT as usual, I like to connect a select DAT to this, to trim the irrelevant rows and columns. Make a CHOP thing that can be used to select a number, like a COUNT, call it "index" (we'll use it later) Make a Base Comp (call it something like "images") and inside this, create an IN DAT. Go back up a level and connect your Select DAT to the Base Comp. The Replicator creates a lot (depending on your folder) of nodes, so we use it to keep things tidy. Back inside "images", attach a null to the IN and label it "files" Create a Replicator comp (not attaching it to anything yet) drag over or type in "files" into the Template DAT Table field Create a MovieFileIN TOP, name it "file0" <-that's a zero In this MovieFileIn&#

selecting a row from a table, using op...

 use case - you have a table in form of the FOLDER DAT, you want to pick from the rows of the table. Lets say they're a list of images. First, lets get rid of the first column, which just lists the filenames. We need the second column that displays a full path. Use a DAT Select node for this. Choose select Rows by Index, set appropriate last number & Columns also by Index (start and end will both be 1). In the MOVIEFILEIN node, you could type - op('NAME')[0,0] to access the image in the first row. However if you want to do something a bit clever and use a CHOP named "INDEX", for example as the number to select the row, you can't just type - op('NAME')[op('INDEX')[0],0]   <THIS WON'T WORK. And Touch Designer won't say why... op('NAME')[int(op('INDEX')[0]),0]  <You have to change the data type to an int!  so, by casting to an INT, the op('....') blabla works.

sparkly noise for texture

 Use something like Simplex 3D (GPU) noise.  Set the period to something quite low, so you get lots of noisiness.  Animate the transform Z with absTime.seconds. Plug it into a FUNCTION node In the Function RGB, select Input ^ Exponent Increase Exponent The lower values should now just be black & the higher values now pinging. Use a Level node to tame the opacity & composite it on top of something

accumulate values from an LFO/trigger/pulse/curve - speed node

Image
 use case - you have a pulsing signal and wish to use this value to step through a video So here is an LFO, set to Pulse mode. I've put a Trail in to visualise it, but it's not really necessary. The Speed node is what accumulates the value we're interested in. You could add a lag to your pulse for nicer ease-in style effects. The output of the Speed node here is being used to control the "Cue" parameter of the Movie-In. You'll want to adjust the values of your pulse according to the cue point "units" you're using. By default it is set to %, so perhaps you only want each pulse to increment by 5% of the overall clip length each time. You can also set this to seconds and a bunch of other units...