frustration with dial (still)

Kasper's icon

hi
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 734x734 rectangle on my screen
2/ use shift-klik - ok, then I need to make it "only" 416x416 (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

kasper

woyteg's icon

Hello,
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?

Kasper's icon

hi

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

best

kasper

spectro's icon

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

Kasper's icon

hi

yes, as I wrote :

"use shift-klik - ok, then I need to make it "only" 416x416 (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 29x29...........

thanks

kasper

spectro's icon

OK. I should have read your post more carefully...

Kasper's icon

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

kasper

jvkr's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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.

Gregory Taylor's icon

That's very elegant, Johan - color me impressed.

Wetterberg's icon

Wow. That's some quite fantastic patching.

Peter McCulloch's icon

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;

Max Patch
Copy patch and select New From Clipboard in Max.

    // 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;
}

Roman Thilenius's icon

numberboxes rock.

Mark Durham's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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:

Kasper's icon

hi

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

kasper

Roman Thilenius's icon

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

roger.carruthers's icon

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' ?
Cheers
Roger

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

Emmanuel Jourdan's icon

@roger getattr is a new object of Max 6.

Jesse's icon

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.

Jesse's icon

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?

seejayjames's icon

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

jvkr's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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.

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?

hot swank's icon

[pictctrl] > Inspector > Dial > Dial Pixels Per Value Change (-1) This will invert the output but also the Vertical / Horizontale Tracking so you will need to invert your dial faces in Photoshop as well. i.e. the left-most dial face is the 127 image and the right-most dial face the 0 image. Connect the [pictctrl] output to [!- 127] and you're done! The output is now as fluid as [live.dial] and the same when pressing SHIFT in [dial] but nothing beats pressing COMMAND in [live.dial].