Straightforward and probably naive abstraction to create a patchbay for control and signal routers to use with the ceammc ui.matrix object or other objects that output a [cell 0 0 0(. Input or improved versions welcome. Questions are also swell, but I'm pretty new to Pd, so you're probably more knowledgable than me
ui.matrix routers (control and signal)
Great effort for someone new to Pd!. I haven't tried using it yet, but I see a couple of things that could be changed. First, it also uses the 'unauthorized' library (I assume that's where [spigot~] is supposed to come from. If you want to eliminate that dependency (since it seems you're not using anything else from that library), you could just replace [spigot~] with [*~], which will do the same thing by multiplying the signal by zero or one.
Also, you don't really need 8 copies of the "row" sub-patch; you can make it an abstraction by putting it in a separate file and using creation arguments. You may not have learned about creation arguments yet if you're new to Pd, but they can make your life a lot easier by avoiding a lot of duplicate code. Notice the '$1' in the screen print above. It represents the first creation argument ($2 would represent the second, etc.).
And finally, I had to add [declare -lib ceammc] to the top-level patch, or the objects in the Ceammc library wouldn't be loaded. This may be a quirk of the Windows version of Pd, I'm not sure (I don't own a Mac). But I've found that the [declare] object is needed for some external libraries, although not all. I've never been able to figure out why some libraries require it and others don't. Seems it isn't necessary on a Mac. I like to add it anyway, to make the patch more self-documenting and to remind myself which externals are required.
@dfkettle Most libraries have a binary for every object...... so for an object [woof~] you would see in the library woof~.exe or woof~.darwin for example.
When you create the object Pd will search for woof~ in its standard search paths.... which include the extra folder.... and load the binary if it finds that name. If it doesn't then you get the "cannot create" message. You probably see the search in the console as it happens.
But some libraries are compiled as a single binary. The Gem library for example only contains Gem.exe. So when you create a [gemwin] it cannot be found in the search. Those are the libraries that have to be loaded as Pd starts, using the -lib flag..... so Pd then has all of the objects that the library contains already loaded in memory when you create an object.... and it doesn't need to search for them.
[declare] loads the single binary as the patch is opened....... -lib as Pd starts.
[declare] is more useful if the library is stored on your computer in a path outside the Pd standard paths (perhaps you bundled it up into a subfolder when you uploaded your patch) .... as you can set the path to the library..... although for your own use you can also add search paths to Pd using "file" "preferences" "path" from the Pd menu.