Hide Max

HSel's icon

Hi all,
I am currently developing an application where everything in my Max patch is controlled via an interface made in a different programming language (OSC communication between the two).
The only thing the users need to see is therefore the interface controlling Max, and not the patch itself.
I know I can hide all objects in Max or place the patcher window offscreen to hide the patch, but I was wondering if there was a more elegant way of doing this?
I want everything that has to do with Max to be hidden away as it only confuses the user when he opens the app and two apps opens.
Is there for instance a way to make a Max patch run as a background service? Or minimized to the system tray (Windows spesific) and otherwise hidden in OSX?

Thanx in advance for any suggestions!

Rob Ramirez's icon

this is actually somewhat relevant to the discussion in the 'carrers in max' topic, where the desire to have max be the sound engine, but hide it completely from the user was discussed.

i'm also interested to hear some possibilities for this.
max as a background service would be nice (i have no idea how one would do that).

my only thought (on os x) would be to create a separate standalone application which bundled both the max sound patch and the rest of the program. double clicking this would launch the patch in max-runtime. then have max launch the other application. you could change the icon to whatever you wanted, hide the splash screen and the status window, and move the patch window offscreen (as you suggested).

you might still have to have two running applications, but at least you could customize the icons for both of them.

let us know what you come up with.

HSel's icon

Thanx for the advice.
I have already done a similar thing to what you said here, allthough it is my main application that launches the Max patch, not the other way around. I have also hidden the contents of the Max patch, but there's still the menubar, and seeing the application running.
If there's an application running with no corresponding GUI , Im sure I would quite the app if I didn't know what it was. And I suspect most people would.
I have changed splashscreen and appIcon, so at least it kinda looks like a part of my software.

One idea I had on os x was to launch the patch from AppleScript and send a Hide message to it afterwards (similar to a Finder 'Hide'). This would would to some degree, though it would still leave an Icon in the dock and you could apple+tab to it ++.

I will investigate some more to see what can be done. And if anyone has any thoughts on the subject, please share.

notyouraveragejoe's icon

I'm not exactly a mac expert, but I think due to the way the operating
system works, there's no way of hiding an application from the dock. You
could maybe look into getting it to run as a background process or daemon
but I don't know how feasible/possible that is with a max patch. I think
it's much harder than that, because essentially when you make a standalone,
it's not really a standalone, you're creating a file that runs in the maxMSP
runtime (as I'm sure you see when you have that application open that you
don't want), so I imagine you'd have to find some way of bypassing that
which stretches way beyond my knowledge. I know I've probably posed more
questions than I've answered, but I hope it helps all the same...

On 09/11/2007, Hans wrote:
>
>
> Thanx for the advice.
> I have already done a similar thing to what you said here, allthough it is
> my main application that launches the Max patch, not the other way around. I
> have also hidden the contents of the Max patch, but there's still the
> menubar, and seeing the application running.
> If there's an application running with no corresponding GUI , Im sure I
> would quite the app if I didn't know what it was. And I suspect most people
> would.
> I have changed splashscreen and appIcon, so at least it kinda looks like a
> part of my software.
>
> One idea I had on os x was to launch the patch from AppleScript and send a
> Hide message to it afterwards (similar to a Finder 'Hide'). This would would
> to some degree, though it would still leave an Icon in the dock and you
> could apple+tab to it ++.
>
> I will investigate some more to see what can be done. And if anyone has
> any thoughts on the subject, please share.
>
>

Stefan Tiedje's icon

Robert Ramirez schrieb:
> i'm also interested to hear some possibilities for this. max as a
> background service would be nice (i have no idea how one would do
> that).

One of the biggest advantages of Max over Pd is its huge number of UI
objects. For the mentioned purpose though, Pd is a valid option. It
shouldn' be too hard to port the functional part of a Max patch to Pd...
As mentioned in the other thread, there was at least one game developing
team using Max as prototyping and then had a customized Pd engine do the
actual game sound.
I know that Pd happily works without UI. (No TCL/TK hassles...)
And you can addapt it for almost any Platform as its open source...
To start an independent service in the background should be no big deal
for any operating system...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

tailortrik0's icon

Well as a mac user, not an expert.
hiding a program from the dock is simple, infact it is the second option next to quit...
I made a max app with a console subpatcher,(you have the option to show what appears) this poped up and not the patch, I added a secret key command that would open the guts.

easy

Quote: notyouraveragejoe wrote on Fri, 09 November 2007 01:48
----------------------------------------------------
> I'm not exactly a mac expert, but I think due to the way the operating
> system works, there's no way of hiding an application from the dock. You
> could maybe look into getting it to run as a background process or daemon
> but I don't know how feasible/possible that is with a max patch. I think
> it's much harder than that, because essentially when you make a standalone,
> it's not really a standalone, you're creating a file that runs in the maxMSP
> runtime (as I'm sure you see when you have that application open that you
> don't want), so I imagine you'd have to find some way of bypassing that
> which stretches way beyond my knowledge. I know I've probably posed more
> questions than I've answered, but I hope it helps all the same...
>
> On 09/11/2007, Hans wrote:
> >
> >
> > Thanx for the advice.
> > I have already done a similar thing to what you said here, allthough it is
> > my main application that launches the Max patch, not the other way around. I
> > have also hidden the contents of the Max patch, but there's still the
> > menubar, and seeing the application running.
> > If there's an application running with no corresponding GUI , Im sure I
> > would quite the app if I didn't know what it was. And I suspect most people
> > would.
> > I have changed splashscreen and appIcon, so at least it kinda looks like a
> > part of my software.
> >
> > One idea I had on os x was to launch the patch from AppleScript and send a
> > Hide message to it afterwards (similar to a Finder 'Hide'). This would would
> > to some degree, though it would still leave an Icon in the dock and you
> > could apple+tab to it ++.
> >
> > I will investigate some more to see what can be done. And if anyone has
> > any thoughts on the subject, please share.
> >
> >
>
>
>
----------------------------------------------------

distressor's icon

I know this is an old thread but i just had the same problem and apparently this was not solved here.
But i found a solution!

We can simple hide any application from showing an icon in the dock or the command-tab menu by editing its info.plist located in Contents.
Right click your standalone and chose "Show Package Contents".
Open "info.plist" located in Contents with your favourite text or plist editor and search for "LSUIElement".
If you find anything change its value to true. If you find nothing you have to add "LSUIElement".
Simply add

LSUIElement

to the bottom end of the document right before .
Save and you are finished.