An Introduction to CHOPS

How do You Use a CHOP, and What is It?

A CHOP is a Channel Operator. It is one of several network folder types in Houdini. Any nodes associated with this network type are built for editing animation curves and audio data.

They also are capable of digital audio processing, developing rigging tools, and modeling and sculpting animation. Pretty much anything that involves a curve, creates a curve through motion, or has a relation to cos,tan and sin can be edited in a CHOP network. 

In order for a CHOP net to work, you need to read in a path from a SOP geometry. So basically, create a sim or geometry in SOPs, add a null, lay down a CHOP net in the same object node, and read in the data. 

On a side note, if you are heading down a rigging path in Houdini. I recommend checking out Henry Dean on Vimeo. He has multiple videos on Rigging with CHOPs, and much more. Here is a link to his channel.

Manipulating Channel Data and the Motionfx Editor

I'll be honest, when I first saw this panel, I thought it had something to do with motion graphics and/or was an extension of the animation editor. Honestly, I wasn't completely wrong. 

The Motionfx Editor shows the data passing through channel nodes.  It shows the active animation on an object, and it's curves. You have the ability to label curves, points on curves, and channels as you see fit. When working with the editor, you might see labels such as tx,ty, tz. These labels are showing the position of your curve in 3D space. While working with your CHOP nodes , you should always be looking at the motionfx editor. 

Here are some useful hotkeys for the motionfx editor:

Shift + Left Click: Set the current CHOP.

Ctrl + Left Click: Set the current frame.

Right Click: Pans across the graph.

Alt + Left Click: Set the current CHOP and frame to the nearest sample.

Middle Mouse Click: Scale the graph.

In this editor you has the option of doing something called editing raw samples. These tools can directly set the values of sample data. This is faster than smoothing splines of data through the Animation Editor. You'll need to turn on the Raw Edit Tools through the Options menu first. Then you'll also need to turn on Dots and Options and Handles as well.

General Troubleshooting Tips

  • Copying is a lot more difficult in CHOPs than than in regular SOP nodes. In order to do this in a copy setup you'll have to use a Copy CHOP. You can find a copy stamping in CHOPs example file; HERE.

  • Another way to give your CHOP step more control is to use a Lookup Ramp. This allows you to time-stretch/warp your audio. 

 

  •  If you wanted to apply a different pitch from each copy CHOP, one way you can approach this is by this.First, create some triggers, a channel of 0's and 1's at individual samples. Then, add a Trigger CHOP, Generate ramps or 0-1 linear progressions. The length would default to the length of the audio file. Half would equal a double pitch. Twice would be half a pitch. Then add a Lookup CHOP. You can add this to multiple channels. To hear it, they need to be added. You can use a math CHOP set to add channels as well.

  • You can retime cameras with CHOPS. CHOPs can export modified retime channels to cameras, as long as it doesn't have any parents. You can technically use parented cameras too, but in that case constraints need to be used rather than CHOP exports. One way you could link CHOP data to your camera could be this. You can place down a retime SOP. The retime SOP can be used in ‘time’ mode. Then the CHOP containing the time curve can be exported to that parameter as well as connected to the retime chop. When the retime SOP is in linear interpolation mode, it should match CHOPs interpolation.

  • If at some point you need to offset your audio frame rage, you can either use a lookup CHOP, or a CHOP expression. If you know that the clip you are trying to align your audio to always starts at frame 0, you can use: $FSTART.

  • In chops, the waveform is defined only by sine wave. The difference between sine and cosine is 1/4 of a cycle or 90 degrees. You can offset the phase parameter of the sine wave by 0.25 to create the cosine equivalent.

  • If you'd like to generate stepped curves, try using the Count CHOP.

Some CHOP Nodes

Here are some CHOP nodes that are easy to learn, and are great to know right off the bat.

Acoustic

This node allows you to design audio filters and sound materials. This node has three main parameters it operates on. Transmission, Reflection, Absorption. The transmission controls the way the frequencies are transmitted. The reflection describes and calculates how frequencies are reflected off materials. Then finally, absorption calculates which frequencies are absorbed by the filter. In order for this node to work the filters it inputs and outputs cannot have negative values.

Beat

This node automatically generates a repeating pulse/beat that continues to keep time with the music after the taps stop. This of this node as Houdini's metronome. It can output five channels. A range from 0 to 1, a beat pulse, a beat count, and a constant channel. You can also change the tempo of the beat so it fits more in time with the music. 

Composite

This node blends the channel data of two CHOP nodes together.The first input is the base input, and the second is the one that will be layered on top. This secondary input gets blended into the first input with the Start, Peak, Release and End parameters on the node. If the Base Hold parameter is 0, the second input will completely replace the base input.

Cycle

This node works just as it's name describes. It cycles data. It can repeat the channel data repetitively, and loop data so it can create smooth transitions.

Gamepad

This CHOP listens and reads data from gamepads or joystick inputs. This node is great for helping develop games inside of Houdini. This chop outputs it's direction data from the four different directions coming from the input. right,left,up, and down. The Gamepad and Device Transform CHOP can be used together to drive objects. This can help create first person perspective and cameras in your game.

Image

This node converts rows and columns of pixels data from images to CHOP channels. It will also supply UV coordinates for the image so Houdini can understand where the data and values are coming from. This node will also produce four different channels; red, blue, green, and an alpha from the image. This node is great for projects that are using COP channel data.

General CHOP Tips

  • Every CHOP node has the option to use graph color. Each CHOP gets a default color that can be seen in the graph display.But you can change this color per node. There are 36 RGB color combinations you can chose from.

  • On some nodes there may be a parameter called Sample Rate Match. This allows you to handle multiple inputs from different CHOPs. As their sample rates might be different.

  • When you change the Units parameter on a node, it does not convert the existing parameters to the new units. You have to do this elsewhere.

  • Your CHOP track names need to be absolute paths. Otherwise they will not work.

  • Houdini creates a default CHOP network in the CHOP drop-down menu in your network view. But you can create them at any level of your network if you have a need to.

  • ​You can view the data generated by a CHOP network in the Motion FX View tab.

  • Geometry in CHOPs don't scale well. Simply because you are layering channels over geometry attributes, and other simulation data. Try avoiding this at all costs.

I hope this was a good introduction for the very beginners out there trying to use CHOPs. I tried to condense as much as I could while covering all the points that should be helpful to a beginner artist. Cheers, and I'll keep you all updated on a part two.

References

Channel nodes channel node: https://www.sidefx.com/docs/houdini/nodes/chop/index.html

LESSON 1 | INTRO TO CHOPS: https://www.sidefx.com/tutorials/lesson-1-intro-to-chops/

HoudiniChops: https://www.tokeru.com/cgwiki/index.php?title=HoudiniChops

CHOPs, VEX and the future of chops in Houdini: https://forums.odforce.net/topic/27815-chops-vex-and-the-future-of-chops-in-houdini/

WORKING WITH POINT-BASED VARIATION WITH HOUDINI CHOPS: https://lesterbanks.com/2018/07/point-based-variation-houdini-chops/

CHOPs Tricks: https://www.oreilly.com/library/view/houdini-on-the/9780240808628/Chapter7.html

Houdini CHOPs: Curves from animation: https://www.andynicholas.com/?p=485

CHOPs question......: https://www.reddit.com/r/Houdini/comments/fbg2bi/chops_question/

CHOP Smooth  : https://www.orbolt.com/asset/Tortoise::meg_chop_smooth

Generating Procedural Motion Using CHOPs in Houdini: https://3dtotal.com/news/general/generating-procedural-motion-using-chops-in-houdini

INTRO TO CHOPS: https://www.iamag.co/intro-to-chops/

motion trails in houdini, part 2: https://www.toadstorm.com/blog/?p=174

IV. Importing a Maya camera in Houdini - CHOPs: https://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Temelkov/mt_tools/help/camera_transfer_tools/importing_maya_camera_chops.html

Different Pitch for each trigerred audio samplehttps://www.sidefx.com/forum/topic/71416/

Retime camera with retime sop: https://www.sidefx.com/forum/topic/71882/

CHOPs and channels: https://www.sidefx.com/forum/topic/71567/

CHOPS frame offset: https://www.sidefx.com/forum/topic/70453/

Channel channel node: https://www.sidefx.com/docs/houdini/nodes/chop/channel.html

15 top Houdini tips: https://www.creativebloq.com/advice/15-top-houdini-tips

Houdini: https://www.tokeru.com/cgwiki/?title=Houdini