Creating a jamming aid - Guru advice on creating interactive graphic

I have an idea for harmonic jamming where I want to light up some selected notes on a projected circle of fifths something like attached but in touch designer. I want to be able to select any of the notes with my mouse and highlight those segments. My prototoype just lights up one note at a time with mouse pointing… For example, say we want people to jam with major chords A, G, D and B minor so for a given jam I would light up all four of those segments so everyone could see what might work for a melody or harmony. I have tried copying SOPS and instancing segments of a circle and some replicators but am having trouble getting radial lines out from SOP segments for rotation at present so am stuck.

How should I best go about creating such an interactive circle of fifths? Instancing SOPS or POPS in Geo’s or using some sort of copy or replicator approach? Advice anyone? I have spent a couple hours on this but am kinda going in circles (har har)…

I ended up building this without SOP slicing/replicating geometry at all.

The circle itself is drawn in a GLSL TOP (basically the simplest “pizza slice” shader approach), and the interaction is handled by converting mouse clicks to a slice index (atan2 → 0–11) and toggling a 12-item selection state. That way you can highlight multiple notes at once (not just the one you’re hovering over).

In my setup everything lives inside a circle component:

  • The GLSL TOP renders the circle of fifths.

  • The buttons for presets are also inside the circle COMP.

  • To change which notes light up, you just edit the button labels (space-separated tokens like A G D Bm / A G D Hm depending on your naming). The preset logic reads the label text and updates the highlighted slices—so you don’t need to duplicate code per button.

This approach avoids the headache of radial SOP segmentation and rotation, stays lightweight, and is easy to expand (more buttons/presets, different highlight styles, etc.). Have Fun!

circlefifths.tox (120.1 KB)

1 Like

@boz Thanks so much Konsta! I was not expecting anyone to build the thing but your approach is very elegant and way beyond my current skill set! Brilliant work!

I will study your example and try to modify it to show the minor chords. I was wondering this morning if a POPS primitive approach might also work but have not tried that yet.

Meanwhile what a great place to start! Thanks again for your rapid help. Such a great community we have in TouchDesigner…. ;=)

Cheers!