Accordion Panels as a GUI feature

bronzebygold's icon

Is there a way to create expandable "accordion" elements in a Max/MSP GUI?

Christopher Dobrian's icon

I'm not aware of any object or feature for doing that, exactly. I think you could do a DIY version with bpatcher and thispatcher objects.

Are you aware of the "Show on Parent Patcher Tab" option in the Patcher Inspector? Using that feature you can have each supbpatch (patcher object or abstraction) appear as a separate tab (selectable screen) within a main patcher window. That might be an acceptable substitute for you.

tabs.maxpat
Max Patch
do.while's icon

ive tried it with bpatcher but not luck . thispatcher does not respond on messages for me (targeted into patcher/bpatcher):/ (never bothered before so maybe im doing something wrong)

fen's icon

Hi mate. A fellow user (“DO...WHILE”) mentioned the JSUI object in a related post – I haven't used it myself, but perhaps that could be of use?

His example video appears to show an accordion type menu:

do.while's icon

yes thanks FEN .
Actually with that hardcore JSUI approach its all possible , but i dont think people want to make such effort with building things from ground up this way . would be cool for them to achieve similar effects with bpatcher and menus .

fen's icon

Here's another approach to tabbed interfaces using a single subpatch (with animation):

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

fen's icon

Is this approaching what you want? I'm sure there are more elegant ways of achieving it, but it's a start:

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

Christopher Dobrian's icon

I had in mind something like this.

accordeon.zip
zip
fen's icon

You'd need to ensure that clicking a new item closes the one already open. Perhaps you could also target the alpha channels of the gui elements inside the bpatchers so that they fade in and out (or better still, a panel placed over them that matches the background colour). Hope this helps.

fen's icon

Sorry Christopher – I posted my previous comment before noticing yours. That's a very focused solution.

Roman Thilenius's icon

if not bpatcher, then maybe just a bunch of windows.

bronzebygold's icon

Thanks everyone. Chris's example is basically exactly what I was thinking of. I haven't yet figured out how that example works, but from a cursory look it seems quite amazing to me! As it happens though, I want to use these accordions within the kind of scrolling bpatcher that FEN first suggested above. (It's a very large and complex GUI.) I guess this is technically possible, but it would require bpatchers nested four layers deep! At that point I think working out all the local send and receives might be more work than it's worth... I wish there were more externals available to do this kind of thing!

Thanks again. - Daniel