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.