nodes

Jan 24, 2009 at 1:41am

nodes

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.

#41910
Jan 24, 2009 at 9:23am

#149571
Jan 24, 2009 at 5:25pm

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.

#149572
Jan 25, 2009 at 8:20pm

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.
>
>
>

#149573
Jan 26, 2009 at 4:05am

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

#149574
Jan 26, 2009 at 7:22am

#149575
Jan 26, 2009 at 7:54am

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

#149576
Jan 26, 2009 at 9:15am

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

#149577
Jan 26, 2009 at 10:51am

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

#149578
Jan 26, 2009 at 6:05pm

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

#149579
Jan 26, 2009 at 6:51pm

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.

#149580
Jan 28, 2009 at 8:49am

#149581
Jan 29, 2009 at 5:35am

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

#149582
Jan 29, 2009 at 6:44am

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.
>

#149583
Jan 29, 2009 at 7:49am

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

AB

#149584
Jan 29, 2009 at 5:28pm

@ 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. –
#149585
Jan 29, 2009 at 8:31pm

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

#149586
Jan 30, 2009 at 12:07am

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

Best,
Andrew B.

#149587
Jan 30, 2009 at 1:34am

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.

#149588
Jan 30, 2009 at 12:15pm

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

#149589
Jan 30, 2009 at 1:13pm

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

#149590
Jan 30, 2009 at 4:03pm

> 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.

#149591
May 5, 2010 at 5:23pm

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?

#149592
May 5, 2010 at 5:50pm

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?

#149593
Nov 20, 2010 at 12:59am

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

#149594
Nov 20, 2010 at 2:41am

Fantastic! Great object!

#149595
Feb 22, 2011 at 2:23pm

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

#149596
Mar 4, 2011 at 7:05pm

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. –
#149597
Mar 5, 2011 at 9:22pm

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?

#149598
Mar 6, 2011 at 3:17am

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.

#149599
Mar 6, 2011 at 12:50pm

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.

#149600
Mar 6, 2011 at 1:20pm

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. –
#149601
Mar 6, 2011 at 1:29pm

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?

#149602
Mar 6, 2011 at 3:11pm

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.

#149603
Mar 6, 2011 at 4:28pm

Ah, I see. Thanks.

#149604
Mar 6, 2011 at 9:23pm

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

#149605
Mar 6, 2011 at 10:45pm

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

#149606
Mar 6, 2011 at 10:56pm

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

#149607
Mar 6, 2011 at 11:54pm

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

#149608
May 4, 2011 at 7:19pm

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…

#149609
May 4, 2011 at 7:33pm

uhm not like this please ;P

[attachment=161305,2189]

Attachments:
  1. rectnode.png
#149610
May 5, 2011 at 5:11pm

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

– Pasted Max Patch, click to expand. –
#149611
May 7, 2011 at 11:07am

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

#149612
May 25, 2011 at 1:56pm

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.

#149613
Apr 3, 2012 at 3:42pm

Hello,

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

#149614
Oct 23, 2013 at 8:30am

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>

#268896

You must be logged in to reply to this topic.