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
Parameters - Beat Page
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
Use Reference Time Slice
reftimeslice - Turn on this checkbox to use the Time Slice used by the Reference Node.
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 - Number of beats it takes to generate one cycle of ramp.
multiples - The number of channels to create.
shiftoffset - Delays all channels by this amount. 0 = no change, .5 means 50% of one period later.
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.
randoffset - The amount that each ramp is randomly time-shifted relative to a perfect ramp.
randseed - Changing this generates a different set of random offsets.
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 - This button restarts the ramps from zero. The ramp is also zero when the Beat CHOP's input is above 0.
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 - Outputs a 0-1 ramp each bar.
pulse - Outputs a pulse each bar.
sine - Outputs a sine wave each bar.
count - Increases the count each bar.
countramp - A ramp that counts up until the bar is reset.
bar - Output the current bar.
beat - Output the current beat.
sixteenths - Output the current sixteenths.
rampbar - Outputs a 0-1 ramp each bar.
rampbeat - Outputs a 0-1 ramp each beat.
bpm - Outputs the current BPM.
Parameters - Common Page
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 - 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.
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
autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is Path:Parameter are relative to.
exporttable - The DAT used to hold the export information when using the DAT Table Export Methods (See above).
- Input 0 -
- Input 1 -
|• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •|
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.
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.
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'.