DJ.toe — Playing the Flock

ShihuaWang XMD

Pressure Project 3: VJ Battle

DJ.toe is a real-time video synthesizer built in TouchDesigner and performed using a Korg nanoKONTROL2. It develops my earlier bird project into an instrument: a flock circles a central red bird, but its speed, density, scale of movement, and visual intensity can now change through physical controls. The patch does not play music locally. Instead, I listen to the music in the room and make the visual decisions myself.

Process Reflection

My starting point was a flock that already knew how to fly. The challenge was making it something I could play. In the earlier version, audio analysis controlled movement automatically. For this project, I disconnected that dependency and gave the birds a continuous flight speed before introducing MIDI. This mattered because I wanted the flock to keep moving even when no audio was entering my computer.

I organized the controller around actions I could remember without reading the node network. The eight faders control flight speed, gathering and dispersal, movement irregularity, bird count, fading, grayscale color, camera distance, and camera orbit speed. I separated dispersal from bird size because spreading a flock across the screen creates a different feeling from enlarging its individual bodies. Separating these decisions made the instrument easier to understand.

Initially, I wanted to avoid buttons because the setup already felt complicated. Later, I realized that a few buttons could provide accents that faders could not. I added a temporary size pulse and developed a held color effect: pressing the button introduces rapidly changing colors and brightness variation, while releasing it returns to the original image. A knob adjusts the flashing frequency. I treated these as interruptions rather than the permanent appearance of the piece.

The black-and-white image remained important to me. It gives the flock a clear silhouette and makes changes in density easy to see. It also gives color somewhere to arrive from. If everything is constantly colorful and intense, an additional effect has less impact. I wanted room for quieter moments, empty space, and gradual changes before a sudden visual accent.

The technical process involved several corrections. At one point, MIDI values were changing correctly, but the birds were not flying because the rotation export needed to be reconnected. Another attempt produced distortion without the color effect I wanted. I rebuilt that section around an explicit color mapping instead. These moments taught me to check each stage separately: controller input, numerical range, animation, and final display.

During the live performance, I was much more nervous than I had expected. Once the music started, though, I focused on listening and working the controller. I hit each drum beat with the visual changes I intended, and the controls worked smoothly throughout. The result felt even better than I had hoped. What surprised me most was how different the project felt when I was performing it: the birds were no longer just an animation I had built, but something I could play. Getting those moments right made the time spent adjusting and troubleshooting the controls feel worthwhile.

The most interesting shift was from watching a system to making decisions within it. The controller gave me a way to shape tension through accumulation, speed, distance, and interruption. For a future version, I would add clearer physical labels, a few reliable scene presets, and smoother transitions between them. I would also spend more time rehearsing when to leave the image alone. Building more effects is tempting, but learning when a small movement is enough is part of learning to perform this instrument.

Tools and Credits

  • Software: TouchDesigner.
  • Controller: Korg nanoKONTROL2.
  • Bird assets: Model from my personal asset library, with rigging and flight poses prepared by me.

Groove Machine – Pressure Project 3

For my visual synth, I wanted to create two compositions that represented different vibes. My intention was to have the visuals begin slowly, transforming into a more intense visual scene as the song goes on. I was inspired by rave visuals, which have a very chaotic, colorful nature. 

The first patch is the simplest of the two, and is made up of a SOP feedback loop. First, I created a simple SOP composition using a copy node. I then ran this through a feedback loop that changed various transform parameters and some lighting adjustments. This allowed for quick feedback loop adjustment to create hypnotic, circular patterns. 

The second patch is a little more complex, and uses external images along with 3D shapes. The SOP composition is pretty similar to the first patch, but it utilizes 3D shapes, while also giving the ability for the user to switch between a circle and box shape. I wanted to make this patch more colorful, so I brought in some Photoshop designs I had done in the past and hooked them up to a switch, which cycles through the images depending on the speed of the LFO that controls the switch. These designs served as the background for the patch, but I also used them as textures for my SOP composition, which added more color and visual interest. 

After I finished my two main patches, my primary goal was focused on being able to switch between the two in an efficient manner. I was not aware that when adding a Geo, Light, and Camera, that every SOP in view gets rendered. This was not ideal when separating my two patches, so I hooked up my SOPs and final outputs to a switch, which allowed for MIDI control of both switches simultaneously. Further, there was some nice interplay between the two patches due to the feedback loops I used, which helped to blend together the final output. 

One thing that helped me with the live performance aspect was the use of LFOs rather than direct MIDI controls. During the in class demo, I realized that controlling every parameter through MIDI was not ideal as I was only able to turn a certain amount of knobs and sliders at a time. To make dynamic visuals that always had movement, I controlled most of my parameters with LFOs to ensure constant movement. For my MIDI, I mapped my controls to the speed of the LFOs rather than the parameters themselves, which allowed for easier, more efficient control. An example where this was most effective was through isolating parts of the song. Rather than continuously pulsing a parameter to emulate the bass or melody, I was able to beatmatch the parameter by changing the LFO, which let me focus on changing other parameters. 

Pressure Project 3: Groove Machine – Pressure Project 3

You can see my full patch and screenshots using the link