Forums > MaxMSP

how to make pattrstorage open the read and write dialogs in the same path?

July 10, 2012 | 11:12 am

hello

i would just like to ask what the title says.
how can i make both (read and write) pattrstorage dialogs open in the same path?
after reading help and reference of [pattrstorage] i still don’t know how to do that + i cannot understand why that is not by default. i mean, why would anybody want to browse his directory tree twice? if you save a preset file in some path, you probably want to read the preset file from the same path.


July 11, 2012 | 11:05 am

impossible?


July 11, 2012 | 11:55 am

My experience in dealing with paths to preset files or media files etc: you’d better take care of it yourself. That means deliver a complete path for reading and writing. could be achieved with the opendialog object…
I often utilize the path message to thispatcher as well, as you can organize the paths relative to your patch that way, and could avoid dialogs completely if you follow your own specific rules where to store things…

Unfortunately its more complicated for collectives…


February 9, 2013 | 10:39 pm

stefantiedje: "take care of it yourself" – you just can’t, while the objects in MAX are just unfinished pieces of crap. MAX doesn’t give me any options to do it, except some JAVA (=clumsy) solution.
You mention the opendialog option, but I encounter EXACTLY the same issue there. Savedialog object – EXACTLY THE SAME.
I would find this amateurish work (done on the [opendialog] and [savedialog] objects + the "open" & "save" methods of pattrstorage) normal if this was some opensource made by people in their free time, but I think that it’s a big shame that Cycling74 is taking money for MAX, while they don’t have this kind of totally BASIC stuff sorted out. (i don’t mean only this thing, while there is much much more. even the most basic objects like numberboxes are totally useless in max). I mean, as I asked in the other thread already. How could ANYBODY working on development of opendialog/savedialog objects NOT THINK about this? Why there isn’t an attribute where I could set an actual path to the object??? I am just unable to understand + why is cycling spending time on developing high-level objects, while low level stuff is not finished…


February 10, 2013 | 1:10 am

Unless I’m seriously misunderstanding what you’re trying to do, I think this is pretty easy. As Stefan says, do it yourself.

Attachments:
  1. pattrnametest.zip

February 10, 2013 | 3:06 am

Chris: Thanks for listening. What you sent is not what I meant, because it doesn’t show the Write dialogue if I understand your patch correctly. I want the same path, not the same filename. I want the dialog to appear for both functions (read/write).

I want the BOTH dialogs (READ and WRITE) to APPEAR, but starting in the same path where you ended up last time in either of them.

For example: I use the "Write" function of pattrstorage, it shows a dialog and it starts in some path, so I browse my harddrive through the folders and then I save my files somewhere on my disk. For example to f:projectsmusickangakkutsonic_tacamahacsong.xml
Now using the same patch, I want to open a file. So I use the "read" function of pattrstorage, but the dialog that shows is NOT showing me the "f:projectsmusickangakkutsonic_tacamahac" directory. Instead it is showing me the path where even the write dialog started, before I browsed my drive. So I have to browse again.
…and the worst thing is, that this is not only when using pattrstorage, but any file-dialogs (opendialog/savedialog objects) in max are missing a totally fundamental feature of setting a path manually. Without such feature it seems impossible to me to take care of it myself (or I would be really happy to find out that i’m wrong…)


February 10, 2013 | 3:31 am

I would also suggest that dnk777 check out some of umenu’s functionality along with the folder object. There are the readagain and writeagain messages to pattrstorage too!

As for number boxes, you need to connect them with patch cords or reference them by name for them to do something.

I was going to post an example, but I think you can take care of it yourself!

Good luck!


February 10, 2013 | 3:53 am

Nate: thanks for your reply. The folder object looks nice. But it takes the path as the input, so how do I let the user choose the folder? I know that the [opendialog] has this folder choosing option, but [opendialog] does not remember paths, so i’m facing exactly the same issue.

readagain and writeagain are cool if you want same files. but i don’t want same files. i just want to be able to manually set the path to whatever, so that I won’t have to browse to my custom folders 40 times a day…

(The numberboxes were just an example of another basic thing that almost works, but is totally useless for me in most cases. I know how they work, but try to set a instrument number using them. Being +-1pixel wrong with your mouse means being +-1 wrong in the instrument number, which is quite a HUGE difference. I ended up using live.numbox set to float, displaying int + a [round]–[change] tumor, but I’m getting sick of so many workarounds, before i’m able to do exactly what I want in max….

and thanks, but no need to post me an example of folder object and readagain/writeagain objects, while it does totally different things than I am trying to solved…


February 10, 2013 | 6:11 am

This is still not what you want exactly, but:

– Pasted Max Patch, click to expand. –

February 10, 2013 | 6:12 am

Also, do you know about holding the shift key when manipulating number boxes?


February 10, 2013 | 3:49 pm

Thanks, it’s good to learn new ways, even if it’s not what I need.

The way you did it makes sense, because it lets you save files where you opened them. But what If you start a new project and want to save it for the first time in a separate folder?

Or sometimes you might want to save elsewhere, so the option of changing a folder when writing is needed as well, but without the unnecessary hdd-surfing for 2nd time…(even the 1st time is annoying enough. I would love to be able to have my default project location written in some config (of which i take care myself) and forward that info to pattrstorage on loadbang and the first read/write would just start there. then, any next read/write dialog would start where the last one started). Simple stupid thing, but makes workflow much more smooth and that’s what matters a lot in my world. I want to make my patches intoxicated-user-friendly™ and I can imagine how confusing it would be for an user on acid to browse his chaotic hdd structure once or even worse twice. I don’t want him to browse it at all if it’s not necessery (if he has his default path set in config already.)


February 12, 2013 | 6:32 pm

Feature request: Attributes for [opendialog fold]:
@openpath : Set default open path for when you first bang it (set via a browse button in Inspector or by using a message)
@preservepath 1/0 : remembers/doesn’t remember prior path chosen

?

If we need a new object that’s specifically for folders, that would be great too, because this one kind of does two jobs by using the "fold" argument. Maybe leave this one alone and make a new one called "openfolder" that has these attributes.

I’ve gotten a little tired of browsing through the full hierarchy too at times, but usually it’s only once, because there are other options like dropping folders (which won’t always be user-friendly, true…)

I also hear what you’re saying about the numberbox, but I think they’re really great for so many things. I don’t ever try to use a mouse to choose an instrument (or other integer-based value) with them if I need to be precise, I’d type or use the arrow keys. They’re not really designed for mousing like that. With the mouse I always use [umenu] or if it’s a small number of options, [tab].


February 13, 2013 | 9:32 am

fwiw I completely agree with dnk777; the opendialog object really should have default folder settable with a simple message ie (open ); (and /or suggestions as per seejay)


Viewing 13 posts - 1 through 13 (of 13 total)