Forums > MaxMSP

nodes

January 24, 2009 | 1:41 am

Hello all,
I’ve just uploaded a new UI object created for Max 5 (Mac UB only, right now) called nodes:

http://www.cycling74.com/twiki/bin/view/Share/AndrewBenson

The purpose of this object is to enable the easy creation of 2D interpolation maps using a simple click-drag interface. As shown in the help file, it makes a great interface for pattrstorage "recallmulti" messages, or as a way to map joystick or XY controllers to multiple parameters.
Enjoy!

Andrew B.

PS. You can also find a couple of simple MSP externals on my share page for facilitating various signal-based timing operations.



jln
January 24, 2009 | 9:23 am


January 25, 2009 | 8:20 pm

nice one Andrew !
Thanks !

g

2009/1/24 nicolas danet

>
> thanks Andrew too ;
>
> i don’t know actually what i’ll do with your external, but i’ll surely do
> something :)
>
> is there a way to enlarge numbers (i like big font) ? if not, doesn’t
> matters…
>
> ciao.
>
>
>



DF
January 26, 2009 | 4:05 am

quote
"i don’t know actually what i’ll do with your external, but i’ll surely do something :)"

Ditto, it’s a great little thing, I’m sure I’ll be up all night working it into something I can use….
Any plans for expansion?

Thanks agan
DF


January 26, 2009 | 7:22 am


January 26, 2009 | 7:54 am

On Jan 23, 2009, at 5:41 PM, Andrew Benson wrote:

> The purpose of this object is to enable the easy creation of 2D
> interpolation maps using a simple click-drag interface. As shown in
> the help file, it makes a great interface for pattrstorage
> "recallmulti" messages, or as a way to map joystick or XY
> controllers to multiple parameters.
> Enjoy!

This is *sweet*. I’m having a go at integrating into some Logitech
Dual Action gamepad patches for sweeping through multiple effect spaces.

Thanks Andrew!

Vlad

Vlad Spears
Tanj! I’m already out of Known Space!

http://www.daevlmakr.com

http://www.2secondfuse.com


January 26, 2009 | 9:15 am

On 24 janv. 09, at 02:41, Andrew Benson wrote:

> PS. You can also find a couple of simple MSP externals on my share
> page for facilitating various signal-based timing operations.

These ab objects already saved my MaxMSP life a couple of time. Is
this a new version since you initially announced them very quietly on
this list?

p

_____________________________
Patrick Delges

Centre de Recherches et de Formation Musicales de Wallonie asbl

http://www.crfmw.be/max


January 26, 2009 | 10:51 am

On 24 Jan 2009, at 01:41, Andrew Benson wrote:

> I’ve just uploaded a new UI object created for Max 5 (Mac UB only,
> right now) called nodes:

That’s really sweet. I actually wrote something similar in JSUI some
years ago (complete with the translucent disks) but not quite as tidy.

Suggestion: a qualified name rather than just "nodes"? That’s a common
word and is going to cause namespace pollution sooner or later, I
confidently predict.

– N.

Nick Rothwell / Cassiel.com Limited
http://www.cassiel.com
http://www.myspace.com/cassieldotcom
http://www.last.fm/music/cassiel
http://www.reverbnation.com/cassiel
http://www.linkedin.com/in/cassiel
http://www.loadbang.net


January 26, 2009 | 6:05 pm

On Jan 26, 2009, at 2:51 AM, Nick Rothwell wrote:

> Suggestion: a qualified name rather than just "nodes"? That’s a
> common word and is going to cause namespace pollution sooner or
> later, I confidently predict.
>
> – N.

Actually, rather than qualifying the name… any chance [nodes] might
become part of the general Max 5 distribution? I think it would be a
great addition.

Vlad

Vlad Spears
Tanj! I’m already out of Known Space!

http://www.daevlmakr.com

http://www.2secondfuse.com


January 26, 2009 | 6:51 pm

Thanks for the interest. :) I’ve probably implemented this design in every imagineable way at this point (jit.matrix/expr,JSUI,OpenGL, LCD, etc.) and decided it was finally time to make a dedicated object in C. A primary design concern I had was to include all of the most important interface features without bogging down a real-time performance with a bunch of redraw calls. This is why I left out the "scrub mode" which, as Stefan demonstrated, is pretty easy to implement using existing Max objects. I’ve considered doing "candycane" nodes for a future version, but it involved enough extra problem-solving and decision-making to put it off until later.

Have fun.

Andrew B.


January 28, 2009 | 8:49 am


January 29, 2009 | 5:35 am

Hi Andrew,

Great externals, thanks so much!

I think I’ve found a simple bug with your [steps~] – sending ints into the right inlet doesn’t actually do anything. On my machine, the only way to change the # of steps is to edit the argument and reinstantiate. Can you reproduce?

best,
Zachary


January 29, 2009 | 6:44 am

It’s fantastic. I’m all for the 3-d version. I’m not clear on the
what the xplace & yplace messages do, but if it is possible to create
nodes by messages to the object, you could link two 2d objects to
kludge it….

M

On Jan 26, 2009, at 13:51, Andrew Benson wrote:

>
> Thanks for the interest. :) I’ve probably implemented this design
> in every imagineable way at this point (jit.matrix/expr,JSUI,OpenGL,
> LCD, etc.) and decided it was finally time to make a dedicated
> object in C. A primary design concern I had was to include all of
> the most important interface features without bogging down a real-
> time performance with a bunch of redraw calls. This is why I left
> out the "scrub mode" which, as Stefan demonstrated, is pretty easy
> to implement using existing Max objects. I’ve considered doing
> "candycane" nodes for a future version, but it involved enough extra
> problem-solving and decision-making to put it off until later.
>
> Have fun.
>
> Andrew B.
>


January 29, 2009 | 7:49 am

Zachary,
Thanks for the report. Attached is a fixed version. The share page should has also been updated.

AB


January 29, 2009 | 5:28 pm

@ M,
The xplace attribute is a list of the normalized x-coordinates for all of the nodes, and the yplace attribute is a list of normalized y-coordinates. There are 9 numbers because there are 9 nodes available (although you may have fewer active ones). You can pass xplace, yplace, and nsize lists to the object to reposition and resize nodes programmatically.

Andrew B.

– Pasted Max Patch, click to expand. –

January 29, 2009 | 8:31 pm

Hey Andrew, I would to give this a try. Do you have a windows
version?


January 30, 2009 | 12:07 am

Hi Anthony,
Not yet. I hope to someday soon, but haven’t got around to it.

Best,
Andrew B.


January 30, 2009 | 1:34 am

Windows software what I do…
I would be happy to build a windows version if you like.
Please let me know if I can help.


January 30, 2009 | 12:15 pm

nice object! it would be great if it had an option to sync with pattrstorage (like preset does), so that you could automatically have a node for each pattrstorage preset

oli


January 30, 2009 | 1:13 pm

andrew b wrote:
"PS. You can also find a couple of simple MSP externals on my share page for facilitating various signal-based timing operations."

those objects should be included in the standard distribution imho

m


January 30, 2009 | 4:03 pm

> andrew b wrote:
> "PS. You can also find a couple of simple MSP externals on my share page for
> facilitating various signal-based timing operations."
>
> those objects should be included in the standard distribution imho
>
Seconded, as well as nodes.
J-F.


May 5, 2010 | 5:23 pm

Ok, so I’m VERY new to Max, but I think I can utilize this for a project I’m working on.

So (again, very new to this) how do I actually get Nodes to play back sound files of my selection?


May 5, 2010 | 5:50 pm

Let me be a bit more specific…

I want to assign a wav file (or could be any type of audio file for my purposes) to each node so that file 1 corresponds with node 1 and file 2 corresponds with node 2, etc.

And upon syncing the nodes/wav files, do I need to connect something to an ezdac to get playback?


November 20, 2010 | 12:59 am

As of MaxMSP 5.1.6, ‘nodes’ is part of the official Max distribution.


November 20, 2010 | 2:41 am

Fantastic! Great object!


February 22, 2011 | 2:23 pm

‘Sinisterniik’ did you ever find out how to assign wav files to each node?


March 4, 2011 | 7:05 pm

Great object! But is it just me or is [preset] not affecting the slider position, only the nodes (position, and size, I guess)?

By the way, I just made this for soundfile playback:

node 1 = same sample again
node 2 = the lower of the other two
node 3 = the higher of the other two

I guess it would be better with 4 nodes :-)

– Pasted Max Patch, click to expand. –

March 5, 2011 | 9:22 pm

Ok, it looks like autopattr can’t store slider values either. This is rather annoying, I made a workaround with the getxy message (how you write message boxes on the forum? [object] (message)?) that set the x and y in two flonums but it’s kind of ugly. Is there a particular reason why the slider value isn’t stored?
I just started using pattr, don’t know my way around so I could be wrong but the [nodes] objects only show this in pattrstorage:
0. 0. 0.875 1
1. 0. 0.875 1
0. 1. 0.875 1
1. 1. 0.875 1
x, y, size, on/off-state i guess

Am I the only one who wants to store/interpolate the slider position?


March 6, 2011 | 3:17 am

This is a design choice, the nodes x/y/size/state are stored with pattr/preset, not the slider position. If you have multiple nodes it would be really inefficient to recall everything every time that the slider changes. Your workaround is totally fine.


March 6, 2011 | 12:50 pm

Ok, but it has to recall evertyhing when I move the slider manually anyway, doesn’t it? Sounds like I’m missing something.
Yes, the workaround works ok but it’s not very slick.


March 6, 2011 | 1:20 pm

I would say "au contraire". It allows you to have more flexibility.

For instance with the version bellow, you can interpolate in the cartesian domain:

– Pasted Max Patch, click to expand. –

and with the version bellow the interpolation is done with the polar coordinates.

– Pasted Max Patch, click to expand. –

March 6, 2011 | 1:29 pm

Nice. And your workaround looks smoother than mine, I don’t really know my way around pattr yet so I used actual flonum-boxes and lots of extra stuff. I still think the option would be nice though :-)
Still curious, in what way does your examples differ (efficiency-wise) from storing the slider value(s) directly?


March 6, 2011 | 3:11 pm

If you connect a pattr object to nodes, you’ll store the x/y/size/state of every nodes, which can make a "big list", if you store the slider position in addition to that and only want to interpolate the slider position you wouldn’t have been able to do that if everything where stored in pattr.


March 6, 2011 | 4:28 pm

Ah, I see. Thanks.


March 6, 2011 | 9:23 pm

maybe i am just stupid, but it does not load in the latest free runtime (518 or what it is)


March 6, 2011 | 10:45 pm

Make sure you only have one nodes object in the search path, the one included with the distribution is in C74/max-externals.


March 6, 2011 | 10:56 pm

yeah thats where i took it from, and put it into externals. will try again tomorrow.


March 6, 2011 | 11:54 pm

hum, why do you need to put into externals? it’s already in the search path, since it’s included in the Max distribution.


May 4, 2011 | 7:19 pm

hey there… Is it possible to create a rectangular node ? would be really awesome if it was possible! maybe if a node was reprogrammed… then circle and rectangular nodes could map what ever you wanted to…


May 4, 2011 | 7:33 pm

uhm not like this please ;P

[attachment=161305,2189]

Attachments:
  1. rectnode.png

May 5, 2011 | 5:11 pm

Here is an idea, using jitter, that you could use to make a rectangular node-like interface.

– Pasted Max Patch, click to expand. –


TSt
May 7, 2011 | 11:07 am

is there eventually also a xp version of the nodes external available?

the mac version of nodes is not accessible at the moment on the share site


May 25, 2011 | 1:56 pm

Andrew’s original nodes object has been reworked a bit an is now included in the Max distribution. Make sure you have the latest version.


April 3, 2012 | 3:42 pm

Hello,

Is there really no way to have more than 64 nodes in a nodes object ?


October 23, 2013 | 8:30 am

Hi Andrew,

Great object. Just started using it. Is there a way to have more than 1 "Knob" in a single [nodes] object?

You can see my post here to understand how I’m using it. Patch code below.

Basically I’m using a circular layout in [nodes] to output volume levels for 16 channels. Nodes is great because it easily allows for "crossfades" and the 2D capability allows for the circular paradigm so that channel 16 can crossfade back to channel 1. (Works perfectly although it seems a bit heavy on the processor)

But I also want to add the ability for more than 1 voice (ie. more than one channel open [full volume] at a time. Ideally up to 8) Basically there would be a Number of Voices parameter (1-8) and a Distance parameter (radial distance between multiple knobs in [nodes])

So with 2 Voices and Distance at 0%, the two knobs would be adjacent, and with Distance at 100%, the 2 knobs would be 180* apart. Or with 8 voices and Distance at 0%, the 8 knobs would be adjacent, and at 100%, every other node would be full (or every other channel volume would be open).

I think I could make a work around with multiple [node] objects, but I can’t imagine doing this as the single [node] by itself is already bogging down my patch.

RE: the example above – perhaps theres a better way to adjust the size and location of all nodes simultaneously, than what I’m doing. Or perhaps there is an entirely different way to get at this functionality. I don’t necessarily need the visual interface, just the 2D circular paradigm.

Thanks in advance for any help.

<code>

– Pasted Max Patch, click to expand. –

</code>


Viewing 45 posts - 1 through 45 (of 45 total)