Which tools to use for a nice User Interface?

M.J.W.'s icon

I am still fairly new to Max, but I know the basics due to the tutorials/books and some practicing. I am already working on my first "real" patch and I want to complement it with a nice user interface.

How should I approach this? Which tools are the best to be used? All of your thoughts on this subject are appreciated because I do not know how to proceed.

My thoughts at the moment:
-There is a tutorial on user interfaces with Javascript. So, should I go that route? I already know Java so it is maybe not that difficult to learn.
-Or what about Jitter? That is all about graphical things or is it not suited for user interfaces?
-Or can I make something nice in Max itself without Javascript or Jitter? If so, do you have any examples of such patches?

Nikolas K's icon

Hi M.J.W.

If you are going for that "vectory" look, you can achieve it with Javascript - JSUI for fully custom controllers, and JSPainter to alter the look of existing UI objects.
The difference in their approach is probably the "attribute" acquisition. For example in JSUI you have access to every variable, the mouse position, the mouse in, mouse out etc...
In JS painter, you can "only" get the max object's attributes, which is a bit limiting (only o bit though).
You could do a neat interface with just max objects, but it would probably require overlaying a number of them, but I don't like the idea since you can achieve better results by JavaScript and more max objects means more connections... the real spaghetti code!

For a more realistic look, there is a nice tool, called jKnobMan that does knob filmstrips. You have to draw the graphics (Well, it provides some shapes), but it does the "animation" for the number of steps you want, adds effects (like drop shadow) and outputs a filmstrip that then can be used with the [pictctrl] objects, that is for that purpose! Also the [fpic] lets you load images, for more static graphics. You just have to invest the time to the design!

About Jitter, I haven't seen interfaces done with it, and I suppose it is not suited for it.

-N

M.J.W.'s icon

Thanks Nikolas! I am already considering to rewrite parts of my patch in Javascript due to the same issue you are referring to, "spaghetti" code! (after programming in Java for a couple of years I can now finally see what real spaghetti code is in Max with all these connections everywhere... :-) )

So if I interpret your post correctly than Javascript seems the way to go. I will have a look into that further. The only disadvantage I see with Javascript is that you maybe have to code a lot in order to have a couple of objects.

Do you maybe have an example of a nice UI's done in Javascript?