Top to CHOP - 49 times

Any pointers for the best way to approach capturing a 7x7 grid from a TOP to CHOP application? I’m sampling 7 horizontal and 7 vertical areas of an image to send out as lighting data.

I’m not sure where to crop the TOP…
49 TOPs to 49 CHOPs
1 TOP to 49 CHOPs
1 TOP to 1 DATtoCHOP?

I’m probably over-thinking this but that is nothing new.

Thanks!

Oh, I’ll be sending out DMX over Art-Net if that helps simplify the equation…

Thanks again.

It should be 1 TOP → 1 TOP To CHOP. Are you wondering how to reorganize the channels afterwards? The Fan, Shuffle or Join CHOPs are likely what you are looking for.

Like Malcolm said, 1 TOP → 1 TOP to CHOP. Set the Crop settings in TOP to CHOP to Crop Rows and Columns, then set your UV units to Pixels, then crop away.

Because the ToptoChop is processing heavy I would add a resolution top to make it a 7x7 before converting

You guys have given me some good ideas for an approach but I’m still not 100% clear on which route to go here. After looking at this closer I don’t think a grid is what I’m after. Maybe you would have a better idea of how to respond if I was not so vague with my question…

Have a look at the image below, each of the blue areas represent 1 single (3 channel RGB) lighting fixture. I have a video that lays over the top of this image and I’d like to sample the blue area of the video to get an average RGB value to send to that lighting fixture.

Here’s how the DMX channels will be managed:
Fixture # : Channel #s
1 : 1,2,3
2 : 4,5,6
3 : 7,8,9
Etc.

Does that make sense? I was thinking this might be accomplished with a DAT but then again, I’m not sure of that either.
Thanks again for your input.

After a couple of days working with a lighting fixture and trying to wrap my head around how DMX and Art-Net work the whole equation, as usual, has been greatly simplified.

Someone check my work please:
-A single lighting fixture is looking for a fixed number of channels from Art-Net
-The number of channels depend on the mode used by the fixture, i.e., RGB, RGBA, etc.
-An RGB mode lighting fixture is looking for 3 channels, RGB, that can be converted from a single pixel
Sound right?

With that understanding my task has changed which will ultimately make this whole process much lighter on the CPU but still not clear on the best approach. Perhaps you have already provided the obvious answer in the responses above.

Here’s what I’m thinking:
-Sample or crop a Movie In TOP to each light’s location within the given pixel space
-Pass Movie In TOP’s sample or crop to Analyze TOP to average the color and brightness per sample area
-Analyze top to Resolution TOP to sample down to 1 pixel
-Send 1 pixel to a group of 40 pixels into 1 line of a Movie In Top
-Output 1 line of 40 pixels to TOP To CHOP connected to a DMX Out CHOP to generate 120 channels of DMX.

Couple of questions for you:
Do you see a more efficient approach?
How do I line up 40 pixels back into 1 TOP image?
Would it be better output 40 pixels to 40 TOP to CHOPs then use a Fan In to regroup the channels?

A GUI would be awesome but I’m not there yet. Am I thinking in the right direction here?

Thanks!

Hey I repurposed an LED control software that’s in development to suit (hopefully) some of your needs. See attachment.

How to use:
1 - Enter in the number of channels (ie: 49) in the box provided in column 1 (Preparation)
2 - Drag and drop the boxes generated in column 2 over the areas you want to extract pixel information (Calibration)

annd voila, each box averages the pixels within and generates it in a 1x1 pixel node located in project1/container1/slider3d/slider_2D/cropping

Notes:
This is mostly GUI functionality, nodes/codes still have to be implemented to send information over DMX/artnet. But this shouldn’t be difficult (see tips below)

Tips:

  • Python code is located in its respected GUI component
  • Most of the code is located in project1/container1/slider3d/slider_2D/ Check it out!
  • This file generates 49 tops. You can try attaching these to 49 top to chops and multiplying that number by 255 for RGB channels. Or you can add these tops together in to one top with a one pixel translation for a nicer preview. Then convert that in to a table dat of rgb values of 7 columns and 21 rows (rgb). Do this in the project1/container1/slider3d/slider_2D/cropOn textDat. (Using variables is better though!)
  • Alternatively you’re best bet (and fastest performance) is to pull the pixel color of Top[1-49] and send this directly over DMX/artnet. You can pull the pixel color data in to a table dat first for a nice visual if youd like. Then send that table over DMX/artnet.

Bugs:

  • When changing the amount of channels, the boxes/grid sops/knobs all reset to the same location and you have to mannually drag the knobs to view all the boxes individually.
  • Preview Nation (column 3) only displays 1st cropped top. (but backend contains all of them!)

Hope this file helps you. I may be out this weekend but feel free to leave questions and comments.

Best of luck!
pixPush.225.toe (25.6 KB)

AWESOME. This is exactly what I was thinking as far as a GUI goes, thank you for sharing!

I’ll test it out to see how she operates and I’ll report back with feedback.
Again, thank you!

Brain.

Hey Emintzer,
Unfortunately, I have very little feedback for you - I’m afraid this is still over my head. All I’ve been able to get out of this is 3 channels of averaged data but I’m positive it is something that I’m not doing right.

I’ll give your tool another shot after I figure this out with baby steps.
Please have a look at the attached .toe file.
DMXChannelWorkflow.toe (4.17 KB)

The attached file has 4 samples from 4 Constant TOPs.
These 4 pixels need to go to 4 lighting fixtures.
Each fixture gets 3 channels of data, RGB for a total of 12 channels.
I’m only able to generate a maximum of 6 channels of data from these 4 pixels.
I need 12 channels to feed 4 fixtures set to RGB mode.

Malcolm,
I’m sure this has to do with something you mentioned earlier in the post but I couldn’t work this out with a Fan or Join CHOP.

Thanks for looking…

I looked at this file on a different computer and was mystified as to why I could only see 2 of the 4 pixels I was trying to demonstrate.

Figured it out, it was the Global Res Multiplier that was throwing me off. Make sure your turn the Global Res Multiplier OFF on the Composite TOP.

Global Multiplier On.PNG

Global Multiplier Off.PNG

Finding this all very interesting. I’m getting back into Touch finally and will be doing something very similar but sending RBG to a LED wall (just over a total of 2k pixels). I might start a new thread depending on how related it is to this. The only thing I’ve done so far is turn on all the pixels using a Text DAT with Python code. Been a long time since I coded but I have nice creative people helping me. I will share soon. Keep up the great work guys! Color grabbing and sending to lights is important. My final set up will include a blend of LEDs and projections.

I haven’t looked at these files yet but I’ve been messing around with trying to get color information from a TOP to a DAT Table. (objective is to send video to LED panels).

From the wiki, this is what I gathered:
I should use a TOP to CHOP, then a CHOP to DAT.

Right now I’m stuck trying to get every pixel color into the CHOP.
It’s only giving me one row and I’d like all rows and columns of information.
I’d post my file but it’s not worth looking at yet. Just some direction first is what I need.

The TOP to CHOP has an option input that supplies UV coordinates. Not sure if I need that yet but might come in handy later when I’d like certain UV coordinates to be my position to grad color information off of a TOP.

In your [TOP To] Chop, select [full image] in the Crop paramater page.

This seems very taxing on your CPU. Evidently you’ll have significant improvements with a phython script that loops through the rows and columns pulling out the RGB channels

Ah, I missed that setting and it did give me all of the color information for that row.

The reason I missed it was I knew that it would only give me row information and I actually need all the columns too.

I wired in a grid with UV coordinates to the input of the Top_to_CHOP.
This grayed out the [full image] selection under the Crop Tab.
I think it’s over-riding the Crop with the SOP input.
I thought by inputting UV’s would help me get all the data but it’s not working, even if I input a lot of channels, the CHOP_to DAT only see’s RGBA of one channel.

Anyway, I suppose I could create two Top_to_CHOP’s, one for the rows, the other for the columns. Put them into seperate DATs, then add them together, THEN output the data to the LED panels.

Emintzer, I think you might be right about doing this all using Python scripts inside a DAT. I can use a table to help me visualize the rgba data but it really only needs to go straight to the script that sends it out to the LED panels as data.

Thanks for your help. I really want to get this working.

Hey guys & gals,
Markus helped me come up with the attached file based on this thread. Let me rephrase - I told Markus what I was looking for and this is what he came up with. I had to jump back over to MadMapper for a project because of a tight deadline and lack of familiarity with TD but this tool could be refined and turned into an invaluable tool for the TD community.

The biggest roadblock I hit at the last second with this particular project was with the Robe Robin 800 lighting fixtures. They were set to an RGBW profile and this tool only extracts RGB at the moment, that function could be added if you have the need and the skillset.

Regardless, have a look and see if this will help you along the way…

Thanks Markus!!
Brain.
pixelDMXMapper.toe (13 KB)