From TouchDesigner Documentation
Jump to: navigation, search


The Beat CHOP generates a variety of ramps, pulses and counters that are timed to the beats per minute and the sync as produced by the Beat Dialog.

  • You can generate a ramp every 1/4 1/2 1 2 4 8 32 beats.
  • You can generate ramps of any other length, like 12 beats per bar (ramp) and fractional beats like 3.33 beats per ramp.
  • You can generate a set of channels, where each channel is delayed relative to the prior channel. This is useful, for example, for moving eight objects delayed by one beat each.
  • There also is a counter of how many ramps it has generated.
  • The Count+Ramp type generates a continuously-rising ramp equal to the number of cycles since the start.
  • If Play Mode is set to Local Sequential, it doesn't look at start/end of the timeline (i.e. doesn't reset when the timeline loops), so is more appropriate for long improvised playing.

The Beat Dialog is used to manually tap the beat to set the beats-per-minute (BPM). The Beat CHOP converts the BPM into a repeating ramp or pulse that keeps time with the music after you stop tapping.

You can set the global beats-per-minute with the python command: op('/local/time').tempo = 140

The phase can be controlled with the Beat CHOP's Reset parameters.

The Beat CHOP's timing is defined by the Component Time of the Reference Node. If the Reference Node parameter is left blank, then the time defined at the Beat CHOP's location is used. The default is in /local/time.

See also: Timeline CHOP, Time COMP.


Parameters - Beat Page

Reference Operator op - This node is used to specify the time settings referenced by the Beat CHOP. The time is defined by the Time COMP found at timepath("reference_node")  

Use Reference Time Slice reftimeslice - Turn on this checkbox to use the Time Slice used by the Reference Node.  

Play Mode playmode - - Specifies the method used to playback the output.

  • Locked to Timeline locked - This mode locks the output to the local component Timeline. Scrubbing or jumping in the local time will update the output accordingly. When the local timeline loops the output is reset and starts over. The output will be the same for each pass through the local timeline. See also the Update Global parameter below which is available in this Play Mode.
  • Locked to Global global - This mode locks the output to the root timeline(Global). Scrubbing or jumping in the root timeline(Global) will update the output accordingly. When the timeline loops the output is reset and starts over.
  • Local Sequential local - This mode produces a continuous output regardless of the timeline position. See also the Update Global parameter below which is available in this Play Mode.

Period period - Number of beats it takes to generate one cycle of ramp.  

Set Period setperiod - Use this drop down menu to select from some commonly used Period lengths.  

Multiples multiples - The number of channels to create.  

Shift Offset shiftoffset - Delays all channels by this amount. 0 = no change, .5 means 50% of one period later.  

Shift Step shiftstep - When set to 1, and Multiples is 5, each ramp channel is 1/5 cycle later than the previous channel. When set to .1, the delay is 1/50 cycle. This is a way to stagger the channels.  

Random Offset randoffset - The amount that each ramp is randomly time-shifted relative to a perfect ramp.  

Random Seed randseed - Changing this generates a different set of random offsets.  

Reset Condition resetcondition - - This menu determines how the Reset input triggers a reset of the channel(s).

  • Off to On offtoon - Channels are reset when the Reset input goes off to on.
  • While On on - Channels are reset when the Reset input goes on. The channel will hold the reset value until the input turns off.
  • On to Off ontooff - Channels are reset when the Reset input goes on to off.
  • While Off off - Channels are reset when the Reset input goes off. The channel will hold the reset value until the input turns on.

Reset Bar Value resetbarvalue - Specifies which Bar the Beat CHOP will jump to when the Reset Condition is met. Beat values are derived from the fractional part of this value.  

Wait after Reset resetwait - When using the While On Reset Condition, Wait After Reset will hold the channels at zero until the next bar is started, after which the output will continue. When Wait After Reset is off, the channels will restart output as soon as the reset condition is done.  

Reset reset - This button resets the ramps to zero when On. The ramp is also zero when the Beat CHOP's input is above 0.  

Reset Pulse resetpulse - Instantly resets the ramps to zero.  

Update Global updateglobal - Any Beat CHOP can now be made a "global beat source" by turning Update Global. A reference Beat CHOP is created at /local/master_beat (if it doesn't already exist) and all Beat CHOPs can synchronize to this by turning on Update Global. This means you require exactly one master Beat CHOP per toe. You can turn off its 'Update Global' flag when desired. $MASTER_BEAT is set to whatever Beat CHOP has this option turned on.  

Parameters - Output Page

Ramp ramp - Outputs a 0-1 ramp each bar.  

Pulse pulse - Outputs a pulse each bar.  

Sine sine - Outputs a sine wave each bar.  

Count count - Increases the count each bar.  

Count+Ramp countramp - A ramp that counts up until the bar is reset.  

Bar bar - Output the current bar.  

Beat beat - Output the current beat.  

Sixteenths sixteenths - Output the current sixteenths.  

Ramp Bar rampbar - Outputs a 0-1 ramp each bar.  

Ramp Beat rampbeat - Outputs a 0-1 ramp each beat.  

BPM bpm - Outputs the current BPM.  

Parameters - Common Page

Time Slice timeslice - Turning this on forces the channels to be "Time Sliced". A Time Slice is the time between the last cook frame and the current cook frame.  

Scope scope - To determine which channels get affected, some CHOPs use a Scope string on the Common page.  

Sample Rate Match srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or "Linear" if the Interpolate Options are not available.

  • Resample At First Input's Rate first - Use rate of first input to resample others.
  • Resample At Maximum Rate max - Resample to the highest sample rate.
  • Resample At Minimum Rate min - Resample to the lowest sample rate.
  • Error If Rates Differ err - Doesn't accept conflicting sample rates.

Export Method exportmethod - - This will determine how to connect the CHOP channel to the parameter. Refer to the Export article for more information.

  • DAT Table by Index datindex - Uses the docked DAT table and references the channel via the index of the channel in the CHOP.
  • DAT Table by Name datname - Uses the docked DAT table and references the channel via the name of the channel in the CHOP.
  • Channel Name is Path:Parameter autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.

Export Root autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is Path:Parameter are relative to.  

Export Table exporttable - The DAT used to hold the export information when using the DAT Table Export Methods (See above).  

Operator Inputs

  • Input 0 -
  • Input 1 -

TouchDesigner Build:

Ableton Link • Analyze • Angle • Attribute • Audio Band EQ • Audio Device In • Audio Device Out • Audio Dynamics • Audio File In • Audio File Out • Audio Filter • Audio Movie • Audio NDI • Audio Oscillator • Audio Para EQ • Audio Play • Audio Render • Audio Spectrum • Audio Stream In • Experimental:Audio Stream In • Audio Stream Out • Beat • Bind • BlackTrax • Blend • Blob Track • Bullet Solver • Clip Blender • Clip • Clock • Composite • Constant • Copy • Count • CPlusPlus • Cross • Cycle • DAT to • Delay • Delete • DMX In • Experimental:DMX In • DMX Out • Envelope • EtherDream • Event • Expression • Extend • Fan • Feedback • File In • File Out • Filter • Experimental:Filter • Experimental:FreeD • Function • Gesture • Handle • Helios DAC • Hog • Hokuyo • Hold • Import Select • In • Info • Interpolate • Introduction To CHOPs id • Inverse Curve • Inverse Kin • Join • Joystick • Keyboard In • Keyframe • Kinect Azure • Kinect • Lag • Laser • Leap Motion • Leuze ROD4 • LFO • Limit • Logic • Lookup • LTC In • LTC Out • Math • Experimental:Math • Merge • MIDI In • MIDI In Map • MIDI Out • Mouse In • Mouse Out • NatNet In • Noise • Null • Object • Oculus Audio • Oculus Rift • OpenVR • OSC In • OSC Out • Out • Override • Panel • Pangolin • Parameter • Pattern • Perform • Experimental:Phaser • Pipe In • Pipe Out • PosiStageNet • Pulse • RealSense • Record • Rename • Render Pick • Reorder • Replace • Resample • S Curve • Scan • Script • Select • Sequencer • Serial • Shared Mem In • Shared Mem Out • Shift • Shuffle • Slope • SOP to • Sort • Speed • Splice • Spring • Stretch • Stype • Switch • Sync In • Sync Out • Tablet • Time Slice • Timeline • Timer • TOP to • Touch In • Touch Out • Trail • Transform • Transform XYZ • Trigger • Trim • Warp • Wave • Experimental:WrnchAI • ZED

An Operator Family which operate on Channels (a series of numbers) which are used for animation, audio, mathematics, simulation, logic, UI construction, and many other applications.

A Link.

The generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you "lay down an Operator" or "lay down an Node", you're doing the same thing.

Any of the procedural data operators. OPs do all the work in TouchDesigner. They "cook" and output data to other OPs, which ultimately result in new images, data and audio being generated. See Node.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

A Time Slice is the time from the last cook frame to the current cook frame. In CHOPs it is the set of short channels that only contain the CHOP channels' samples between the last and the current cook frame.

The panel at the bottom of TouchDesigner, it controls the current Time of the full system or just one component.

To pulse a parameter is to send it a signal from a CHOP or python or a mouse click that causes a new action to occur immediately. A pulse via python is via the .pulse() function on a pulse-type parameter, such as Reset in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in a channel.

A parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator.

samples-per-second of a CHOP. Each CHOP in your network has a sample rate, whether it is used or not. The overall timeline has a "frame rate", which is the number of animation frames per second, generally your monitor display frequency.

Exporting is the connection of CHOP channels to parameters of operators. The output of each exporting CHOP is one or more channels, active only while the CHOP Viewer is on. The current value of a channel can be exported to a parameter of any operator, overriding that parameter's value. See Parameter.

An Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a command Script, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.

The location of an operator within the TouchDesigner environment, for example, /geo1/torus1, a node called torus1 in a component called geo1. The path / is called Root. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.

Parameters in TouchDesigner are an operator's settings (numbers, menus, flags, strings, paths) which the user can alter. Parameters for any operator can be opened by right-clicking on the operator and selecting "Parameters..." A currently selected operator's parameters can be viewed in a Network Editor by pressing the keyboard shortcut 'p'.

TouchDesigner is a hierarchy of components. "root" is the top-most network in the hierarchy. The Path is simply /. A typical path is /project1/moviein1.