MartinusMagneson's picture

Magneson (@MartinusMagneson)


MartinusMagneson's picture

Arrange layers tanks performance when window port is connected using UI layers


Vuo version: 

OS version: 

  • macOS 10.15

How severely does this bug affect you?: 

●●●○ — It prevents me from completing a specific task with Vuo.

Steps causing the bug to occur: 

  1. Open and run attached composition
  2. Observe somewhat sluggish but usable behavior (might be related to text usage or the Mac it's being run on)
  3. Open sub-composition
  4. Attach Window input port to Window port of arrange node
  5. Start main composition
  6. Observe slow/unusable behavior
  7. Looking at the event flow the arrange node fires events constantly

Have you found a workaround?: 

Don't attach window cable to arrange node

Other notes: 

I assume the arrange nodes aren't optimized for using them with UI layers (which they are super-useful for). Having an option to "Allow changes" for the Window port type could perhaps solve this?


Package icon UI Tutorial.zip4.19 KB
MartinusMagneson's picture
Magneson commented on jersmi's Discussion, “3D audio file display

Thanks for the feedback! I don't always write simple/clear enough so it's golden to get something like that to iron out the wrinkles. Vuo has a build in data to image node, but I'll see about examples for other uses. The tutorial should possibly be split into chapters as well to give more bite-sized approaches to it, the full thing can take some time to get through.

With 32-bit files, you need to take the byte count more into consideration as you have 4 bytes per sample. I didn't write much about automating this from the header data as it would get even longer (chaptering it out might be a way to include it). You can divide the byte-rate by the sample rate to get the bytes per sample, and use that output to set the Comb List pick/skip count.

Having more chunks means you'll also have to offset the start of the read to 45 + the bytes of the additional chunks. Ideally there would be a "Find in Data" node (or something like that) for scanning the file and provide the byte location of the "DATA" chunk-ID. Then you'd be able to use that to get to the starting point relatively easy. For now I think it will have to be a manual process though.

MartinusMagneson's picture
Magneson commented on jersmi's Discussion, “3D audio file display

jersmi See if the attached files makes any sense to you, and I'd appreciate it if you have any feedback on it :)

You shouldn't need the attached composition/module, but they can be handy as a reference

MartinusMagneson's picture
Magneson commented on Magneson's Discussion, “Including library fails

Ah! Thank you, now it works! Or Vuo side of it at least, now it's only a matter of understanding the rest 😅

MartinusMagneson's picture
Magneson commented on video piglet's Feature Request, “Simple Keystone Node

I'm having a hard time typing this without sounding like a pedantic dong(is this a rude word, or is it okay to say?), so please bear with me, it is not my intention to come off as that.

When you say keystone, do you mean actual keystoning or do you mean corner correction? Keystone is the very specific correctional feature of cheap projectors when you don't shoot the image straight on, but at a slight angle either vertically or horizontally. Corner correction is the option to take a corner of your image and place it where you want within the pixel-range of your projector. While you can "keystone"(ish) with corner correction, you can not corner correct with a keystone.

I also think you mean masking judging by your first post. Cropping can only be done from the edges, and will leave you with fewer pixels in the final image. It is essentially to physically remove rows or columns of pixels from an image. If you want to remove content diagonally, that is done with a mask.

While I absolutely agree that it is not a good experience to use the "Make Quad Layer" node to corner correct in itself - it is actually pretty nice when you have made a user interface for it. Then you can add the features you want, and have a good time mapping out your content.

Attached is a relatively simple composition using two instances of the "Make Quad Layer" to map out your content. One is used for preview and control along with handles to place your corners, the other goes to the actual output. This can of course be picked apart, modified with other options (cropping/opacity control/input selection...) and placed into a sub-composition to make for neater use and re-use. Note that this composition will reset the correction when the output window changes/moves, so do not use in production without modifying it to suit your usage. For production use, you should also implement a save system of some sort in case of restarting the composition or any unforeseen changes.

For masking, you can actually use the same approach. Just feed a quad with a black image to a layer position after the one you want to mask out, and adjust the corners of that one to suit your needs.