Subfolders
Hello there
I am wondering. Is there a way to have a Max Patch refer to an audio file in a subfolder? Many of my patches use upwards of 70-80 audio files and when I send them to people it looks cluttered. I'd love to have a subfolder called "audio"
many options.
- directly add the subfolder to the max search path (Options -> File Preferences)
- add the folder of your patch to the search path and check "subfolders" checkbox
- set up your patch as a project and place the audio files in the "media" folder.
If you want to share your work the latter options is the simplest as others don't have to set the search paths.
Is there a way to automatically load all the media/externals I need for the project into different folders?
I can't seem to find a tutorial on projects.
check the docs for projects. There is a lot of information.
But there is no simple way to keep my existing projects (which are just .maxpat files), add a subfolder, and put all of my audio files in it, and then share it with other performers?
I'm sorry, I'm not super proficient in this stuff.
@jan is correct that projects are the provided way to do what you want. The project folder includes a media folder, and the project file keeps track of the path to it.
There's also a way to do it yourself without using the project functionality, demonstrated in these two examples:
Example 2: Providing a full path name
Example 3: Using the full path when opening a file
@christopher dobrian, this is perfect. i'm attaching my result.
now the million dollar question is: can i get a max patch to read externals (eg: gigaverb.mxo) from a subfolder too?
also, can i assume the "path" stuff also works in windows?
Oops, uploading now.
{
"boxes" : [ {
"box" : {
"maxclass" : "button",
"patching_rect" : [ 531.0, 26.0, 20.0, 20.0 ],
"numinlets" : 1,
"outlettype" : [ "bang" ],
"numoutlets" : 1,
"id" : "obj-5"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "bangbang",
"patching_rect" : [ 513.0, 125.0, 64.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 1,
"outlettype" : [ "bang", "bang" ],
"numoutlets" : 2,
"id" : "obj-2",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "playbar",
"patching_rect" : [ 275.0, 423.0, 320.0, 16.0 ],
"numinlets" : 1,
"outlettype" : [ "", "int" ],
"numoutlets" : 2,
"id" : "obj-35"
}
}
, {
"box" : {
"maxclass" : "toggle",
"patching_rect" : [ 39.0, 324.0, 20.0, 20.0 ],
"parameter_enable" : 0,
"numinlets" : 1,
"outlettype" : [ "int" ],
"numoutlets" : 1,
"id" : "obj-34"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "dac~",
"patching_rect" : [ 144.0, 463.0, 37.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"numoutlets" : 0,
"id" : "obj-32",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "prepend open",
"patching_rect" : [ 137.0, 307.0, 86.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 1,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-24",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "sfplay~",
"patching_rect" : [ 159.0, 383.0, 49.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "signal", "bang" ],
"numoutlets" : 2,
"id" : "obj-21",
"fontname" : "Arial",
"save" : [ "#N", "sfplay~", "", 1, 120960, 0, "", ";" ]
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "\"Cerrone HD:/Users/christophercerrone/Desktop/Max Patch test/audio/snaredrumroll.aif\"",
"linecount" : 2,
"patching_rect" : [ 137.0, 243.0, 361.0, 31.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-16",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "thispatcher",
"patching_rect" : [ 489.0, 274.0, 69.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 1,
"outlettype" : [ "", "" ],
"numoutlets" : 2,
"id" : "obj-14",
"fontname" : "Arial",
"save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ]
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "loadbang",
"patching_rect" : [ 481.0, 243.0, 60.0, 18.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-7",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "snaredrumroll.aif",
"patching_rect" : [ 353.0, 63.0, 100.0, 18.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-3",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "audio/",
"patching_rect" : [ 239.0, 63.0, 43.0, 18.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-11",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "thispatcher",
"patching_rect" : [ 31.0, 87.0, 83.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 1,
"outlettype" : [ "", "" ],
"numoutlets" : 2,
"id" : "obj-9",
"fontname" : "Arial",
"save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ]
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "path",
"patching_rect" : [ 31.0, 63.0, 34.0, 18.0 ],
"fontsize" : 12.0,
"numinlets" : 2,
"outlettype" : [ "" ],
"numoutlets" : 1,
"id" : "obj-8",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "loadbang",
"patching_rect" : [ 31.0, 17.0, 60.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 1,
"outlettype" : [ "bang" ],
"numoutlets" : 1,
"id" : "obj-6",
"fontname" : "Arial"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "combine pathname foldername filename @triggers 2",
"patching_rect" : [ 95.0, 111.0, 307.0, 20.0 ],
"fontsize" : 12.0,
"numinlets" : 3,
"outlettype" : [ "", "" ],
"numoutlets" : 2,
"id" : "obj-1",
"fontname" : "Arial"
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-9", 1 ],
"destination" : [ "obj-1", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-8", 0 ],
"destination" : [ "obj-9", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-7", 0 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-6", 0 ],
"destination" : [ "obj-8", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-6", 0 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-6", 0 ],
"destination" : [ "obj-11", 0 ],
"hidden" : 0,
"midpoints" : [ 40.5, 56.0, 248.5, 56.0 ],
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-5", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-35", 0 ],
"destination" : [ "obj-21", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-34", 0 ],
"destination" : [ "obj-32", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-1", 2 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-24", 0 ],
"destination" : [ "obj-21", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-21", 0 ],
"destination" : [ "obj-32", 0 ],
"hidden" : 0,
"midpoints" : [ 155.0, 459.0 ],
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-21", 0 ],
"destination" : [ "obj-32", 1 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-2", 1 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-2", 0 ],
"destination" : [ "obj-16", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-16", 0 ],
"destination" : [ "obj-24", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-11", 0 ],
"destination" : [ "obj-1", 1 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-16", 1 ],
"hidden" : 0,
"disabled" : 0
}
}
],
"appversion" : {
"major" : 6,
"minor" : 1,
"revision" : 7,
"architecture" : "x86"
}
}