| Both sides previous revision Previous revision Next revision | Previous revision |
| lwc:touchdesigner [2024/08/29 12:17] – John Harrison | lwc:touchdesigner [2024/09/04 14:08] (current) – John Harrison |
|---|
| * click and drag operator to show in window into ''Window Operator'' parameter | * click and drag operator to show in window into ''Window Operator'' parameter |
| |
| | === TOPS === |
| | * **moviefilein**: use ''Cue Point'' to scrub thru a video |
| | * R-click to save image |
| | * ** hsvadj** is hue and saturation |
| | * **over**: put input 1 over input 2 |
| | * **composite**: basic compositing (difference, screen, pinlight, subtract, etc.) with unlimited inputs. Has preview grid |
| | * in the ''palette'' menu choose ''tools'' -> ''blend modes'' to see all the compositing possible. |
| | * in its parameter menu choose ''pulse'' to get a browser help page on this component (why pulse?) |
| | * ''fixed layer'': where we get the resolution and aspect ratio |
| | * **matte**: composites 1 input over another then create a matte effect using the 3rd input as the matte |
| | * you can use ''matte'' to switch between 2 images if you change the ''matte channel'' in the parameters dialog to ''luminance'' |
| | * use ''extend left'' and ''extend right'' to choose how the image pattern repeats in the matte channel |
| | * **tile**: kaleidoscope effect |
| | * **transform**: rotate, scale, repeat, etc. |
| | * **layout**: layout multiple inputs into rows, columns, or grids |
| | * **switch**: switch (or blend) between inputs |
| | * **select**: reference a TOP from any other location: |
| | * drag the TOP you wish to reference into the ''TOP'' parameter in the parameter window of ''switch'' |
| | * it's sort of like a "send" and "receive" for Pd and that's all it does? |
| | * **threshold**: highlight areas (white vs alpha) that are beyond a certain brightness |
| | * **Blur**: ''preshrink'' reduces the resolution before the blur is applied |
| | * **LumaLevel**: increase brightness of bright areas in image |
| | * **Feedback**: set the target TOP by dragging the target top onto the feedback operator to create the reference |
| | * **moviefileout**: create a movie, optionally with audio (using Movie Audio CHOP perhaps) and save the movie to a file |
| === CHOPS === | === CHOPS === |
| | //CHOPS can be **single sample** or **multi sample**// |
| * ''Select'': filter for a specific output. Example: look for DONE channel name coming out of ''timer'' chop. | * ''Select'': filter for a specific output. Example: look for DONE channel name coming out of ''timer'' chop. |
| | * ''Audio Movie'': plays audio of a movie file |
| | * drag ''moviefilein'' TOP onto this CHOP to get the audio of a specific movie |
| | * to actually get a movie with audio then connect ''moviefilein'' TOP to ''moviefileout'' TOP then drag ''Audio Movie'' CHOP onto ''moviefileout'' TOP |
| | * ''LFO'': send sine, cosine, square, pulse, etc. |
| | * ''Trigger'': sort of like a fully adjustable ADSR |
| | * turn ''time slice'' in the parameter window **off** to see the envelope |
| | * ''Count'': increment |
| | * ''Filter'': smooth the data |
| | * ''Lag'': much like filter but has an accell/decel feature |
| | * ''Fan'': split from a single channel to multiple channels |
| | * ''Math'': can combine CHOPS or combine channels. Also tweak the range of output values/ |
| | * ''Merge'': merge multiple CHOPS into 1 CHOP with different channels. Use for example when doing the same math operation on multiple CHOPS |
| | * ''Switch'': switch between multiple sources |
| | * ''Replace'': replace input 1 with input 2 if input 2 has data |
| | * ''Fan'': take a serious of channels and fan in to 1 channel |
| | * ''Timer'': |
| | * ''Event'': similar to ''trigger'' but can handle multiple triggered values at different times |
| | * ''Trail'': record values over time. Set ''Grow Length'' on to increase time window indefinitely. |
| | * can change it to capture only when input data is cooked |
| | * ''Analyze'': Average, Sum, RMS, Peaks, etc. |
| | * ''Logic'': turn on or off depending on the values coming in. For example, turn on when input > 9 |
| |
| == SOPS === | === multi sample === |
| | * ''Pattern'': Sine, Cosine, etc. |
| | * can accept another input multisample which can be combined with the pattern (see ''Combine Channels'' in the ''Channel'' tab of the parameter window) |
| | * note the "extend region left" and "extend region right" |
| | * ''Trim'': cut or extend the multisample |
| | * ''Audioosc'': you can set the sample rate to match the sample size of a pattern CHOP or similar CHOP |
| | * ''Constant'': make it multisample in the ''Channel'' tab |
| | * ''Shuffle'': sequence or split multisample or single sample CHOPS together |
| | * example: split a multisample CHOP with 10 points into a single sample CHOP with 10 channels by choosing ''split all samples''as the method in the parameter window |
| | |
| | === SOPS === |
| * ''Copy'': Make a copy of the first input at the each of the vertices of the 2nd input | * ''Copy'': Make a copy of the first input at the each of the vertices of the 2nd input |
| * ''Sweep'': sweep the first input along the vertices of the 2nd input like a "paper fan" | * ''Sweep'': sweep the first input along the vertices of the 2nd input like a "paper fan" |
| * ''Convert'': convert object to polygon | * ''Convert'': convert object to polygon |
| * ''Facet'': low poly look (?) | * ''Facet'': low poly look (?) |
| | * ''Limit'': draw a line using data from multi sample CHOP |
| | |
| |
| === DATS === | === DATS === |
| * ''Merge'': combine multiple DAT tables | * ''Merge'': combine multiple DAT tables |
| * ''Sort'': sort table | * ''Sort'': sort table |
| | * ''Chop To'': drag and drop TOP into this DAT to have the data interpreted as a table |
| |
| ==== Connections ==== | ==== Connections ==== |
| - Using LMB Drag Chop (with viewer active) into the parameter in the parameter window | - Using LMB Drag Chop (with viewer active) into the parameter in the parameter window |
| - Choose ''CHOP Reference'' in the context menu | - Choose ''CHOP Reference'' in the context menu |
| | - alternatively, with the CHOP viewer window active, drag the CHOP op directly onto the TOP op and choose the parameter to map to in the pop menu. |
| | - With this alternative method the reference is not Python code and therefore may not be as adaptable in some situations? |
| | - This appears to be the same as following the original method but choosing ''Export Chop'' except when choosing ''Export Chop'' you also seem to get a bonus export table that gets created (maybe?) |
| | |
| |
| === DAT to DAT or DAT to TOP === | === DAT to DAT or DAT to TOP === |
| - Using LMB Drag DAT into the DAT parameter in the parameter window. Does not need viewer active. | - Using LMB Drag DAT into the DAT parameter in the parameter window. Does not need viewer active. |
| |
| | === TOP to TOP === |
| | * click and drag one top onto another. Active window not necessary |
| |
| ==== Tips and Tricks ==== | ==== Tips and Tricks ==== |
| * To see output of CHOP (single or multi value) R-click on output of CHOP and choose a ''chopto'' DAT to see as a table | * To see output of CHOP (single or multi value) R-click on output of CHOP and choose a ''chopto'' DAT to see as a table |
| * optionally use the ''trail'' CHOP to see the history of values | * optionally use the ''trail'' CHOP to see the history of values |
| | * Collapsing a network: select all ops in the network, R-click and choose "collapse selected" |
| | * ''File''->''Export Movie'' to save a video. Suggestion: turn ''realtime'' off to avoid glitches |
| | * default files are in ''Program Files''->''Derivative''->''TouchDesignerVERSION''->''Samples''->''Map'' |
| | * when needing constantly changing values take a look in the ''Channel'' tab of the parameter window at ''Time Slice'' |
| |
| == Chop Execute DAT == | == Chop Execute DAT == |
| * To write to an operator from ''CHOP execute'' reference it with ''op('NAME_OF_OPERATOR').par.NAME_OF_PARAMETER'' | * To write to an operator from ''CHOP execute'' reference it with ''op('NAME_OF_OPERATOR').par.NAME_OF_PARAMETER'' |
| * get the name of the parameter by clicking on the ''+'' to the left of the parameter in the parameter window. Example: Text parameter in text component is called ''text'' | * get the name of the parameter by clicking on the ''+'' to the left of the parameter in the parameter window. Example: Text parameter in text component is called ''text'' |
| | |
| | ==== Composting Operations ==== |
| | * **Screen**: add two images together without producing values above white |
| | |
| | ==== Sending and Receiving Video ==== |
| | * NDI: video over IP. Can be used for local video sharing |
| | * ''NDI'' DAT shows in a table all courses and streams available |
| | * ''NDI out'' TOP sends an NDI stream |
| | * ''NDI in'' TOP receives NDI stream. Fill in the source name parameter |
| | * Syphon (MacOS)/Spout (Windows): in and out TOPS share textures and images via shared memory on the same machine |
| | * Video Stream Out: stream content over local network or internet. Send to YouTube or Twitch for example. Might be an easy way to send to VLC as well? |
| | |
| | ==== Built-in Variables ==== |
| | * ''me.time.frame'': frame # sent by timeline at a given moment |
| | |
| | ==== Units ==== |
| | * ''i'': index or sample |
| | |
| | ==== Pattern Matching ==== |
| | * match 2 and 3: [2-3] |