Can anyone suggest a way to provide a multi-page user interface? Ideally, there would be 2-4 tabs that could be clicked across the top of the screen, and each one would display a different page of pd objects - some of which change dynamically (e.g., labels and colors of canvas or slider, vu meters, etc.)
-
Multi-page user interface
-
I'm sure some pd-gui guru will be able to give you the exact answer to that question, but I believe to know that pd is not really made for this kind of gui trickery, so you will find doing yourself a lot of cumbersome interface patching.
A couple of things i've tried are: moving canvasses around (I don't know if you can move abstractions, you probably can) and re-using tables coupled with a canvas background-color change (so you can use 1 table as a stepsequencer, or modulation area for pitch, filter, note-value,...). This last thing involves using 1 display table on a canvas and n value-storage tables (used by the actual patch); depending on the selected function (stepsequencer, note-value,...) you recolor the canvas, copy the visible values to/from value-storage tables.
To simulate tabs you can always use the "canvas put over a slider" trick.
Sure, you can do nice gui's with pd (look at toxonic's stuff for instance), but if you want as advanced as a vst plugin, I wish you good luck...
D.
|] [] |.| ][|-| -- http://soundcloud.com/domxh
-
Thank you domien for the quick reply. I have been working in pd for a while, and I realize that pd is not made for gui "trickery."
I already have an app with a ridiculously full interface page, and I need to split it to two "pages." I have been thinking about hiding + showing things somehow, but I like your idea of simply moving things around. My app makes extensive use of abstractions, so I will see if I can figure out how to move them around.
Thanks again domien!
If anyone else has suggestions, I would really welcome them.
-
Something I also do sometimes when there's too much to fit in a window (or just not to have too many controls visible for clarity) is putting things in a subpatch just giving it a clear name. By just clicking on the subpatch things will show up and can be closed when not needed anymore (without closing the real patch of course). But what I've noticed is that pd sometimes freezes for a couple of milliseconds when it suddenly has to redraw a lot of things (well, it's really tcl/tk taking the load but pd suffers as well).
|] [] |.| ][|-| -- http://soundcloud.com/domxh