MartinusMagneson's picture
Shared by on 2020.07.03 13:33

Recompiled for Vuo 2.4.1, with support for M1 macs (hopefully)


Added Queue. Blatant copy of Enqueue, just deletes in the opposite order.


Updated and cleaned up version of "Magneson's List Tools" compiled for Vuo v2.0.3

Most nodes are now of the generic type kind so it requires less specialized nodes for each type. Sorting is still reals only due to me forgetting how i coded it, and not understanding what's going on with it anymore. I also think by the looks of it that I'd have to make separate 2d/3d/4d nodes for it which is cluttery and probably only for edge cases anyways - so you'll have to split the lists instead. Which you now can do with another node in this set!

Get X amount from list is also removed due to clutter, but should generally be avoided in the first place. Using cut/shift/combine list nodes in conjunction with Build/Process list will be a better way to manage most scenarios where that would have been practical.

Contains the following nodes:

Average list items Averages a subset of a list.

Change Items In List Changes the specified items in a list.

Combine Lists Kind of like the bastard child of the interleave lists and group nodes. Lets you combine lists with an arbitrary amount of items per list.

Cut Wrapped List Stupid name, but the alternatives were stupiderer. It loops a list from a starting item, wrapping around if it hits the end and cuts it at the amount of items you specify. The amount may be larger or smaller than the source list.

Morph Point List Morphs between two point lists. Duh.

Reorder List Reorders items in a list based on an integer list.

Scale list to center Scales items in a list based on their position relative to the center in a list. Maybe Falloff would have been a better name.

Scale Point List Scales a list based on a magnitude list with an offset. Also inverts the sign of the values if wanted. I think I made it to mirror loudness lists, but I don't remember. It's cool though.

Shift List Shifts the starting point of a list and wraps values before the starting point to the end of the list.

Sort With Index Sorts a list based on the values in it putting the smallest first. Also gives out an index list which is the location of where the values are in the original list. Can be used as a primitive "age" indicator for values in a list and to add/remove items based on this. Can also be used with the reorder list node.

Split XYZ list Splits a 3d point list into separate real lists.


Source is in the sidebar, and I've tried commenting what's going on to the best of my abilities. Suggestions and improvements welcome. Especially for the 'Sort with index' node as I think that is more of a trainwreck than anything else, but a proper sorting node would be nice to have.

Instructions

Put it in you user modules folder, (re)start Vuo, and search for MM.List in the sidebar

Comments

Heya, Martinus,

krezrock's picture
Submitted by

Heya, Martinus,

The node works on the Intel machine I've got access to. Vuo 2.3.2, OS 11.4.

This is the only error showing up in the console on the M1:

Vuo[1027]: getattrlist failed for /System/Library/Frameworks/OpenGL.framework/Resources//GLRendererFloat.bundle/GLRendererFloat: #2: No such file or directory _dispatch_bug_deprecated to debug

We've added (and renamed)

jstrecker's picture
Submitted by

We've added (and renamed) several of these nodes into Vuo 2.4.0:

  • Average List Item Groups
  • Interleave List Item Groups (for MM.ListTools.CombineLists)
  • Wrap List (for MM.ListTools.ShiftList)
  • Split XY List, Split XYZ List, Split XYZW List

These nodes should work on ARM/M1.

We also added a "Discard when Full" port to the built-in Enqueue node based on MM.ListTools.Queue.

Thanks, Magneson, for sharing these nodes!

Add comment

Log in or register to post comments