Release Notes/077
Build 18880 - Apr 10, 2013 - Gold
Bug Fixes and Improvements
- Fixed crash that occurs when creating uig in some cases.
- Texture 3D TOP - Fix bug where *POffset was calculated to be off by 1.
- Fixed a bug when deleting DATs
- Fixed some licensing bugs.
Build 18780 - Jan 29, 2013 - Gold
New Features
- Added Recheck MIDI Devices button to MIDI Mapper dialog to update the list of connected devices at any time.
Bug Fixes and Improvements
- Modifying panel's width and height now re-layouts its contents without needing to tweak the window size fora refresh.
- Serial DAT properly initializes when starting in Perform Mode.
- Movie In TOP - Fix crash when loading jpeg images in CYMK color-space.
Build 18580 - Sep 10, 2012 - Gold
New Features
- Camera COMP has a new parameter on the View page that allows you to specify a custom projection matrix using either a DAT or CHOP.
- Now runs on 088 keys.
Bug Fixes and Improvements
- Movie In TOP - Fixed stutters that occur when Trimming a movie, when it loops.
- Movie In TOP - Fixed Read Ahead parameter being ignored when Interpolation is used.
- Fixed bug that caused random image artifacts (often pieces of the main TouchDesigner UI) to appear in TOPs in some cases.
- Video In TOP - Fix image flickering issue in some cases, when using the DataPath library.
- Animation COMP extend conditions changed to cycle when using Sequential play mode.
Build 18360 - Aug 1, 2012 - Gold
New Features
- Added .hclassic and .bhclassic file extensions to File SOP list of supported types (for Houdini users).
Bug Fixes and Improvements
- Text TOP - Fixed bug that caused Polygon Texture mode to not work correctly.
- Jump to Export CHOP removed from right-click menu on parameters in a parameter pop-up dialogs.
- Fixes to reduce audio pitch changes when dropping frames
Build 18180 - May 1, 2012 - Gold
New Features
- New
kinecttiltcommand which allows you to control the tilt of your Kinect sensors. - Kinect TOP: Near mode added for the depth image. Skeletal tracking does not work when this is enabled in the current kinect runtime.
- Kinect CHOP: Add parameters to show skeleton positions in u/v coordinates, and turn off the tracking/clipping status channels
Bug Fixes and Improvements
- When loading a new file from the File menu in a process that was started with GPU affinity, the new process will also start up with GPU affinity.
- New warning added when trying to use GPU affinity on GPUs that don't support it.
- Fixed AMD version check dialog giving incorrect messages.
- Fixed bug that caused blend shapes to not import correctly from FBX files in some cases.
- Kinect CHOP: Fix jittery performance due to filtering parameters not being used correctly.
- Fixed very slow memory leak.
- Fixed a corrupt first frame that shows when loading a movie or image with low timeouts.
- Avoid freeze when opening viewers for nodes that contain load on demand COMPs.
- Small fixes for better Kinect usability and stability.
Build 17780 - Mar 20, 2012 - Gold
New Features
- Kinect CHOP and Kinect TOP added, supports the Microsoft Kinect for Windows SDK
- DMX In CHOP and DMX Out CHOP with support for ArtNet added
- Movie In TOP can now read uncompressed
.avifiles
Backwards Compatibility Issues
- In TOPs the 'Frames' units were incorrectly 0-based. They have been fixed to be 1-based (1 being the first frame) which may cause old files to behave unexpectedly. Frame are 1-based, Index is 0-based.
Bug Fixes and Improvements
- In and Out CHOPs and SOPs defined as filters (to match TOPs and DATs)
- DMX Out cooking bug fixed
- fixed send Command when outputting tables to a file via File Out DAT. It sends return and newline based on
-n -roptions. - fixed Primitive SOP crash
- fixed crash due to viewer state
- DMX Out CHOP data values clamped to 0..255 with warning if exceeded
- near-far planes in SOP viewers set
- made the temporary fix for a disappearing-geometry issue now permanent and the default
- fixed crash when some nodes were deleted referring to some visible gadgets
- reduced over-cooking when node viewers on
- dropping nodes onto a component node will always prompt with a menu
- some node-to-node data links were not showing up in the networks
- Ramp TOP crash fixed, would crash when ramp dialog is open and the TOP was deleted.
- Object CHOP now cooks every frame if the relevant objects are moving.
- Clock CHOP fixed, no longer stops working after 23 days of runtime
- Fixed issue with panel overlays and crop if panel is in a node viewer
- Touch In/Out CHOPs and DATs now work correctly for ports under 5000
- Fixes for ATI GPU support, Blur TOP now works, Point Sprite rendering now works
- Fixed issue causing nodes not to cook after being edited in 3D modeler
- Speed CHOP no longer become inactive after edge-reset when "smart timeslice" (a command) cooking is enabled
Build 16900 - Dec 21, 2011 - Gold
Bug Fixes and Improvements
- New Ableton Sync Environment demo file.
- New LTC CHOP! Linear Timecode CHOP reads a time code encoded in an audio signal.
- Tweaks to LTC CHOP: Input Rate (default 30), not Input bit rate (default 2400). Output rate now matches specified input rate. Debug channels and user fields now optional. LTC CHOP is now in the Expert group of OPs
- change opsave -d to opsave -t
- When using AMD/ATI GPUs, TouchDesigner requires Catalyst driver 11.11 or later, and will warn on setup if you need to upgrade
- Wiki path now includes software version (ie. wiki077)
- Fixed OSC In CHOP channels not loading from previous builds. Updated to avoid this for all CHOPs in the future
- Fixed Keyframe CHOP rate when set to Output Full Range
- Fixed problem with searching in textport not displaying text and occasionally crashing
- MoviePlayer Component had the text for the current time stretched using some aspect ratios
- Multitouch component added to palette
- Replaced the term "tile" with "node" everywhere in the interface
- Fix for disappearing names
- Fixed Movie In TOP crash when turning off Async Upload to GPU
- Fixed shortcut keys triggering when used inside Field COMPs. Only works when shortcut uses a modifier key now.
- Fixed undercooking bug when First Input Is Index parameter is enabled in the Switch CHOP
- Fixed a crash in Movie In TOP when a CPU movie cache is used
- Fixed update bug when disconnecting and reconnecting to the same node
- Fixed issue with delete key removing characters before the cursor when at the end of an input field
- Fixed a problem where node parameters can access the wrong variable if it is called through a script that has set a variable with the same name. The wrong variable was compiled into the node and the node will error on subsequent cooks. Parameter evaluations can no longer access script variables.
- Fix in y in multitouch to be relative to screen
- Fix issue with the last filename going blank if you cancel a 'Save XX' from the right click menu on an OP
- Fix for dragging an Animation COMP into Animation Editor, it did not call launch script to set correct path
- Fix for disconnected cloned nodes in Import Dialog
- Fix in DATs, fixed a bug with duplicate rows if no rows are selected but Include First Row parameter is checked
- FPS field in timeline changed to rate
Build 16410 - Nov 04, 2011 - Gold
TouchPlayer
TouchPlayer is a new playback solution for TouchDesigner files. It is a new free key-less player for .toe, .tox and other media files, enabling you to share your TouchDesigner work and distribute it easily to other parties without the need to register and get a key for TouchDesigner. TouchPlayer is free of charge for non-commercial uses. No license, key, or registration is required to download and use TouchPlayer. It is available as a standalone download, and it is installed any time you install TouchDesigner.
TouchPlayer runs in Perform Mode only, the perform settings are defined by the author of the TouchDesigner file. There is a small control panel added to every TouchPlayer window with controls for play/pause, fullscreen, help, and quit. TouchPlayer can also be used to view and inspect any file types supported by TouchDesigner. TouchPlayer has the same system requirements as TouchDesigner.
TouchDesigner Ableton Live Sync Environment
TouchDesigner Ableton Live Sync Environment is a live performance and animation system developed specifically for artists and musicians to construct and perform live, interactive Audio-Visual performances. Utilizing TouchDesigner and Ableton Live, the environment simplifies the passing of loop, controller, MIDI notes and timing data between Ableton Live to TouchDesigner, and maintains the two packages in sync with each other. The system provides an optimized framework to support collaboration and development of highly dynamic immersive audio visual shows.
Cineform Codec
- Cineform codec from Cineform is a high quality, fast to decode, reasonable size codec. TouchDesigner Pro now decodes Cineform codec video files. The Cineform codec is used in film production, but we're finding it's a great alternative when preservation of image quality in the greatest requirement, while decode time in realtime is an imperative, and 5-to-1 compression ratios are satisfactory. It is designed to provide the highest quality HD footage possible and is high performance enough to handle 4K by 4K resolutions in realtime on fast Intel CPUs.
HD-SDI Video Input and Output
Using the NVIDIA HD-SDI Capture card and output card, TouchDesigner Pro can now deliver the common HD and SD SDI broadcast-formats from/to studio equipment. HD-SDI video input and output is now available in TouchDesigner Pro using these TOPs: SDI In TOP, SDI Out TOP, and SDI Select TOP.
New Components in the Palette
- new components are in the Palette. They include:
-
Tools/MovieBin– an interface in which you cam perform movie switching. drag-drop movies into this component, then you can select movies to play in each of its 3 outputs. -
Tools/Movieplayer– plays movies with scrub bar and other controls. -
Tools/Blend– takes 2 TOPs as input, and crossfades between them, with the mid-point mix being a choice of 30+ blend modes, which can be previewed before selecting, useful for live performance. -
Tools/AudioSet– sets the audio input device, controls the level, and displays the output level in a VU meter. -
Tools/Multitouch– outputs a multi-touch table with one finger per row, and can drive gadgets in a panel. -
Tools/ShowCooks– displays cook time, dropout % and memory used
-
Bug Fixes and Improvements
- When using floating point R, RG, A (and a few other pixel formats), locked TOPs will not longer lose their precision when reloading the .toe file.
- Fix for loading a component .tox file that contained Keyframe CHOPs.
- Fix opdepend so inputs and extra inputs of outputs are not included
- Color space conversion in Movie In TOP uses CCIR 601 colorspace by default now
- Fix to cueing not preloading a frame
- Re-added Quadro crash fix, which was lost in build 16200.
- Fixed potential inaccuaricies of floats and doubles in OSC messages
- FBX Importer now supports importing Emission maps.
- Font searching for the Text TOP and Text SOP is more robust now.
- Beat CHOP: Fix crash when 2nd input has no channels.
- Tile TOP: Fixed Tile X and Tile Y parameters doing the oposite of what's intended. To maintain backwards compatiblity with older files, the parameters have been renamed to Repeat X and Repeat Y.
Build 15820 - Sept 26, 2011 - Gold RC
New Features
- Phong MAT - Emit Map parameter added, you need to have Emit color > 0 to have this affect the output.
- Info CHOP now reports 'fill' and 'borders' for Windows COMP.
- Info CHOP has new
depthchannel when looking at 3D textures or 2D texture arrays. - Text DAT - the Execute page is removed because it was getting overloaded with specialized parameters, now found in the * Execute DATs:
- Text DAT - Auto-converting Text DAT to the Execute group of DATs - Loading files containing Text DATs with execution parameters set will now auto-convert into the corresponding Execute DAT type. ie: CHOP Execute DAT, DAT Execute DAT, Panel Execute DAT, Parm Execute DAT, or Execute DAT.
- Text DAT can now load files with no file extension in the filename.
- DAT Execute DAT - execute on End Frame option. This ensures the script is only triggered once per frame.
- Render Pick DAT - new parameter merges the input DAT with the output. This is important to sync the incoming select, u and v values to the picked information returned, because the render pick data is sometimes returned a frame later.
- Render Pick DAT - Column headers are always present now, even when no valid picks are occuring
- Serial DAT - added control of DTR and RTS serial lines
- toeread Command -
toeread -rto relaunch file in new process.
Bug Fixes and Improvements
- Quadro users: Added a workaround to avoid the crash in the 270.xx and later Quadro drivers. Rendering is expected to be slower than on a similar powered Geforce card until this workaround can be removed.
- Fixed undercooking bug when a variable doesn't exist anywhere, then comes into existence.
- Movie In TOP - De-interlacing optimizations.
- Movie In TOP - Movie will reload when Reload parameter is turned on, even if the Play parameter is off.
- Movie In TOP - Default unit for Movie In TOP's specify index is now frames instead of indices, which should allow for correct playback right away with
$F - FTE Non-Commercial gives better warnings when TOPs have their resolutiosn clamped.
- Camera COMP - Window size parameter no longer disabled when using Orthographic projection.
- File CHOP looks at the audio track length, not the container length, when determining file length of audio files.
- Perform CHOP - Window x,y,w,h info for main window is now reported.
- Fix
$TOUCHnot being set correctly for files that need it during load - Audio Movie CHOP - No longer opens the Movie In TOP if its play parameter is 0.
- Animation COMP - Trim extend conditions will now work correct when using sequential playback mode.
- Animation COMP - Older files set to use Sequential Playback with a Custom Trim range will automatically have their Trim parameters set to Cycle, since that's what sequential always did in older builds.
- CHOP Execute DAT - Frequency parameter enabled during 'Value Change'
- Render TOP - fixed rendering issue when using Rim lighting with backfacing polygons.
- Multi Touch In DAT - Fix a bug where using raw data doesn't work.
- Switch TOP - fixed case where nodes wouldn't cook when they arn't displayed in a network, if a
tab()expression was used in the chain. - Render Pass TOP - Fixed flashing when using picking on it.
- Blob Track TOP now works correctly if given a Depth TOP as its input.
- Window Component - fix so that borders will appear inside the monitor if Window COMP is set to fill mode. This fix also allows full screen panels in player to toggle between borders & no borders. A set size will still have the borders shown outside the windows panel.
- fixed time dependency issue when blending between non-animated + animated inputs.
- preloadmovie Command optimizations.
- enable
undofor resetting parameters. - CPlusPlus OPs - Fixed missing
#include <windows.h>inCPlusPlusBase.h - added support for
.tsand.mxfvideo container formats - new
TOUCH_ALWAYS_STARTenvironment vaiable to always startup without message boxes about GFX settings - fixed memory leak when using
exitcommand in the middle of a loop. - substr() expression - fixed negative indices
- convertbase() expression - fixed dropped trailing zeros and a fix for "0" and "-0"
- keyboard shortcuts for playbar disabled when option in preferences disabled
- fixed problem with parameter dialog in a pane not showing up with a scroll bar when nodes are switched.
-
MovieBin.toxadded to Palette - MIDI device list now includes the NanoKorg
- saved out missing nodes from
midi.toxto avoid warnings - Export - fixed hang when exporting a CHOP but the export settings DAT already exists and is used by a different node.
- fixed expression field expansion to be on mouse up to allow user to select text more easily. Fix so editing expression field will not need 2 undos to return to previous expression.
Build 14300 - June 24, 2011
- Movie In TOP - de-interlacing should work better now.
- Added Extend parameter to the Crop TOP random formatting
- File prompter will now automatically escape special tscript characters contained in filenames (
',(,),$) by prefixing them with\, when loading a filename. - keyboard shortcuts for playbar disabled when option in preferences disabled.
- Info CHOP has new
depthchannel when looking at 3D textures or 2D texture arrays. - Fixed problem with parameter dialog in a pane not showing up with a scroll bar when nodes are switched.
-
MovieBin.toxadded to Palette - MIDI device list now also includes NanoKorg
- saved out missing nodes from
midi.toxto avoid warnings - Fixed hang when exporting a CHOP but the export settings DAT already exists and is used by a different node.
- Fixed expression field expansion to be on mouse up to allow user to select text more easily. Fix so editing expression field will not need 2 undos to return to previous expression.
- Fixed a bug with Multi Touch In DAT where using raw data doesn't work.
- Fixed crash in evaluation of floating points in
||statements (e.g. (0 || 0.1 || 0). - Fixed problem with drop scripts retaining the first dropped object indefinitely.
- Fixed DAT Execute DAT where multi-row changes caused scripts to not execute.
- added Execute on End Frame option to DAT Execute DAT in case users wants to execute only once per frame per unit.
- Fix so expression field expands on mouse up to allow user to select text as-is.
- Trail CHOP no longer saves out its channel samples in the .toe file.
- Fix time dependency check in Switch OPs to only check those in use.
Build 14080 - June 02, 2011
- Shared Mem In CHOP - Fixed bug with channel names not coming across correctly.
- use of
$HOMEfor TouchDesigner preferences removed and replaced with$USERPATHwhereUSERPATHis *always* set to:$HOMEDRIVE/$HOMEPATH/Derivative/TouchDesigner077. If you had a$HOMEvariable set you will need to reset your preferences. - Fixed frame range inaccuracies when application left running for a 5 or more days.
- Fixed issues with playback when using Movie In TOP feature 'On Timeout Use Latest Available'.
- Fix memory in Touch In/Out CHOPs when multiple OPs are set to use the same port
Build 13620 - May 13, 2011
- Fix memory in Touch In/Out CHOPs when multiple OPs are set to use the same port.
- Fixed vertical auto-adapt for CHOP viewers with more than 10000 samples.
- Fixed Reset crash on Record CHOP
- Noise CHOP is a bit faster
- Beat CHOP now takes optional ramp input to override the global beat settings.
- General speed increase to rendering in some cases, required Nvidia driver version 270.xx or later. However Quadro users should NOT upgrade to 270.71 as that version seems to cause freezing.
- Texture 3D TOP, fixed starting up at wrong resolution if it's inputs started up a the wrong resolution at the initial $F value.
- Sort SOP: Fixed incorrect parameter disabling in the Primitive tab.
- Speed variation for Audio In and Audio Out CHOPs limited to 3% from normal. This should avoid some tone shifting you may here in some files when large pauses happen in playback.
- midi -g now supports arbitrarily length messages up to 128 bytes. This can be used to send SYSEX messages
Build 13380 - April 27, 2011
- Small fix to menus.
Build 13360 - April 26, 2011
- Fixed new build notification not working correctly all the time.
- Movie In TOP will no longer jump when playing sequentially if it hasn't been displayed for a bit.
- Fixed some pausing issues in movie close
- Fixed case where variable evaluation wouldn't work if the variable was contained in a string, and it was defined at the same level that you were currently 'cc' to in a script.
- Fix overcooking issued caused by some variable changes that occurred a little while ago.
- Fixed audio glitch that occurred sometimes when playing a file using the Audio Stream CHOP.
- Fixed frame stutter on timeline loop when REnd is different then End.
- Sort SOP: Can now sort primitives by type.
- Large Speed increase for Render Pick DAT and Render Pick CHOP.
- Alpha To Coverage no longer always disabled in the Render Pass TOP.
- Fixed bugs with the value ladder that caused it to lock up often.
- Audio In CHOP parameters simplified. Queue parameters replaced with a single 'Buffer Length' parameter.
- Light COMP now has Extend Mode menu for projector map. Useful to create endless projections, such as caustics using the Noise TOP.
- CUDA now works correctly when using GPU affinity.
- Network connections/disconnections have been made much more robust.
Build 12780 - April 1, 2011
- fix to expressions when not evaluating at current frame:
chopf()(evaluate given frame).chopcf()(evaluate given frame using channel index). They were only giving correct results when the CHOP sample rate was equal to the timeline frames per second. Also chop() was giving the wrong result when the CHOP was not timesliced and the sample rates was different than the timeline's.
- fixed
opinfo()when in Switch and Cross TOPs.
- fixed bug where Render Pick DAT and Render Pick CHOP had bad texture UVs returned where UVs were passed to instances in the Geometry Component Instance page.
- Movie In TOP - the old movie was kept open after you cleared the File parameter.
- fixed
GADGET_INSIDEVariable where it wasn't being set always.
- added "Mirror" in the Animation Editor as an Extend Condition outside the defined range. (under Add Channels, the choices in the 2 menus for Extending Left/Right for a channel are Hold, Slope, Cycle, Mirror and Default Value.
Build 12660 - March 28, 2011
- new
Count.movin the Map folder. It is 100 frames long with the frame number in each image, and a rotating wheel. Useful for determining playback smoothness. - The
+operator adds instead of appends the two strings if both parts are numbers. Thustab() + tab()adds values as numbers if both results of tab() are numbers. - new Preference allows CHOP Channels to be displayed in separate graphs. Edit -> Preferences -> CHOPs -> Graph Viewer.
-
keystate()expression is now case insensitive. - improvements to display in Animation Editor, Timeline, various dialogs
Build 12600 and earlier
This section includes release notes from build 12600 back to build 4200 inclusive.
Palette components
- new Movieplayer component was added to the Palette in the Tools section. Drag-drop a movie file or TOP onto the component. You can change its internal define table to expose options or manually set the file path.
- Palette Browser and Media Browser updates.
- Palette has new folder and has been reorganized to make it easier to find components.
- Palette now has a suggestion box for user to send in suggestions for new components they would like to see.
- Media Browser has favorites.
UI Changes
- Find Operator Dialog to find a node in the current network. Ctrl-F in a network.
- OP Create Dialog shortcuts to add multiple nodes
- Ctrl-click for adding multiple nodes without the dialog closing.
- Shift-click for adding multiple nodes and wiring them up. This also works with "compatible" nodes (ie. Table DAT -- DAT to CHOP, the DAT parameter is filled in)
- new Search Dialog for easier searching in .toe files. Alt-S or Dialogs -> Search. Uses
findcommand inside. - new Errors Dialog helps track form node errors. Clicking on errors takes you to their source.
- Nodes will now save their viewer state in a
.toeor.toxfile and they get restored when you start again. There are new command options to clear the node viewer settings:-
view -r nodesReset view settings. -
view -R nodesRecursively reset view settings for a component and all its children.
-
- entering Perform Mode - now turns on power button (formerly knowin as the "
play" command). - RMB -> Keyframe Parameter... on parameters now creates an Animation component and hooks up the new channel to the parameter.
- New behavior for hierarchical geometry picking to reflect new node picking behavior:
- Handle when parents are invisible or have no geometry.
- Only top level geometry nodes are picked on selection. Lower level nodes will be highlighted in a duller yellow and thier pick flags will be off. Current nodes at the top level of selection will be highlighted in green.
- Shortcuts to stop the timeline in Perform Mode - In the past, the space bar stopped the timeline, possibly a disastrous behavior in live performances when space bar is accidentally pressed. This and the right-arrow (step forward one frame) and left-arrow (step back one frame) now do nothing in Perform Mode. To pause, step forward or backward in Perform Mode, you must hold down Shift at the same time. This is how it works in new
.toefiles, but in existing.toefiles, you need to add these six rows to/local/shortcuts:
general.command space general.command left general.command right general.command shift.space space general.command shift.left left general.command shift.right right
- In Designer Mode, the behavior is still the same as before: Space bar pauses, right-arrow steps forward one frame, and left arrow steps back one frame.
- Import File Dialog now lets you enter the animation frame rate when importing FBX files with embedded animation.
- updated Export Movie Dialog functionality, now includes ability to set custom timepath (Time Component).
- new MIDI Mapper Dialog.
- new CHOP Exporter Dialog - on CHOP node, RMB -> CHOP Exporter...
- Animation Editor
- When selecting/deselecting segments in the Animation Editor, the keys bounding that segment will be selected/deselected.
- Added option in Graph COMP to hide slopes when not selected.
- Scale handle will now reset when the graph is zoomed & scrolled. it is also disabled in multi graph view.
- Vertical auto homing has been disabled in the keyframer. To home, use the 'h' or 'v' key.
- Multi-Graphs in Animation Editor via RMB -> Graph per Single Channel. 1-8 graphs visible at once via Number of Graphs
- the arrow on parameter paths now bring up the network in a floating pane
- Preferences are now consolidated in
$HOME/touch/pref.txt(and use new UI) - easier Remove Export - Added ability to remove exports by right clicking on a parameter and choosing ‘Remove Export’
- file browsers - When you bring up file browsers, it will stay in the same file path folder after you bring it up another time, unique for each file type. So saving a .tox file at one location won't change the path that comes up when you save an image, or open an audio file.
- CHOP graph viewers are a lot faster when displaying many samples (like audio).
- new Pane path gadget - It is now a TouchDesigner panel component and has better navigation capabilities.
- UI Drawing speedup - 1.3x to 3x faster drawing of the UI, particularly networks.
- TUIK is replaced with new version, TUIK 2.0
COMPs - Components
- Replicator component -
- No longer deletes master if its part of the replicated nodes.
- Added an optional script command to run on each replicated node.
- Default script is : "opset -d on $ITEM"
- The variable $ITEM is replaced with each replicant node's name.
- Its run relative to the specified location.
- new Table COMP component - The Table component a grid of similar interactive cells. This is the most powerful feature of this release - grids of interactive buttons with one lightweight component.
- added a second click format for Table Components. The two methods are:
-
click /table1 5#Click the cell with id 5. -
click /table1 2 3#Click the cell in row 2 column 3.
-
- added a second click format for Table Components. The two methods are:
- Animation Component - added Sequential mode, which allows for pausing, speed control, and cueing to specific points.
- Container Component - Align menu Layout Grid was split into Layout Grid Horizontal and Layout Grid Vertical.
- Window Component - 'Viewer Interaction' toggle (default off). Avoids window component interaction from changing SOP/CHOP/TOP/DAT/MAT views.
- Replicator Component - changed the Script parameter functionality (where you can run a script per-item created) to be a string parameter with a menu of typical choices that can be added.
- added variable
$MASTER, which refers to the Replicator master node. - added Script menu entry to make the replicants be clones of the master:
opparm $ITEM clone ( $MASTER ) ;
- added variable
- Table Component pop-up help attribute added. Table Component cells are defined by attributes (
label,bgcolor, etc). The new attribute namedhelpdefines rollover help for each cell. i.e. You can define the rollover help for each cell of a Table Component by defining this attribute. - Table Component - changed the way fields were specified in order to allow an input cell attribute and output cell location. Now allows you more editing control.
- Instancing in the Geometry Component is extended - U, V and W channels were added so you can explicitly set the UVW texture coordinates.
- The state of the 'Save Backup .tox file' parameter is now preserved when loading an external
.toxfile using a COMPs External.toxfile parameter. - You can now specify the viewing angle of Camera/Light COMPs using horizontal or vertical FOV, instead of focal length/aperture.
- Window component
- recooks when floating window is resized to allow Info CHOPs to update resolution info dynamically.
- press Esc over a floating window to close it. Window components have the additional option to suppress this Esc key feature.
- Select component mode now fits to the original source resolution, then squashes to its own resolution, instead of just laying out to its own resolution.
- Table component new cell attribute: wordwrap on by default.
- Drag / Drop defaults - All panel components are default "Do Not Allow Drag" and "No Not Allow Drop".
- Keep in Memory after Close new parameter in all panel components speeds up the opening of the panel when opened a second time and thereafter. It will keep in memory the UI objects needed to render/layout the panel.
TOPs - Texture Operators
- libavcodec is now the default movie playback library. QuickTime can be re-enabled in TOP Preferences.
- Note: no Unicode in file names - libavcodec does not read file name that contain Unicode characters.
- new Blob Track TOP - up two blobs in the FTE version, unlimited in the FTE Commercial and Pro versions.
- new Convolve TOP - uses a table of coefficients located in a table DAT.
- new SSAO TOP - Screen Space Ambient Occlusion TOP.
- new Analyze TOP - for basic image analysis like the Analyze CHOP.
- new Luma Blur TOP blurs an image on a per-pixel basis depending on the luminance value of the second input.
- new CPlusPlus TOP (FTE Commercial or higher), allows you to create custom .dlls that can create textures however you want (Using OpenGL for example).
- Cube Maps
- Render TOP renders cube maps in a single image, usable directly as a reflection map in the Phong Material. It forces the field-of-view (FOV) to 90 degrees and renders the scene 6 times, automatically rotating the camera for each cube side. The negative Z side is the direction the camera looks at by default.
- seamless Cube Maps - A cube map made with the Cube Map TOP or the Render TOP's cube map option now interpolate cube side pixels at the edges by default on video cards that support them.
- Render TOP will now give a warning if the resolution isn't square when rendering a Cube Map. It will change the resolution to be square automatically also.
- FBO changes - TouchDesigner graphics run faster due to use of "FBO" (Frame Buffer Objects), an OpenGL structure which is faster than older structures. You can revert to the older structures by enabling TOP Compatibility Render Method in Edit->Preferences->TOPs.
- Support for loading DXT1, 3 and 5 compressed .DDS files added
- Movie In TOP - new
mv_has_audiochannel in the Info CHOP for the Movie In TOP. - new Movie In TOP Parameter: Cue Behavior. Controls the behavior of the node when the Cue parameter is released.
- Video In TOP - new menu to select which video library to use (DirectShow or Imaging Source), as we were seeing stalls when Imaging Source was attempting to enumerate cameras on a system that didn't have any Imaging Source cameras.
- Shared Mem Out TOP and Shared Mem In TOP pixel formats - many new pixel formats and data formats listed in TOP_SharedMemHeader.h for use with shared memory TOPs.
- Texture 3D TOP now has the ability to directly replace a specific index in the texture.
- Cache TOP now has the ability to directly replace a specific index in the texture.
- Level TOP now has the ability to work on floating point pixel values without pre-clamping the input to [0-1].
- Level TOP is much faster when animating parameters.
- Render TOP now supports outputting to as much as 16 color buffers, if your GPU supports it.
- GLSL TOP now supports outputting to multiple color buffers in a single pass using gl_FragData[] instead of gl_FragColor. Use the Render Select TOP to view the other color buffers.
- GLSL TOP and GLSL MAT both have more array uniform parameters available for use.
- CPlusPlus TOP will now reset some more of the buffer object states to Off so it's easier to write OpenGL code in the CPlusPlus TOP.
- 2D Texture Arrays no longer have their width/height clamped to a low value. They support the same max width/height of a regular 2D texture.
- new clearcaches Command clears any cached CPU or GPU memory that may be hanging around (only GPU memory for now). Use the memory Command to see how much memory is used for caches.
- Movie In TOP folders containing a sequences of images - added support for an
info.xmlfile in the directory with a sequence of images.info.xmlallows you to specify the frames per second and an audio file to be used with the sequence of images when they are played in the Movie In TOP. Example xml file:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<Settings>
<attributes fps="30.0" />
<audio filename="audio.wav" />
</Settings>
- Render TOP - default resolution for a new Render TOP is now 1280x720
- CPlusPlus TOP - The bound FBO index is now passed into the execute() method.
- Movie In TOP - will now stop cooking when it reaches the end of the movie when using Sequential Playback mode and the extend mode is set to Hold.
- Cache TOP - fixed bug where it wouldn't work correctly with Phong MAT (when mipmapping is enabled, which it is by default).
- GLSL TOP - new int uniform called 'uPass' which lets you know which pass you are rendering in a GLSL TOP (when using the Num Passes parameter on the Common page). Starts at 0 and counts up from there.
- SSAO TOP - now has option for Quarter resolution SSAO pass.
- The behavior of the Text TOP when both word-wrap and auto-sizing are enabled has changed. It will first word-wrap the text based on the specified font size, then auto size the resulting block of text.
- Resolution TOP new scale-down type - new High Quality Resize operation available in the Resolution TOP, uses weighted sums, which has less bleeding than mipmapping. (currently in testing)
- Displace TOP accuracy - The midpoint value for Displace TOP is now quantized to match the bit precision of the displacement map (if it's 8 or 10-bit), so for example a midpoint of 0.5 will match a color of 0.5 now.
- GLSL Multi TOP now supports up to 9999 inputs.
- GLSL vertex shaders - new
TouchGetRotationMatrixavailable on vertex shaders, which calculates the rotation matrix needed to rotate from one vector to another. - CUDA TOP can now return string/numeric values via the Info CHOP and Info DAT
- Movie In TOP - added de-interlacing features
- Field Precedence feature in Movie In TOP for better control of de-interlace feature.
- Video In TOP now supports Imaging Control library from The Imaging Source. If you have Imaging Source cameras (and their drivers installed), the cameras will show up in the Video In TOP camera menu with (IC) after the name. The cameras will usually be listed twice, once through the normal Video In library (DirectShow), and once through the (IC) library.
- Video In TOP has new Async Upload to GPU feature for faster GPU uploads, at the cost of higher GPU memory usage.
- new Blob Track TOP - up two blobs in the FTE version, unlimited in the FTE Commercial and Pro versions.
- Ramp TOP dithering - The new Dither parameter helps avoids banding in gradual ramps.
- TOP field guide - you can overlay a field guide on a TOP via the TOP viewer's RMB menu or the shortcut "f" in the TOP viewer.
- Constant TOP accepts any numbers for RGBA, no longer 0-1. Useful when using TOPs' pixel formats like 32-bit floating point RGBA values.
- Screen Grab TOP parameters are separated as Left, Right, Bottom, Top, like the Crop TOP. (Note its only *partially backward compatible. Saved expressions will be lost, but constant settings are converted
- real-time Noise TOP on GPU - was formerly only slow on CPU. both available.
- added Harmonics parameters to GPU noise functions
- Movie In TOP faster - uploads less memory to GPU when working with movies that decode to YUV colorspace, such as H264.
- Movie In TOP with Audio Movie CHOP plays more steadily as the Movie In TOP and the Audio Movie TOP read independently.
- Movie Out TOP logs total # of dropped frames when it records a movie into a file. It restarts at 0 each time a new movie starts. Use the Info CHOP to get at the values.
- Blur TOP smoother It gives smoother results when outputting 8 bit and 32-bit images. In addition, it now has a Dither parameter which makes 8-bit blurs look smoother.
- Shared Memory TOPs are now in FTE Commercial.
- Render TOP dithering - The new Dithering parameter reduces the banding on gradients in 8-bit images. (You can also make your images output as 16-bit images or more.)
- Text TOP line spacing - The new Line Spacing parameter used to be the Kerning Y parameter. The Kerning Y parameter now kerns in Y per-character, as one would expect. Backward compatible.
- still images from Movie Out TOP - The TOP can produce movie files or still image files like TIFF, JPG and BMP.
- getting alpha into movies with RGB-only formats - Alpha Split in Movie In TOP - You need to construct the movie with alpha in the bottom half of the image, and the movie is double the height resolution. The movie needs to be one of the YUV format movies like H.264, MPEG-4 and others.
- The alpha split code only works with video that decodes to YUV420 or YUV420J. The alpha-rejoining internally is done in a CUDA kernel.
- Bottom Half of Image is Alpha (AAA) flag, enabled if CUDA YUV to RGB is on.
- Render TOP linear depth - The Render TOP now can output linear camera space depth to the Depth TOP (when using FBOs + 32-bit float depth buffer).
- more pixel formats added to TOPs. Look at TOPs' Pixel Format menu for the full set, including single-channel formats (like alpha-only) and packed formats (like 10-bit RGB with 2-bit alpha in 32-bits).
-
.ddsDirectX Image files - TouchDesigner now supports reading many types of.ddsfiles. Most combinations of R, G, B and A formats are supported. Luminance formats and YUV formats are not. - new FreeType text rendering - Text TOP and all UI text now renders with the open source FreeType software, which produces better rendering at small and large point sizes. It supports all TrueType fonts.
- personal TrueType fonts - Text TOP now supports loading .ttf (TrueType font) files, and they work with embedded files via VFS. This means you can control the fonts of your synth by embedding them into the .toe or tox files.
CHOPs - Channel Operators
- Beat CHOP - previously known as the Timing CHOP.
- now generates its own ramps, using its Time Component's BPM value.
- added option 'Locked to Timeline' as opposed to Sequential modes that ignore resets and scrubbing. Split "Sequential" into "Local Sequential" and "Global Sequential".
- Added
baroutput (as in musical "bars"). - Split 'Shape' menu into separate options on an 'Output' parameter page, added "Beats" and "Sixteenths"
- Names now created by type (
bar1,bar2,beat1,beat2), not generically (chan1,chan2,chan3,chan4) - new 'Reset Bar Value' parameter which takes into account time Signatures and Period. Eg: Reset Bar Value = 2.25 will hold the output at Bar 2, Beat 1.
- new "Reference Node" parameter lets you get beats as seen by another component.
- Serial In CHOP and Serial In DAT was renamed to Serial CHOP and Serial DAT as they provide both input and output capabilities.
- accuracy of Speed CHOP was increased.
- Audio Out CHOP parameters simplified. Buffer Length parameter replaces Min/Max Targets, Queue Size, and Recovery parameters.
- OSC Out CHOP now supports multiple connected clients when using the UDT protocol.
- You can now use OSC In CHOP, OSC In DAT and UDP In DAT at the same time, on the same port, in the same process and all will receive data.
- Perform CHOP - added
cookrateoutput channel. - Audio Stream CHOP - added 'Fraction' to all the unit menus to allow 0-1 range for whole audio file.
- Logic CHOP - On Value Change feature in Logic CHOP no longer triggers when the channel name changes. The new On Channel Name Change option added for cases where this behavior is desired.
- Gesture CHOP
- Input lookup wave is now generated internally with time parent BPM value.
- added Reset input, Reset button, and Reset condition.
- removed "Listen Blend", and "Use First Input as Gain When Looping", which were not implemented, and always disabled.
- fixed broken loading of saved data and choppy recording.
- Filter CHOP - remapped the Gaussian curves (which by their nature never reach 0) in order to hit endpoints at zero, to minimize discontinuities.
- Touch Out CHOP, Touch In CHOP - new Unicast UDP (regular UDP) and Multicast UDP feature in Protocol menu of the Touch In/Out CHOPs. It will be extended to other network OPs later. Testing phase right now.
- To use Multicast, make the nodes send and receive using an address between 224.0.0.1 and 239.255.255.255 (these are *not* the actual IP addresses of the machines).
- Touch In CHOP - added 'Recover Outside Range' option which grows/shrinks the queue to the middle of the target zone when it sits outside the range too long.
- Filter CHOP - new 'Ramp Preserve' method to straighten wobbly ramps.
- Logic CHOP - renamed 'First/Last Channel On' to 'Lowest/Highest Index On' in order to clarify its function.
- Timeline CHOP - added more output options for the Time CHOP (bar, beat, sixteenths, ramp_bar, ramp_beat) withing the Time component.
- Object CHOP has new table driven features for better performance. This is much faster for timeslice mode involving several object pairs, as it doesn't have to continually rewind the global time to recook the transform hierarchies.
- You can now specify a two-columned table to specify all the target and reference objects.
- CHOPs with Reset inputs and Reset parameters are unified to behave exactly the same:
- the affected CHOPs are: Oscillator CHOP, Count CHOP, Speed CHOP, Beat CHOP and the new LFO CHOP.
- They all have an extra input, whose label is "Reset".
- new 'Reset Condition' menu (Off to On, While On, On to Off, While Off)
- new Sequencer CHOP - Will sequence data from a number of CHOPs specified in a DAT table.
- Lookup CHOP - Added 'Cyclic Range' menu. (Auto/Yes/No). Yes: For looking up a cyclic output (oscillator, beat driven output etc). No: For looking up a single wave (slider mapping, etc). Auto: Check the right extend condition of each channel. (Assumes type cycle and mirror are cyclic lookups).
- All CHOPs including timesliced CHOPs now use component time and frame rate, not internal frame rate (Example: Object CHOP)
- Render Pick CHOP channel name changed from
instanceIDtoinstance.
SOPs - Surface Operators
- Particle SOP will now have 0 points when it is resetting. Added menu to determine what to do while Reset is 1.
- Point SOP - will cycle through points in second input if point numbers don't match.
- Text SOP - now supports newlines and tab characters (
\n,\t). - new Text SOP, which will replace the Font SOP once it is more feature complete. This uses the same library as the Text TOP, and can load .ttf files directly.
- DAT to SOP - can now create a particle system primitive.
- Sort SOP - new Particle page for sorting particles for doing things like Z-sorting them.
- Channel SOP has been renamed to CHOP to SOP
- Trail SOP - new Accurate Timing option.
DATs - Data Operators
- new Execute DAT - will execute script on conditions, including at the start or end of every frame:
- On Start (after the process starts)
- On Create (when the DAT is created, like when it is copy-pasted from somewhere else)
- On Frame Start (at the beginning of every frame of the timeline)
- On Frame End (at the end of every frame of the timeline)
- Bypass Flag on an Execute DAT will keep it from executing the script.
- new Multi Touch In DAT - reads Windows 7 multi-finger input events and puts them in a FIFO table (first in, first out). It calls a script you write for every event coming in.
- new Render Pick DAT used with multi-sample points expressed in a DAT.
- new OSC Out DAT and UDP Out DAT
- OSC In DAT, UDP In DAT that had their 'Address' parameter filled in with automatically were changed into OSC/UDP Out DATs, since that's how they were behaving essentially. (Double check your files though).
- OSC and UDP In DATs now support multi-casting.
- new Error DAT - outputs errors generated by TouchDesigner.
- Error DAT - added "Log Current Errors" to capture current node errors.
- Major Change & Performance Improvement - The Select DAT and Evaluate DAT will now support per-cell dependencies, which avoids cooking all nodes that are referencing cells in table unless the particular cell they are interested in has changed.
- String parameters will now reset back to their original value when a DAT export is turned off, instead of keeping the exported value.
- new Touch Out DAT and Touch In DAT for sending full tables across the network, as opposed to messages with the other network based DATs.
- File Out DAT - streaming data into files and minimum overhead
- It now accepts 0 inputs, and supports the
sendcommand, which lets you append a string to a file, or a whole DAT to a file. - If 'Append' is off, a new file is written every time, if 'Append' is on, the file is appended to, and the file handle remains open.
- In either case 'Write' needs to be on, if not, current file is closed.
- It now accepts 0 inputs, and supports the
- The Sequencer CHOP's defining DAT table now contains a column
requeuewhich when set to 1 re-adds the row to the end of the table after playing. - Info DAT pointing to the Sequencer CHOP
- added
elapsedcolumn (elapsed time, taking into account speed, pausing, etc) - added time (current time)
- added
sncolumn (serial number index)
- added
- Multi Touch In DAT - now defaults to output a table that has one row per pressed finger, with a variety of useful columns like U, V, X, Y, times since press, serial number, double-click. Try the quick-start on the Multi Touch In DAT page.
- Web DAT - now supports asynchronous download so that it does not stall while it's fetching a web page, and you get notified when the page is available. Use the Info CHOP to monitor the progress. Use the DAT Execute DAT to respond to a completed download.
- Web DAT now supports using
https://secure connections. - Web DAT - now works correctly with more types of web pages that have various character encodings (Pachube for example). Using libiconv.
- Web DAT extended to also use the name/value pairs input table during 'GET' operations. Use this table instead of manually creating a URL link with "?name=value&name2=value2...." extension. This also properly encodes words with spaces, special characters, etc.
- Web DAT has a new timeout feature, defined in milliseconds.
- Substitute DAT
- added Case Sensitive flag, No Auto-Expand option
- a new Expand to String option to substitute in an exact phrase without using backslashes.
- TCP/IP DAT - now supports receiving extended ASCII characters.
- New format for exported DATs which use explicitly named columns. The columns are: path parameter value enable. The enable column is optional and defaults to '1' when blank. Note how the destination parameter is split into two cells, path and parameter. The previous format for exporting DATs is still supported, though a warning will be generated.
An example exported DAT table might contain:
path parameter value enable
/project1/geo1 rx $F 1
- CHOP Execute DAT - by default it triggers On Value Change instead of Off to On.
- CHOP Execute DAT - the CHOP sample index is now passed as an arguement to the script when it is triggered. The scripts gets called for every sample that changes, so when rendering one frame, it may get called 2 or more times per channel, depending on how many frames forward TouchDesigner has stepped (see Time Slicing). The sample index is compatible with the
chopi()expression (so it may not necessarily start with 0, but the CHOPs index range). - Select DAT choose by expression - Parameter for Select DAT to select by condition. Local variables for evaluating condition $S,$R,$C available.
- FIFO DATs - Consolidated all the input FIFO-style (first in, first out) DATs (Midi In, Midi Event, OSC In, UDP In, Serial, TCP IP) -
- The rows now saved in the .toe so its re-starts with the same data as it was saved in.
- All output is under two headings
messageandvalue. -
valueis the decimal expansion of all the bytes in message. - You can run a script for every message received. The new Log tab lets you set the script and maximum number of rows of the DAT.
- new Format menu for Serial, TCP, and UDP In DATs - what appears in each row of the DAT -
- Per Byte
- Per Line - null/newline delimited
- Full Message
MATs - Materials
- GLSL MAT - now sends matrices beyond the first one into the shader (on the matrices page).
- GLSL MAT now accepts integer vertex attributes (such as the id attribute created in particle systems).
Panels and UI Building
- Panel Value '
winopen' now reacts to Perform Mode and floating viewers. - Window Components and the view Command now update Panel width/height parameters and screenw/h panel values.
- panel value
wheel- added "wheel" panel value. Sends a pulse of a positive or negative number and then back to 0 - dissolving out panels with the Display parameter - The Display parameter of all panel components now acts as a partial dissolve between 0 and 1, so you can fade in and out your panels. (Tell us if you don't like it.)\
- default Slider, Button and Field components now contain a few operators to make them immediately functional.
Scripting
- disabling crash files - You can use
TOUCH_DISABLE_CRASH_HANDLERSEnvironment Variable to disable the.dmpdump file creation and out of memory warning in TouchDesigner. - Variable evaluation now adds dependencies up the tree as component variables are evaluated, so if a new one comes into existence lower in the tree, it will cause the node to cook and take precedence.
- Added built-in variable
$SYS_MAINMONITORwhich returns the index of the main monitor display.
- Added built-in variable
- Redirecting command output to files -
- Redirecting command output to a file always expects a
FILE:prefix. See Redirecting in Tscript. - Support explicit echoing to relative or absolute disk paths. Requires a
FILE:prefix to denote that you want to write to a file instead of a DAT - Always expects a
FILE:prefix, else continues, but outputs warning. - eg:
echo abc > FILE:C:/abc.txtinstead ofecho abc > C:/abc.txt - Invalid disk names are:
abc.txt(no colon, assumes DAT) - echo Command - You can echo to files now, using relative or absolute filesystem paths.
- A "
FILE:" prefix can be used to explicitly denote a disk path. - A disk path is assumed if it has a colon anywhere in the path.
- A "
- Redirecting command output to a file always expects a
- Ctrl-Break will get you out of long cooks or scripts that are looping. (Ctrl-Break on a Mac keyboard)
Commands
- view Command -
view -Cwill close topmost parent panel. - vfs Command -
vfs -L *will now list recursively. - oprm Command - is now faster when doing a lot of nodes in one go.
- macro Command overhaul - Typing
macrogives a list of macros and their location. New options help you find location of macros. Made fixes to default macro location when issuingmacrocommand, as well as giving more meaningful details when listing macros. - clearcaches Command - clears any cached CPU or GPU memory that may be hanging around (only GPU memory for now). Use the memory Command to see how much memory is used for caches.
- view Command - open/close node viewers
- vkey Command - input keys virtually. keys will be sent to the current keyboard focus.
- vclick - The
clickposcommand renamed tovclick.clickposis deprecated but will stay functional for a while. - quit Command will no longer prompt to save file, if that option is disabled in preferences.
- exportmap Command - now separate destination path from the parameter.
- new cookrate Command and $COOKRATE to replace old fps Command
- new realtime Command -
realtime on|offto replacefplayback -r on|off(and made backward compatible) - fcur, fset, and frange commands for working with frames, timecur, timeset, and timerange commands for working in seconds.
- power Command - operates the 0|1 button at top, replaced
playcommand withpowercommand. Returns current state if no args given.playcommand continues to work but gives a warning. - memory Command now reports CUDA memory usage.
- time Command - added
-eoption for time command to show Epoch time (the time in seconds since midnight 1st January 1970, the birth of UNIX). - removed commands
playandfplaybackno longer needed, replaced withpowerandrealtimecommands. - lf Command options to format its list: lf -s (sort), lf -i (case insensitive sort)
- run Command has new
-eoption to specify the delayed script should run at the end of the frame instead of the start of the frame. - opadd Command and optypes Command will now list all OP types, even Expert ones when Expose Expert nodes isn't turned on.
- toewrite Command extended
- toewrite -s (Same as "File -> Save" from the pulldown menus)
- toewrite -a (Same as "File -> Save As" from the pulldown menus)
- undo command extended:
-u undo the last block of operations. -r redo the last block of operations. -u -l List the name of the last block of undo operations. -r -l List the name of the last block of redo operations.
- findpanel Command and clickpos Command - added priority. Priority in the following order:
- active panel in a floating window
- active panel in a activated opviewer
- active panel in a opviewer top
- inactive panels in the above order
- args Command was extended to allow for single-letter options.
args "-t temperature" name1 name2will let you call a script passing it two arguments and one option,-twhich gets assigned to the variabletemperature. - memory Command -m option suppresses 0-meg OPs
- netscope Command - brings up a network in a floating window. the new -v option returns name of new pane.
- new inline Command runs scripts, but unlike the
includecommand, it does not push-pop variables. Likeinclude,inlinedoes not change the current folder, whereas theruncommand changes the current folder to the location of the script it is calling (andrunpushes/pops variables). - new ex Command will echo what follows and then execute it.
-
sendcommand sends a message out to TCP/IP, UDP, OSC or the Serial port. The message is the text given on the command line or in a DAT.- When sending the contents of a table DAT and sending as bytes, each cell of the table is parsed into individual bytes, else each cell of the table is separated by a space and each row is terminated by the specified terminator character. (See its help for more examples).
- data can be sent as raw ASCII data (default), or as (
-d) decimal, (-h) hexadecimal or (-o) octal codes. - output to OSC has an extra option,
-Ofor specially-formatting OSC messages. -
sendcommand to output 'carriage_return linefeed'
Expressions
-
var(path, name)expression now evaluates the variable from the context of the path, instead of assuming its a local variable of the path component directly. Example:var("/project1", "BPM") - new
keystate()expression to return state of various keyboard buttons - new expression
convertbase()- converts a number from one base to another. * Ex: 255 from decimal to hexadecimal:convertbase("255", 10, 16) = "FF" - new expressions
tofloat() todouble()- helps with precision problems when dealing with CHOP sample values, etc. Example: You set a Constant CHOP to.1(a number that doesn't have an exact digital representation, not matter how many bits). CHOPs are stored as 32-bit, expressions compute at 64-bit.chop()converts from 32-bit to 64-bit which gives.10000000149012.tofloat(chop())gives.1. - par() expression supports the
par("path:parameter")syntax, preferable to the still-supportedpar("path/parameter")syntax. - all
chop*()expressions now accept arguments of the form:path:channel. example:chop("/project1/wave1:chan") -
format()expression - changed so blank space is not left in front of positive numbers. - oproot() and oprootf() - new expressions
oproot(path)oprootf(path)which returns the root node of the hierarchy containing the node specified by path. - [[fit()] - no longer clamps the output inside the new range.
- new expressions frametotimecode() and timecodetoframe(). Takes a sample rate and a time expressed in one of the two ways, and converts to the other way.
- new timepath() expression - will return the path to component defining time for the current component. If root is 1, the root time will be returned instead. Examples: timepath(0) // current time path. timepath(1) // root time path. timepath("anypath") // path of any node.
- new parevalpath(parm) returns the full path to the node specified in the parameter. The parameter may contain expressions, and relative paths.
- new cvar() expression - This expression will return a component variable as evaluated from a specific path. The variable may reside in the path, or may reside in in a containing component further up the hierarchy.
- Example: cvar("A", "/project1")
- Example: cvar("TOUCHTIME", "/")
- new panelscreen() expression - You give it a panel name and it gives you the location of its bottom left and top right pixels.
- new backslash() and forwardslash() does string substitution: set path = `noevals(backslash($path))`
New or revised wiki pages
Backwards Compatibility Issues
- The bottom half of the Window Placement Dialog (defining the second monitor) is deleted as it is obsolete. Please use the new and more flexible Window Components. If you need the older functionality, you still have the winplacement Command which we will remain in for the next year.
- CUDA
- Toolkit upgraded to version 3.0. Use of any CUDA feature requires driver 197.00 or later.
- CUDA DLLs for the CUDA TOP will need to recompiled using the 3.0 version of the CUDA Toolkit (not 3.1).
- New Web DAT parameters cause previous settings on Update and Fetch page to be lost. Features from that page have been collapsed onto the first page.
- Expressions used to give Root and Component Variables precedence over script values, if two were named the same. The previous behavior was incorrect and is now fixed. If a script variable is defined it will take precedence over any defined Root or Component Variables.
- Components will no longer look inside themselves when evaluating variables in their parameters. This is also true for the Path Variable parameter, it will no longer be resolved if a component references the variable in the same parameter page. See this forum post for more information: http://www.derivative.ca/Forum/viewtopic.php?f=4&t=2618
- The
-Ooption in the send Command has been deprecated and replaced with-s, which requires both the OSC tag(s) and the OSC address. OSC address is no longer the first argument given after the node path the send command sends through. - The send Command will now automatically append a null character when sending a string unless some other type of terminating character (null,
\n,\r) is given using the-z, -n,-roptions. You can disable this behavior using the-xoption. - Macros can no longer have characters that are not legal in a regular node name (numbers, letters and underscore).
- exportmap Command reworked to allow for removing of individual destinations. Old usage of the exportmap command will need to be updated.
- The "# of Color Buffers" parameter in the Render TOP and CPlusPlus TOP, as well as the "Color Buffer Index" parameter in the Render Select TOP have been changed to integer sliders. Files should be backwards compatible unless exports are used to set theses parameters. In that case the exports will need to be setup again.
Bug Fixes and Improvements
- fixed bug where OSC In CHOP wouldn't get the correct channel value the first time it received a new channel.
- Fixed Parametric EQ CHOP getting into a bad state when Frequency or Bandwidth parameter get set to
0(by clamping them to0.00001) - Fixed -f option in geoimport Command not working correctly.
- Fixed normal and vertex ordering issues of extrude, hole/unhole, font related SOP functions.
- Level TOP bug fixed that caused it to use Linear interpolate even when Nearest was selected. Speed improvement for Lookup when using Luminance.
- Fixed update issues changing the timeline rate with expressions involving $FPS.
- CHOP Execute DAT fixes where it was causing intermittent double executes per frame.
- fixed problems with Near/Far planes getting reset when homing the Geometry Viewer.
- Shared Memory Operators - If you recompile your
.exefiles with the latestUT_SharedMem.cppandUT_SharedMem.hincluded in the installer, the OPs should handle clearing the shared memory better when the sender opens/closes. - GPU Affinity Mode 1 is not longer enabled by default for Windows Vista/7, set it using TOUCH_GPU_AFFINITY_MODE = 1.
- fixed crash when Network OPs have a blank string for their address.
- fixed Memory Leak when Network Out OPs are in an error state.
- Level TOP - Fixed bug where if Step Size was 0 but Threshold wasn't, the result were different than they were in older builds.
- Fixed crash in Point SOP when 2nd input has no points.
- Fixed endless export conflict warning with conflicting DAT exports.
- Displace TOP - Setting the x/y Source to None now works correctly.
- fixed broken Camera Blend COMP
- removed Camera warning from Render TOP
- fixed bug where
$TOUCHvariable is unchanged after opening a project from a different directory. - Angle CHOP output is now fixed.
- Startup window placement was slightly inaccurate in operating systems with thick window borders, cutting off top menus.
- fixed bug when upgrading exports in old
.toefiles. - Exports get converted from old
.toefiles better. - fixed memory corruption in Angle CHOP.
- fixed Blob Track TOP bug that caused it to not work correctly on resolutions that had a width that wasn't a power of 4.
- SSAO TOP Quarter Resolution option is now works correctly.
- added workaround for driver bug on 400 series of Geforces that broke the SSAO TOP.
- The version conflict dialog box will no longer show up more than once per build number.
- Touch Out DAT now cooks less often. It also now correctly sends data to any newly established connection.
- Fix Joystick CHOP values going to 0.5 when they reach 0.
- Fixed bug where chop() expressions wouldn't come alive when channels they were looking for came into existance.
- Fixed Scope parameter not working in the Delay CHOP.
- SOP to CHOP will now have no channels if the source geometry has no points.
- fixed Camera COMPs in files saved in build before 7260 loading up with their viewing angle set incorrectly.
- Movie Out TOP fixed - was not working correctly when recording at a lower FPS than the playbar.
- fixed crash when attaching a SSAO TOP to a Render TOP with no camera.
- fixed bug that caused multiple Render Pick OPs to not be able to target the same Render TOP, in some cases.
- fixed crash when attaching a SSAO TOP to a Render TOP with no camera.
- fixed bug where camera targets wouldn't import correctly via FBX, if they didn't have animation tied to them.
- Save Component dialog will now start at a more logical spot when it's used on a COMP that has an external
.toxfile defined. - re-implemented
$COOKRATEvariable to allow dependent nodes to recook upon update. Fixes update issues when changing framerate. - node RMB menu entry 'View / View Borderless' now pops up existing viewer if it exists instead of always creating a new one.
- Fixed the cookEveryFrame feature in the CPlusPlus OPs not working
- Fixed GPU memory leak that occurred when navigating through networks then deleting those networks.
- Fix so that Vertex SOP will cycle through primitives. Vertices per primitive will still have to match. Fixed a crash in Vertex SOP when number of primitives in inputs don't match.
- Fix case where GLSL MAT wouldn't compile correctly when using some instancing functions like getInstanceScale.
- Fix scroll wheel to use Windows setting for number of lines. Currently applies to DAT viewers and tables only
- Fixed the display of TOPs, CHOPs, and Geometry in the network backdrop, more consistently tiled squares when you enable their display flag.
- fixed crash when deleting network background-displayed CHOPs
- Joystick CHOP improvements -
- fixed crash when plugging, unplugging etc.
- Missing sliders now produce default values instead of 0.
- Missing joysticks, DirectX version etc still produce output, though give a warning.
- Keyboard CHOP and Mouse CHOP - fixed bug where they would become inactive after middle and right-clicking on an input field.
- Privacy - fixed bug where some files wouldn't work correctly under Privacy mode.
- Cloning fix - Certain cloned nodes that stay around during a save (In/Out OPs, COMPs) will now correctly clone their masters parameters/flags upon start-up.
- fixed bug that caused nameless nodes to get created when creating a macro without specifying a name.
- Noise CHOP - fixed freezing behavior after long periods of time, and swapped to use better random number generator.
- Phong MAT - better indenting for shaders output.
- Feedback CHOP - Fixed delta channel being added continuously.
- Feedback CHOP - no longer requires a Null CHOP set to cook always as its input to work correctly.
- out-of-memory - TouchDesigner will now display a message box when it discovers it has run out of CPU memory. This will catch most occurrances but not all.
- Movie In TOP - You can now step through a movie when Sequential playback mode is used and your playbar is paused.
- Resolution TOP - fixed GPU memory leak in the High Quality Resize option.
- TouchDesigner now correctly detects different monitors when a Matrix Triple Head 2 Go is used.
- Displace TOP - Three weight factors scale (1) the effect of the input warp image, (2) a constant UV and (3) the UV of the output pixel in determining where to look up in the Source image.
- Offset page has been collapsed onto the first page.
- fixed GPU memory leak when deleting a Blur TOP.
- Double clicking on the name field of an activated node will now enable you to edit the node name. This also works when fixed size operator name is on.
- Maximum Time Slice in CHOP Preferences is now expressed in milliseconds. Old values will be ignored. New default is 100 (msec).
- Files with many network OPs will now close much faster.
- Fixed bug where Render TOP wouldn't re-generate it's mipmap data after the first cook.
- Fixed incorrect playback Movie In TOP when 'Async Upload To GPU' and 'On timeout, use latest avail' parameters were both on.
- Fix long Movie In TOP cook when the movie loops and you're using Loop Crossfade.
- Fix issue with slow panel drawing in some cases.
- Fixed from last build - bad values in Filter CHOP when the Filter Width was 0.
- Fix issue with RMB menu not popping up on open window COMP.
- Fix crash when locking SOPs in some cases.
- numerous Modeler fixes
- Fix so characters as well as integers can be passed to the key panel value.
- Fix so that cursor can be updated during scripting calls (normally updated during redraws).
- Fix bug where Window COMP wouldn't open to the correct borderless size if it was opened bordered previously.
- Fixed crashes when swapping images on Component Table cell backgrounds.
- Fixed behavior where stowing/unstowing *any* window toggled the power button. It should only be the main window.
- Fixed Speed CHOP zig-zag function breaking down after several hours.
- Movie Out TOP will no longer write frames when the playbar is paused. It used to keep writting if the Power button was on.
- Fixed some squelching in the audio playback when seeking.
- Fixed sampling error when auto-merging two channels of different rates.
- Windows opened with Window COMPs won't automatically regain focus if the COMP cooks.
- Fix flickering issue with DAT viewers when clicking on different nodes.
- Fixed bug where the Feedback TOP wouldn't load up correctly if either of the aspect ratio values weren't integers.
- Fix bug where you couldn't properly lock an In TOP that had it's default input connected.
- Geometry display options: Fixed so points can be drawn even when there is no geometry.
- Fix crash when very old driver tries to use blob detection
- Rearrange pivot management section of RMB menu in select state for Geometry Viewer & modeler.
- Added a Reset Pivot to Selection Origin in Geoemtry Viewer.
- Fix so that transform pivot remains in position after re-attachment to geoemtr.
- Fix so geometry in modeler can only be translate with transform handles, and not via dragging.
- Fix issue where a window justified to the mouse location would follow the mouse around the screen if the Window COMP was cooking.
- Envelope CHOP - Fixed Signal Power and Normalize options, which just output junk, including QUAN## errors. Fixed periodic junk output in all cases.
- CUDA memory is now counted in the total used GPU memory tallies.
- Significant performance increase for Merge CHOPs that have merging a large number of channels.
- Script execution has been made ~20-30% faster in most cases.
- Fixed bug where Movie In TOP wouldn't load up correctly when using open timeouts, in some cases.
- Memory leak when deleting a Render TOP that has a Depth TOP looking at it fixed.
- Fixed button release for click command works as if click off is inside button. (Fixes issue with momentary up etc).
- Fixed memory leak when the
printcommand was used without the textport being visible. - Fixed GLSL TOP rendering out 2D texture arrrays and 3D textures correctly.
- Originate parameter in many network OPs has been renamed to Connection Mode.
- TCP/IP In DAT no longer caused TouchDesigner to freeze if it's deleted before it establishes a connection.
- copy-paste nodes - Nodes that are copied and pasted with inter-connections (node references, exports) will now reference the newly created nodes instead of the original (copying a Ramp TOP + it’s DAT for example).
- floating Panels re-size immediately after their width and height parameters change (before you had to close and re-open the window)
- audio artifacts fixed
- loop-around at end of timeline sometimes produced a pop
- driving the audio by specifying the time index was not accurate. fixed.
- some OPs that were mixing audio were not accurate enough. fixed.
- panels re-open at correct resolution when changing width and height parameters of panels that are open floating.
- click -v was fixed to set the v coordinate of 2D uv gadgets.
- Para EQ CHOP fixed - it rebuilds its filters when the sample rate changes.
- Modeler has 2nd fill light so geometry will look better at certain angles.
- New indicator in the network editor to notify you if you are in a network that is loaded from an external .tox file. Avoids accidentally editing a network that won't get saved when you save the .toe file.
- TOUCH_DOUBLE_DRAW environment variable draws image twice per frame cooked, like for 30 fps synths running on 60fps displays. Gives a more accurate display rate, otherwise it's at the whim of the NVIDIA driver/hardware how many frames each image gets displayed.
- PBO recycling has new environment variable
TOUCH_RECYCLE_PBO_RATIOwhich allows you to control how lax the recycling in when matching a requested buffer size with a recycled buffer. 1 will require an exact match, 0 allows any buffer that is big enough to be used. Defaults to 0.8 when not set. - not supported: for those of us squinters. This affects only part of the UI...
uioptionscan now adjust parameter dialog and textport size via the font.relative.size option. uioptions -o font.relative.size 0 will set the fonts to its default size. uioptions -o font.relative.size 3 will set the fonts to 3 points larger. fonts are clamped to 5 points larger and 3 points smaller than normal. - TouchDesigner run on Windows 7 - Dual Monitor works well (via desktop -> RMB -> Screen Resolution). NOTES:
- make sure to clear out your
C:/Users/yourname/AppData/Local/VirtualStore/Derivativefolder to remove unwanted files Windows 7 redirects. - The installer looks like it's hanging but it's waiting for security confirmation in another window.
- The TouchDesigner window starts slightly too large - edge under taskbar.
- some file choosers go to your project folder versus the location of the files.
- other small things will be documented in the forum.
- make sure to clear out your
Older Release Notes
Older Release notes are available here.
