frustration with dial (still)

Dec 27, 2011 at 12:17pm

frustration with dial (still)

be it with max5 or max6 i still have the same frustration with the simple object “dial” – it is not working as expected (at least as I would expect a dial to work) or as it was working in max4 :

_make a dial. Just the standart object as it is created. One would hope it goes through all the values from 0 to 127. it does not, it does 0, 3, 6 , 9 etc….
_the “live.dial” is a little better, as it does this, but if I want my dial to go from 0 to 1000 (which i often need) than even the live.dial does it in increments (of 8, when the dial does it in increments of 27 – ok this might be different depending of the resolution of the screen, I don’t know)
_yes, i know it was often said on the forum, and the answers were
1/ make it bigger – yes, well, dial big enough to have a precision of 1 on a 0-1000 range has to be a 734×734 rectangle on my screen
2/ use shift-klik – ok, then I need to make it “only” 416×416 (still big) AND use two hands (which is not very good when playing on-stage)
_of course the live.dial has only 2 sizes…..

_The dial in max4 was great, no matter what size it had it was (and still is) delivering all the values. it’s one of the reasons why I still use max4.

___can’t you build a dial which works as expected? Yes, maybe there is some 3-rd party object (I have to look for it) but when sharing a patch, teaching etc, it would be good to have such a basic object working as expected !!! Come on it worked in max4, you can do it.
Consider it a request

many thanks


Dec 27, 2011 at 12:27pm

My assumption would be it really doesn’t make a lot of sense to send out values that can’t actually be accessed(due to limited screen resolution)
I think it is a performance thing.
However, i think you can easily recreate the interpolation that was used in max 4(since i think it was an interpolation and noting else).
Maybe do it with a line object, or a slide object with small transition values.
Create a clipping and use it when needed, here you are..Performace win and all needs satisfied. no?

Dec 27, 2011 at 12:47pm


not sure if i understood what you say (and sorry if I dod not get it) but I don’t know what you mean by “values that can’t be accessed” – I sure have an utility for values 1 2 and 3 ( and all in the 0-1000 range ), not as “passing values but as “real” ones. Interpolating from say 0 to 9 will, sure give me the passing 0 1 2 3 4 5 6 7 8 and 9 but with the possibility to stop on only 0 3 6 and 9, when I want to stop on either one (and this was the case in max4, and is the case in reaktor, on the same screen/same resolution – not to mention the super-precise resolution of Ohm-Force plugins!!!)
seems somewhat possible with jsui – I am currently modifing a java-script code, but don’t know anything about java – beside the problem of showing/sharing will still exist

So, no , not all needs satisfied ! Anyhow, thank you for the answer



Dec 27, 2011 at 12:52pm

Not sure if its actually documented but In Max 5 at least, holding the SHIFT key enables finer values to be dialled (as does having a “physically” larger dial)…

Dec 27, 2011 at 1:07pm


yes, as I wrote :

“use shift-klik – ok, then I need to make it “only” 416×416 (still big) AND use two hands (which is not very good when playing on-stage)”

so a precision of 1 in a range of 0-1000 means a VERY BIG dial, and also uses two hands (shifting and kliking)

___when I could accomplish this, in max 4 with one hand and a dial of 29×29………..



Dec 27, 2011 at 1:24pm

OK. I should have read your post more carefully…

Dec 27, 2011 at 1:33pm

ok, live;dial set to “float” does it

but you can not change its size (you can only change the size of the rectangle around it – i wonder what is the use…….)


Dec 27, 2011 at 1:33pm

ok, live;dial set to “float” does it

but you can not change its size (you can only change the size of the rectangle around it – i wonder what is the use…….)


Dec 27, 2011 at 4:24pm

In a way interaction with a dial is always frustrating, to my opinion, especially during live performance. However, I found a more intuitive use for a dial by incorporating multitouch gestures. I believe you’re on the mac platform? Anyway, this might be a workaround for the issue you pointed out. It doesn’t solve the default behavior of dial.

– Pasted Max Patch, click to expand. –
Dec 27, 2011 at 4:53pm

That’s very elegant, Johan – color me impressed.

Dec 27, 2011 at 9:23pm

Wow. That’s some quite fantastic patching.

Dec 28, 2011 at 12:14am

With JSUI you can easily get this in Max6. (and using the stock code!)

If you want even finer resolution edit this part of the code:

function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
var f,dy;

// calculate delta movements
dy = y – last_y;
if (shift) {
// fine tune if shift key is down
f = val – dy*0.001; // make this even smaller if you like…
} else {
f = val – dy*0.01;
msg_float(f); //set new value with clipping + refresh
// cache mouse position for tracking delta movements
last_x = x;
last_y = y;

– Pasted Max Patch, click to expand. –
Dec 28, 2011 at 6:25am

numberboxes rock.

Dec 28, 2011 at 1:57pm

Another alternative is using pictctrl, dials made this way don’t skip values so you can get precision control over large ranges. This is adapted from the help file:

– Pasted Max Patch, click to expand. –
Dec 28, 2011 at 5:12pm


many thanks for the nice answers!!!

the jvkr’s patch is just great (at last a useful use of the multitouch feature on mac!!), and the use pictctrl is exactly what I was looking for

___which brings the next question : of course the pictctrl needs some file to load the image of the knob. I know you may do it in photoshop but i don’t have photoshop (and don’t know how to use it) – but you can find a lot of nice knobs on the net, done with (window’s app) Knobman. But for some reason those do not open with pictctrl – does soemone know how to use them? or where to find knobs to use with pictctrl?

thank you again


Dec 29, 2011 at 5:03am

…or put an [lcd] in the background behind the dial (standard solution for shit like this).

Dec 29, 2011 at 1:05pm

Knobman images don’t worked because the frames are stitched vertically instead of horizontally.
You can always rotate them using something like Photoshop – Graphic Converter is a good ‘free’ alternative (free as in ‘if you can live with the shareware reminder’. Which we don’t of course, we pay for it, like we should ;-)
However, you then end up with a dial that’s rotated through 90, which may, or may not be an issue depending on the dial.
Btw, that Web Knobman is pretty damned nifty, and means you can make your own on a Mac now, so you could start with your pointer at 90 degrees to where you want it, and then when you rotate the image, it’s in the right place.
One question for any Knobman experts out there – where do you set the number of frames in the web version – or is that what it means by ‘not finished’ ?

PS. Johan’s patch looks intriguing, but I’m getting a ‘no such object’ for [getattr] – is this a standard object? I’m not seeing it on Maxobjects either…

Dec 29, 2011 at 3:54pm

@roger getattr is a new object of Max 6.

Dec 29, 2011 at 4:39pm

Thanks for the patch jvkr, great use of multitouch!

One interesting bug – when using tab to switch between the dials, if you then use the up/down arrow keys (rather than the trackpad) the input is ignored. This only happens if the cursor was not previously positioned over one of the two dials.

From what I can tell the call to ;max pudpate properly repositions the cursor but this move is not registered properly with hover.

Dec 29, 2011 at 4:44pm

Following up on this – the tab/pupdate mechanism also seems to introduce unexpected results when using a multitouch gesture. On my system (Max 6.02, OSX Lion) I can tab to a dial and change values via a swipe, but when I tab to the next dial the first few events change the previous dial, then switch over to the proper one. This is more apparent when swiping slowly.

Can anyone at Cycling comment on this?

Dec 29, 2011 at 7:33pm

What if you use the “pupdate” command and set the cursor in place several times, maybe a pixel apart each time if necessary, over some number of msec? Maybe it’ll “register” better that way to [hover]. Could solve the wrong-dial-swipe issue too.

I’m on 5 so [getattr] doesn’t work for me, and on XP so no swipe :-( but the patch is very clever, that’s for sure…

Dec 30, 2011 at 3:28pm

The tab-functionality was added quickly and without bug-fixing. It was something that was still missing in my own version and this thread was a good moment to give it a try. That the up/down arrows don’t work appears to be the result of hover not being aware of the pointer update until after actual mouse input has been generated. Of course, there is a solution for that.

– Pasted Max Patch, click to expand. –

To the developers: this examples shows that gathering attributes from multiple objects could be done easier if there was the option to connect using scripting names rather then an actual connection from the second outlet. Future feature?


You must be logged in to reply to this topic.