gal.tox gadget library

This is gal, a small, flexible library of gadgets that is much more adaptable than the basic components in the OP Create dialog. Go in the network and copy/paste any of these gadgets into your project networks and adjust their custom parameters.

gal.13.jpgThe gadgets are fully-self-contained. If you choose to put gal.tox in /as /gal, all the gadgets you create will be clones of the masters in /gal. If the .tox is not located at /gal, the gadgets will be fully independent, not needing any data or variables outside the gadget, so you can later delete the gal component.

There are only 8 “master” gadgets in gal.tox from which all the variants you see are customized with custom parameters: slider, binary, sliderxy, knob, radio, menu, string, label. Aside from that, tuikslider and tuiktoggle were made to resemble other gadgets in TouchDesigner UI.

Read the readMe DATs in the component for more info. It may be instructive to look inside the gadgets at their design … it uses custom parameters, a minimum of nodes, and internally builds export DAT tables that customize the look/feel of the gadgets.

One of TouchDesigner’s strengths is that you can design and shape your own UI kits based on your intended applications and personal aesthetics. A different, more comprehensive library of gadgets (widgets) from Derivative will be available in TouchDesigner 099.

NOTE: gal is now in the 088 and 099 palette.

Hey Greg,

Maybe thats only in build 58700? as in the current latest public release it’s still opening on monitor 0, my main monitor being monitor 1.

Also on monitor 0 it always shows at x=0 and y being wherever you clicked.

I had a further look into Gal UI elements, here are some quick thoughts.

For sliders, there should be an input for MIDI parameters, so the UI can display the changes from external value as well as control using mouse.

There’s no knobs?

in gal.11.tox, added a new knob type, named channels, numerous improvements.

Test the samples by clicking on on gal component panel, then go in and copy-paste gadgets from inside gal to your app.

gal now has a simple system to drive gadgets with MIDI, OSC and other sources.

Basically you move controller, click gadget, press alt-m. It assigns a CHOP channel to a gadget value (the Value parameter).

You need to have gal installed as /gal for this to work. Read readMe in gal/mapper. It enforces one-to-one (each channel goes to one gadget). It uses a sImple table that can be hand-edited or amended.

A final uniformity pass and an optional indicator when sliders are at non-default values.

gal.13.jpg

NOTE: gal is now in the 088 and 099 palette.

It is the current official build now.

I am able to get everything working with the midi mapping except the actual updating of the gadget value. I placed the ‘gal’ tox in the main directory and the mapping functionality with alt-m is working fine.

If I create another chopexec with valchange true and use the use the script from the ‘cmd’ column in ‘fromMap’ it will work. - op(‘/gal/knob’).par.Value1 = 0.0 + val * 1.0

It seems like ‘run(eval(cmd))’ isn’t evaluating/running the script correctly

Any ideas what I may be doing wrong?

Thanks,
~Matt

I’m having the same outcome as Matt above - The mapping works and I can see my gadget listed in the map table, but the mapped channel doesn’t actually update the gadget.

Cheers,
Corey.

I love these things, is there a chance they could be updated to work with 099’s container sizing options? I just tried to put a bunch of string fields into a container and make them fit their parent and it throws it off.

I like these things but I find the main Gal component hard to use.

I have to drag the whole thing just to find one item I need.

I actually end up dragging the singular component back into the pallet so that I have a more concise list of specific things I use.

Wouldn’t it make sense to have a “GAL” tab/section in the palette that you can select just the one you need?

i just upadted a version of raido that improves the peformance
the old one cause every button comp to cook eveytime the value change
so if you have a big list it will slow you down!

here’s my updated version
hope it will help :smiley:
gal_raidoUPADTED1.toe (91.1 KB)

You are right. All 25 buttons cook their Text TOP because each button has an expression that gets Value1 from their radio component, and every time Value1 changes (like every time you click a new button), the 25 expressions cook and the Text TOP cooks. That’s very inefficient.

So in your new version of radio, when its Value1 changes, you set unset/set only the 2 affected buttons’ value and border color using single-line python commands.

By the way, the new Version 25 gal.tox that is in the recent 099 Official and Experimantal palettes have a lightweight binaryC button used in the radio buttons and menus. But they still have the over-cooking artifact, which I’ll fix in the next Version 26 gal.tox.

(The version numbers are on the first pages of the gal and other components. You can hardly make out the version numbers because we’ve disable those parameters. But coming in the next experimental you will see that you can set a parameter to be “read-only” - a parameter that isn’t disabled, it’s used, but you don’t expect the user to modify it. So a “read-only” parameter is only editable with python. It can contain an expression or a constant. )

A note on earlier posts: "is there a chance they could be updated to work with 099’s container sizing options? " They do now in 099 Official 20000 series.

And, the MIDI mapping problem that matt1up reported (with a workaround) is fixed in latest Offical now.

A note on this - How should we gracefully upgrade apps to updated versions of GAL? Due to the /gal clone trick, when I try to load a chromaKey palette item into your latest timeBase, the chromaKey component completely fails due to an outdated version of gal gadgets with different parameter names. For now I’m just using Syhpon to send/return from a separate TouchDesigner instance… :laughing: :laughing: :laughing:

following

To update apps and components to the latest gal, you would generally delete /gal from the app, then drag-drop the latest gal from the palette as /gal. In the case of timeBase, this updates cleanly.

Then when you drop in chromaKey which uses a yet older version of gal (I’ll update that), all radio button COMPs error (as the new radios contain the lightweight binaryC buttons). You just need to go into all the radio components and on the Replicator COMP, press Recreate All Operators.