Help me with my max noobness!

  • Ive recently became max obsessed and im working on a 'performance' suite for myself.

    Ive made this app which saves the midi cc's from my nord modular using the nord ctrl snapshot feature, i can then twiddle and send the original cc back to the synth.

    The patch recieves CC 101-118 on channels 1,2,3,4. Ive organised this through patchers for the ins and outs.

    This has taken me hours and i beleive there is a much easier way to do this?

    Can you guys take a look and advise?

    It would be much appreciated.


    EDIT: it wont let me do you guys copy the patches as text?

  • It was too large to post :( but ive pasted it into a text file :)

  • I'll check later tonight, but I'm guessing you need to read a quick "encapsulation" tutorial. It will shave months off of your development time.

    Quick example...

    Go here:

    download ""

    open that, and look at "ccKnob.maxpat"

    It looks like a subpatch, right? inlets up top, outlets at bottom. Nothing too crazy. But it's a separate file. Any other files in that directory can use it as a max object -- just add [ccKnob] and it's there.

    but, there is one thing in there you might not have seen before: "#1". What's that all about?

    well, it's the first argument. If you add [ccKnob 7], you'll create an instance of ccKnob where every #1 is replaced by 7. In fact, if you double-click on it, that's exactly what will open. Add [ccKnob 8], and there's an 8 version right next to it. Now, here's the important bit: if you edit and save ccKnob.maxpat, both of those will be updated automatically.

    So then, I think there's a "topRows.maxpat" you can open, and it's a bunch of [ccKnob]s. And a few other configurations. That's brought in as [topRows].

    The idea being that I'd have interchangeable panels that I can swap out for controlling different hardware.

    If I actually needed parts of these patches to be visible, I would make them default to presentation mode, and load them as [bpatcher @name ccKnob 8] or something along those lines.

    So, yeah... go explore that idea. I bet you can delete 90% of your project.

  • Thanks for chipping in man, this sound exactly what I need! In some ways the hours spent haven't been wasted, I've gained knowledge about about so many objects etc! I'll check this out tomorrow, thanks a bunch!

  • if looking to do things quickly, you can try scripting languages within max like javascript, python, etc. or if you're sometimes a max purist for no reason, like me, you can also automate creation with 'thispatcher' like so:


    Hope that helps.

  • Yeah, my 90% guess was more based on tearing apart other apps (see early versions of "raptor"); I haven't opened dean's yet.

    I should add that what I've done in "ccKnob" is specific to my app's needs; you'd want to make one that plays into yours. (I'm not offering it up as a generic catch-all solution, 'cause it's not) But that's the gereral methodology. Like I said, cycling74's got tutorials for you - the keyword you're searching for is "abstraction".

  • its funny - i had two people in mind that i wanted to reply to this thread and they both have! haha.

    thanks guys. will look at all this after work for sure

  • haha yes!

    and now we're three.

  • Don't be fooled. Raja's the batman.

  • ...and also the martian manhunter.

  • "Raja's the batman."

    no, gimme a nice sidecar or mule in exchange for batman's responsibilities any day >:D

    "...and also the martian manhunter"

    i plead the fifth!